Está en la página 1de 36

INDICE

INTRODUCCIÓN…………………………………………………. 3

UNIDAD 1. POWERSHELL
1. Definición y requisitos de PowerShell……………………... 4
2. Instalación de PowerShell…………………………………….. 5
3. Versiones de PowerShell……………………………………… 7
4. Comandos básicos (directorios y archivos)…………………. 10

UNIDAD 2. FUNDAMENTOS DE POWERSEHLL


1. Variables y las constantes……………………………………... 23
2. Los alias………………………………………………………….. 25
3. Tablas y Tablas asociativas …………………………………… 26
4. Redirecciones y Tuberías………………………………………. 27
5. Los bucles (While, Do While)…………………………………... 30
6. Estructura condicional If, Else, ElseIf, Switch………………… 32
7. Funciones………………………………………………………… 34

CONCLUSIÓN……………………………………………………… 36
Introducción

Windows PowerShell promete revolucionar el mundo de la administración del sistema y los shells
de línea de comandos. Desde sus canalizaciones basadas en objetos hasta su enfoque de
administrador y su enorme alcance en otras tecnologías de administración de Microsoft,
PowerShell mejora drásticamente la productividad de los administradores y usuarios avanzados
por igual. Cuando se aprende una nueva tecnología, es natural sentirse desconcertado al principio
por todas las características y funcionalidades desconocidas. Esto quizás suena especialmente
cierto para los usuarios nuevos de Windows PowerShell porque puede ser su primera experiencia
con un shell de línea de comandos con todas las funciones. O peor, han escuchado historias de las
fantásticas capacidades integradas de scripting de PowerShell y temen ser forzados a un mundo de
programación que han evitado activamente hasta ahora. Afortunadamente, estos temores son
completamente equivocados; PowerShell es un shell que crece contigo y crece contigo. Las
capacidades que PowerShell, ofrece son:

 PowerShell funciona con comandos y aplicaciones estándar de Windows. No tiene que tirar lo
que ya sabe y usa.
 PowerShell presenta un nuevo y poderoso tipo de comando. Los comandos de
 PowerShell (llamados cmdlets) comparten una sintaxis Verbo-Sustantivo común y ofrecen
muchas mejoras de usabilidad sobre los comandos estándar.
 PowerShell entiende los objetos. Trabajar directamente con objetos ricamente estructurados
hace que trabajar con (y combinar) comandos de PowerShell sea mucho más fácil que trabajar
en el mundo de texto plano de los shells tradicionales.
 PowerShell atiende a los administradores. Incluso con todos sus avances, PowerShell se enfoca
fuertemente en su uso como un shell interactivo: la experiencia de ingresar comandos en una
aplicación PowerShell en ejecución.
 PowerShell admite el descubrimiento. Con tres comandos simples, puede aprender y descubrir
casi todo lo que PowerShell tiene para ofrecer.
 PowerShell permite scripts ubicuos. Con un lenguaje de secuencias de comandos completo
que funciona directamente desde la línea de comandos, PowerShell le permite automatizar
tareas con facilidad.
 PowerShell une muchas tecnologías. Al permitirle trabajar con .NET, COM, WMI, XML y Active
Directory, PowerShell hace que trabajar con estas tecnologías previamente aisladas sea más
fácil que nunca.
 PowerShell simplifica la administración de los almacenes de datos. A través de su modelo de
proveedor, PowerShell le permite administrar almacenes de datos utilizando las mismas
técnicas que ya usa para administrar archivos y carpetas. Exploraremos cada uno de estos
pilares en este recorrido introductorio de PowerShell. Si está ejecutando Windows 7 (o
posterior) o Windows 2008 R2 (o posterior), PowerShell ya está instalado.
1.- PowerShell

Definición de Windows Powershell:


Windows PowerShell es una interfaz de consola (CLI) con posibilidad de escritura
y conjunción de comandos por medio de guiones (scripts en inglés). Esta interfaz
de consola está diseñada para su uso por parte de administradores de sistemas,
con el propósito de automatizar tareas o realizarlas de forma más controlada.
PowerShell es un nuevo entorno para los administradores de sistemas de
Windows que les permite utilizar un entorno de línea de comandos más moderno
para administrar Windows.
Es un poderoso entorno de scripts que puede usar para crear scripts complejos
para administrar sistemas Windows mucho más fácilmente de lo que podría
hacerlo con el símbolo del sistema.

Requisitos
Windows PowerShell 5.1

Windows PowerShell 5.1 se ejecuta en las siguientes versiones de Windows. Para ejecutar


Windows PowerShell 5.1, instale Windows Management Framework 5.1. 

Versión de Windows Requisitos del sistema


Windows Server 2019 Instalado de forma predeterminada
Windows Server 2016 Instalado de forma predeterminada
Windows Server 2012 R2 Instalar Windows Management Framework 5.1
Windows Server 2012 Instalar Windows Management Framework 5.1
Windows Server 2008 R2 Instalar Windows Management Framework 5.1
Windows 10 versión 1607 y posteriores Instalado de forma predeterminada
Windows 10 versión 1507, 1511 Instalar Windows Management Framework 5.1
Windows 8.1 Instalar Windows Management Framework 5.1
Windows 7 con Service Pack 1 Instalar Windows Management Framework 5.1
Instalación
A partir de las ediciones Windows 7 SP1 y Windows Server 2008 R2 SP1, Windows
PowerShell viene instalado en Windows de forma predeterminada.

Búsqueda de PowerShell en Windows 10, 8.1, 8.0 y 7

Encontrar la consola o el ISE (entorno de scripting integrado) de PowerShell en Windows


puede ser difícil, ya que su ubicación cambia en función de la versión del sistema.

En las tablas siguientes se proporciona información para poder encontrar PowerShell


según la versión de Windows que se esté usando. Todas las versiones que se muestran
aquí son las originales, tal y como se publican y sin actualizaciones.

CONSOLA

Versión Localización
Windows 10 Haga clic en el icono de Windows de la esquina inferior
izquierda y empiece a escribir PowerShell.
Windows 8.1 u 8.0 En la pantalla Inicio, empiece a escribir PowerShell.
Si está en el escritorio, haga clic en el icono de Windows de la
esquina inferior izquierda y empiece a escribir PowerShell.
Windows 7 SP1 Haga clic en el icono de Windows de la esquina inferior
izquierda y empiece a escribir PowerShell en el cuadro de
búsqueda

ISE

Versión Localización
Windows 10 Haga clic en el icono de Windows de la esquina inferior
izquierda y empiece a escribir ISE.
Windows 8.1 u 8.0 En la pantalla Inicio, escriba PowerShell ISE.
Si está en el escritorio, haga clic en el icono de Windows de la
esquina inferior izquierda y escriba PowerShell ISE.
Windows 7 SP1 Haga clic en el icono de Windows de la esquina inferior
izquierda y empiece a escribir PowerShell en el cuadro de
búsqueda.

Iniciar Windows PowerShell en versiones anteriores de Windows


Iniciar Windows PowerShell y el Entorno de scripting integrado (ISE) de Windows
PowerShell en Windows® 7, Windows Server® 2008 R2 y Windows Server®
2008. 
Desde el menú Inicio
Haga clic en Inicio, escriba ISE y, después, haga clic en Windows PowerShell.
Desde el menú Inicio, haga clic en Inicio, Todos los programas, Accesorios, la
carpeta Windows PowerShell y, luego, en Windows PowerShell.

En el símbolo del sistema


En cmd.exe, Windows PowerShell o Windows PowerShell ISE, para iniciar
Windows PowerShell, escriba:
Copiar
PowerShell
Con privilegios administrativos (Ejecutar como administrador)
Haga clic en Inicio, escriba PowerShell, haga clic con el botón derecho
en Windows PowerShell y, después, haga clic en Ejecutar como administrador.

Iniciar Windows PowerShell ISE en versiones anteriores de Windows


Use cualquiera de los métodos siguientes para iniciar Windows PowerShell ISE.
Desde el menú Inicio
Haga clic en Inicio, escriba ISE y, después, haga clic en Windows PowerShell
ISE.
Desde el menú Inicio, haga clic en Inicio, Todos los programas, Accesorios, la
carpeta Windows PowerShell y, luego, en Windows PowerShell ISE.

En el símbolo del sistema


En cmd.exe, Windows PowerShell o Windows PowerShell ISE, para iniciar
Windows PowerShell, escriba:
Copiar
PowerShell_ISE
o
Copiar
ISE
Con privilegios administrativos (Ejecutar como administrador)
Haga clic en Inicio, escriba ISE, haga clic con el botón derecho en Windows
PowerShell ISE y, después, haga clic en Ejecutar como administrador.

Versiones

PowerShell 1.0
PowerShell 1.0 fue lanzado en noviembre de 2006 para Windows XP SP2,
Windows Server 2003 SP1 y Windows Vista. Es un componente opcional de
Windows Server 2008.

PowerShell 2.0
Windows PowerShell ISE v2.0 en Windows 7, un entorno de desarrollo integrado
para los scripts de PowerShell.
PowerShell 2.0 está integrado con Windows 7 y Windows Server 2008 R2 y se
lanza para Windows XP con Service Pack 3, Windows Server 2003 con Service
Pack 2 y Windows Vista con Service Pack 1.
PowerShell 2.0 incluye cambios en el lenguaje de scripts y en la API de
hospedaje, además de incluir más de 240 nuevos cmdlets.

PowerShell 3.0
PowerShell 3.0 está integrado con Windows 8 y con Windows Server 2012.
Microsoft también ha puesto a disposición PowerShell 3.0 para Windows 7 con
Service Pack 1, para Windows Server 2008 con Service Pack 1 y para Windows
Server 2008 R2 con Service Pack 1.
PowerShell 3.0 es parte de un paquete más grande, Windows Management
Framework 3.0 (WMF3), que también contiene el servicio WinRM para apoyar el
remoting. Microsoft hizo varias versiones de Community Technology Preview de
WMF3. El 2 de diciembre de 2011 se publicó una versión temprana de la
Community Technology Preview 2 (CTP 2) de Windows Management Framework
3.0. Windows Management Framework 3.0 se publicó para su disponibilidad
general en diciembre de 2012 y se incluye con Windows 8 y Windows Server 2012
de forma predeterminada.

PowerShell 4.0
PowerShell 4.0 está integrado con Windows 8.1 y con Windows Server 2012 R2.
Microsoft también ha hecho que PowerShell 4.0 esté disponible para Windows 7
SP1, Windows Server 2008 R2 SP1 y Windows Server 2012.

PowerShell 5.0
Windows Management Framework (WMF) 5.0 RTM que incluye PowerShell 5.0
fue relanzado a la web el 24 de febrero de 2016, después de un lanzamiento inicial
con un grave bug. Las características clave incluyen cmdlets OneGet PowerShell
para soportar la administración de paquetes basada en el repositorio de
Chocolatey y la ampliación del soporte para la administración de conmutadores a
los conmutadores de red de capa 2.

PowerShell Core 6.0


PowerShell Core 6.0 fue anunciado por primera vez el 18 de agosto de 2016,
cuando Microsoft dio a conocer PowerShell Core y su decisión de hacer que el
producto sea multiplataforma, independiente de Windows, de código libre y
abierto. Alcanzó la disponibilidad general el 10 de enero de 2018 para Windows,
macOS y Linux. Tiene su propio ciclo de vida de soporte y se adhiere a la política
de ciclo de vida de Microsoft que se introduce con Windows 10: sólo la última
versión de PowerShell Core es compatible. Microsoft espera lanzar una versión
menor para PowerShell Core 6.0 cada seis meses. El cambio más significativo en
esta versión de PowerShell es la expansión a las otras plataformas. Para los
administradores de Windows, esta versión de PowerShell carece de nuevas
características importantes. En una entrevista con la comunidad el 11 de enero de
2018, se pidió al equipo de PowerShell que enumerara las 10 cosas más
emocionantes que sucederían a un profesional de TI de Windows que migrara de
Windows PowerShell 5.1 a PowerShell Core 6.0; en respuesta, Angel Calvo de
Microsoft sólo pudo nombrar dos: multiplataforma y de código abierto.
PowerShell Core 6.1
 Las nuevas características de PowerShell Core 6.1 incluyen: Compatibilidad
con los más de 1900 cmdlets existentes en Windows 10 y Windows Server
2019
o Construido sobre .NET Core 2.1
o Soporte para las últimas versiones de Windows, MacOS y Linux
o Mejoras significativas en el rendimiento

PowerShell Core 6.2


El lanzamiento de PowerShell Core 6.2 está enfocado principalmente en mejoras
de rendimiento, corrección de errores, y mejoras menores de cmdlet/idioma que
mejoran la calidad de vida de los usuarios.

PowerShell 7
PowerShell 7 es el producto de reemplazo para los productos PowerShell Core 6.x
así como para Windows PowerShell 5.1, que es la última versión de Windows
PowerShell soportada. Para que PowerShell 7 sea un reemplazo viable para
Windows PowerShell 5.1 debe tener casi paridad con Windows PowerShell en
términos de compatibilidad con los módulos que se envían con Windows.
 Las nuevas características de PowerShell 7 incluyen:
o Construido sobre .NET Core 3.1 (LTS)
o ForEach-Object -Parallel
o Envoltura de compatibilidad con Windows   
o Notificación de nueva versión
o Nueva vista de error y cmdlet Get-Error
o Operadores de la cadena de oleoductos (&& y ||)
o ?: operador ternario (a ? b : c)
o Asignación nula y operadores de coalescencia nula (??= y ??)[97]
o Invocación de plataforma Invoke-DscResource (experimental)
o Out-GridView, -ShowWindow y otros cmdlets GUI heredados están de
vuelta en Windows

Comandos básicos. Trabajar con directorios


Get-ChildItem o su Alias(Gci,dir,ls) ve el contenido del
directorio
ls ~ muestra el nombre del usuario, en caso de que no aparezca
Navegar entre directorios ls ó cd
ls desktop se mueve al directorio

ls noe/desktop
Estando desde la carpeta users y moverse al escritorio
ls users/noe/desktop
Estando desde el directorio C: moverse al escritorio

Mkdir ó md crea un nuevo directorio


ls mariano muestra el contenido del directorio mariano

Ir desde el directorio C: a una carpeta determinada

Salir desde una carpeta determinada y llegar al directorio C:

Para regresar a una carpeta anterior

Comando explorer Muestra el explorador de Windows


Resultado

Comando explorer . Muestra el contenido que tiene la carpeta mariano

Resultado:

Para borrar un directorio o carpeta


rm nombredelacarpeta

Comando pushd va al directorio que se especifique.

Comando popd regresa al último directorio que se estuvo

Trabajar con archivos


Comando new-item ó ni crea un archivo de texto plano
Ni ejem1.txt, ejem2.txt

Mover archivos: mv nombrearchivo.txt nombredelacarpeta


Cabe destacar que el comando mv permite cambiar el nombre a un archivo,
por ejemplo:
Mv prueba1.txt examen1.txt

Copiar archivos: comando Copy-Item  o  cp


cp prueba1.txt tarea1.txt

Borrar archivos: comando rm

Escribir en archivos con el comando write y direccionarlo a un archivo >


Si observa, ahora el archivo tarea2.txt , contiene datos.

Imprimir el contenido de un archivo con el comando: Get-Content ó gc

Para agregar texto a otro archivo sin sobreescribir: se utiliza el comando:


gc nombrearchivo.txt >> otroarchivo.txt

Mostrar el contenido de varios archivos a la vez, a través del comando gc y


el comodin *

Buscar contenido específico en archivos con el comando


Select-String  ó sls

Comando que permite desbloquear un bucle infinito:


control - c

Comando que permite ver las primeras 10 líneas de un texto:


gc prueba1.txt -totalcount 10
Comando que permite ver las ultimas 10 líneas de un texto:
gc tarea2.txt -tail 10

Ayuda (help)
PowerShell no espera que memoricemos todos los parámetros posibles para
todos los cmdlets. En su lugar, proporciona una forma sencilla de enumerarlos
utilizando el cmdlet Get-Help.

Get-Help gc
Fundamentos de PowerShell
Variables y constantes
Usar variables en PowerShell
Para definir una variable en PowerShell sólo tenemos que nombrarla, aunque
siguiendo una serie de restricciones:

 El primer carácter debe ser siempre un símbolo de dólar ($)


 Después, podemos utilizar cualquier combinación de letras, números o
símbolos.
 También pueden utilizarse espacios en blanco pero, en este caso, el
nombre debe ir rodeado por símbolos de llaves ({})

Habitualmente, la primera vez que se utiliza una variable es para asignarle un


valor inicial. Por ejemplo:

Un par de observaciones sobre el ejemplo anterior:

 El símbolo de igual (=) permite asignar valores en PowerShell, y debemos


leerlo de derecha a izquierda. Es decir, el valor representado a la derecha
del símbolo es asignado a la variable que aparezca a la izquierda.
 En PowerShell, los valores textuales van rodeados por el símbolo de
comillas (“). El primero indica dónde comienza el texto y el segundo dónde
acaba. También pueden utilizarse símbolos de apóstrofe (‘), pero no
pueden mezclarse, es decir, debemos acabar con el mismo símbolo con el
que comencemos.

Algunos nombres válidos para variables podrían ser estos:

Se puede decir que la forma de definir variables es implícita, porque la variable se


define automáticamente al utilizarla. Sin embargo, existe también un
modo explícito usando el cmdlet New-Variable. Por ejemplo, podemos definir una
variable usando la siguiente sintaxis:
Observa que no hemos utilizado el símbolo de dólar ($) al principio, pero sí lo
incluiremos al utilizarla.

Si queremos una sintaxis más descriptiva, podemos incluir argumentos:

Incluso podríamos asignar un valor inicial:

Si una variable va a contener un valor que no debe cambiar a lo largo del  script,
podemos indicar que sea de sólo lectura:

Formalmente, las variables que no cambian a lo largo del script, reciben el nombre


de constantes.

En cualquier momento puedes obtener una lista completa de las variables que se
hayan definido hasta ese momento. Para lograrlo, basta con utilizar el cmdlet Get-
Variable.

Salida del cmdlet  Get-Variable.

Como se ve en la imagen anterior, se muestran tanto las definidas por el usuario


como las predefinidas por PowerShell

Alias
Powershell permite el uso de accesos directos (alias) en lugar de los nombres de
los cmdlets.
Se puede escribir ls , dir o gci lugar de Get-ChildItem y obtener el mismo
resultado. Alias es equivalente a su cmdlet.
Tablas y tablas asociativas
1. Arrays asociativos estándares
Un array asociativo, también llamado tabla de hash, es una tabla en la cual cada
valor se referencia por una clave y no por un índice. Hasta aquí hemos visto que
en un array cada valor se indexaba numéricamente. No obstante, en una tabla de
hash, esta noción de indexación numérica ya no existe. Utilizamos claves como
identificadores. Por ejemplo, veamos una tabla de hash en la que cada elemento
(clave) posee un valor siendo en este caso la representación de un precio.

Clave Valor

Proyector 1600

Television 1400
Consola_de_juegos 400
Con
las
tablas de hash, igual que con los arrays clásicos, puede utilizar tipos de datos
heterogéneos.

a. Declarar un array asociativo vacío

La declaración de un array asociativo vacío se realiza de la siguiente manera:

$hashtable = @{}
b. Inicializar un array asociativo con datos

Para inicializar un array asociativo que contenga valores, se utiliza la sintaxis


siguiente:
$hashtable = @{<clave1 = valor>; <clave2 = valor>;...}

Tenga en cuenta que la creación de un array asociativo necesita anteponer el


símbolo @ delante de la llave de apertura {, separar todas las parejas clave/valor
por un punto y coma y cerrar el conjunto con una llave }.
Volvamos a nuestro ejemplo con los productos anteriormente descritos. Así
debería ser la inicialización de la tabla:
PS > $catalogo = @{ Proyector = 1600 ; Television = 1400 ; 
Consola_de_juegos = 400}

Redirecciones y tuberías
Tuberías o canalización.
Al igual que Linux, Powershell permite combinar dos o más comandos en uno
solo. Tubería o canalización, cualquiera de ellos nos sirve para entendernos.
Cuando se combinan comandos en una canalización, se pasan datos entre sí en
forma de objetos. El primer comando devuelve uno o más objetos a través de
la canalización al segundo comando. El segundo comando procesa estos objetos
y a continuación pasa objetos nuevos o revisados al tercer comando. Este proceso
continua hasta que se hayan ejecutado todos los comandos de la canalización.
Para encadenar comandos en una canalización, tenemos que especificar cada
comando en el orden que tiene que ejecutarse. Los comandos los separamos
entre si con el símbolo («|» barra vertical). Los comandos se ejecutaran de
izquierda a derecha.
Ejemplo 1:
>get-help * | get-help –detailed
El primer comando nos mostraría toda la ayuda, pero le pasamos el resultado al
segundo comando y al final nos mostrara toda la ayuda, pero detallada. Ya se que
no es un buen ejemplo pero como todavía no hemos visto otros cmdlets… No os
preocupes que esto lo vamos a utilizar mucho a partir de ahora.
Ejemplo 2:
>get-command -verb set | get-help -examples

Si pensamos un poco con detenimiento vemos que el primer comando nos


mostraría los comandos cuyo verbo fuese «set«. Vale, ahora le pasamos esta lista
al segundo comando que hace que nos muestre la ayuda, pero solo el apartado
«examples» de cada una.
Si juntamos todo esto tenemos que finalmente nos mostrara por pantalla el
apartado «examples» de la ayuda solo de aquellos cmdlets cuyo verbo sea «set«.
Redireccion:
Redirección de la salida desde Windows Powershell a archivos de texto.
De manera predeterminada, Powershell dirige la salida de comandos a la pantalla
de Powershell. De todas formas, podemos modificar este comportamiento
dirigiendo la salida a un archivo de texto.
Para hacer esto, tenemos que utilizar el símbolo «mayor que» (>) y el nombre del
archivo al final.
Ejemplo 1:
>get-help -detailed get-command > c:\power\docs\get-command.txt

Esto comando crea un fichero de texto en la ruta especificada cuyo contenido es la


ayuda del cmdlet get-command de Powershell.

Ahora podemos revisar el fichero todas las veces que queramos e incluso imprimirlo si es nuestro
deseo.

Ejemplo 2:

>get-command -verb get > c:\power\listadoget.txt


Crea un fichero de texto cuyo contenido es el listado de todos
los cmdlets de powershell cuyo verbo coincida con «get«.

Bucles

Un bucle es una estructura repetitiva que permite ejecutar varias veces las
instrucciones que se encuentran en el bloque de instrucciones.

1. Bucle While
Este bucle describe un desarrollo preciso. Las instrucciones de este bucle se
repiten mientras que se satisfaga la condición del mismo (es verdad).
La sintaxis de un bucle While es la siguiente:
While (<condición>) 

  #bloque de instrucciones 
}
Su funcionamiento es el siguiente:
1. El bucle evalúa la condición.
2. Si la condición es falsa, no se ejecuta el bloque de instrucciones y se finaliza el
bucle.
3. Si la condición es verdadera, entonces se ejecuta el bloque de instrucciones.
4. Vuelta al paso 1.

Veamos un ejemplo básico de un bucle While que enumera los valores contenidos


en un array. En este bucle, mientras el valor $numero es estrictamente inferior al
tamaño del array, el bloque de instrucciones devuelve el valor del array para el
índice $numero. 
$numero = 0 
$tab = 0..99 
 
While($numero -lt $tab.Length) 

  $tab[$numero] 
  $numero++ 
}

2. Bucle Do-While
El bucle Do-While se parece al bucle While, con la diferencia que la comprobación
de la condición se realiza al final. El bucle Do-While tiene la siguiente estructura:
Do 

  #bloque de instrucciones 

While (<condición>)
Estando la evaluación al final, el bloque de instrucciones se ejecuta al menos una
vez aunque la condición sea falsa
Estructura condicional If, Else, ElseIf
Una estructura condicional permite, mediante la evaluación de una condición,
orientar la ejecución hacia un bloque de instrucciones o hacia otro. La sintaxis de
una estructura condicional es la siguiente:
If (condición) 

  #bloque de instrucciones 
}
Para entender mejor el uso de una estructura condicional, veamos algunos
ejemplos:
Imaginemos que queremos determinar si un valor introducido por el usuario es la
letra A. Para ello, utilizaremos una estructura condicional con una condición sobre
el valor de la variable evaluada. Usando un operador de comparación, la
estructura resultante es la siguiente:
$var = Read-Host "Introduzca un carácter"  
  
If ($var -eq ’A’)  
{  
  "El carácter introducido por el usuario es una ’A’"  
}
Si la variable introducida por el usuario en una A, entonces se muestra una
cadena de caracteres, en caso contrario la ejecución seguirá su curso.
Es posible asociar a la instrucción If la cláusula Else. Esta cláusula permite en el
caso de devolver un valor False orientar hacia un segundo bloque de instrucciones
el procesamiento. Tomemos el siguiente ejemplo:
If (($var1 -eq 15) -and ($var2 -eq 18)) 

  # Bloque de instrucciones 1 

Else 

  # Bloque de instrucciones 2 
}
En un primer momento, PowerShell evalúa la primera condición
Switch

La instrucción Switch permite reemplazar ventajosamente toda una serie


de If, ElseIf y Else. A diferencia de las instrucciones If que, para una instrucción
dada, orienta la ejecución siguiente hacia uno de los dos bloques de
instrucciones, la instrucción Switch orienta la ejecución hacia varios bloques de
instrucciones distintos. Y eso con una sola expresión. Esto le confiere un uso
netamente más flexible. La sintaxis de Switch es la siguiente:

Switch (<Expresión>) 

   <Valor_1> { bloque de instrucciones 1} 
   <Valor_2> { bloque de instrucciones 2} 
   <Valor_3> { bloque de instrucciones 3} 
   Default   { bloque de instrucciones 4} 
}

El valor Default es opcional. Su bloque de instrucciones solo se ejecuta cuando


la expresión no corresponde con ningún valor.

Tomemos como ejemplo de aplicación el caso básico donde el usuario introduce


un número entre 1 y 5 y PowerShell determina qué número se ha introducido. El
código es el siguiente:

$Numero = Read-Host ’Introduzca un número comprendido entre 1 y 5 ’ 


Switch($Numero) 

  1 { ’Ha introducido el número 1 ’} 
  2 { ’Ha introducido el número 2 ’} 
  3 { ’Ha introducido el número 3 ’} 
  4 { ’Ha introducido el número 4 ’} 
  5 { ’Ha introducido ...
Funciones

1. Estructura de una función


En PowerShell, como en muchos lenguajes, una función es un conjunto de
instrucciones a las que damos un nombre. El principal interés de las funciones es
que podemos llamarlas varias veces, sin tener que volver a escribir las
instrucciones en cada llamada. Una función está constituida de los siguientes
elementos:
 un nombre;
 un tipo de ámbito (opcional);
 uno o varios argumentos (opcionales);
 un bloque de instrucciones.

En lo que se refiere al ámbito, abordaremos esta noción más adelante en el


capítulo. La escritura de una función necesita la sintaxis siguiente:

Function [<ámbito> :] <nombre de función> (<argumento>) 



  param (<lista de parámetros>) 
  # bloque de instrucciones 
}

Tomemos por ejemplo la siguiente función:

Function Hola 

  $date = Get-Date 
  Write-Host "Hola, hoy es el $date" -Foreground Yellow 
}

Esta función es la más básica posible. En cada llamada, muestra un mensaje en


amarillo en la consola. Para llamar a una función, basta simplemente con escribir
su nombre:

PS > hola 
Hola, hoy es el 13/01/2015 23:18:54
Scripts

Los scripts tienen un funcionamiento muy similar a las funciones, es decir que
también pueden aprovechar el atributo [CmdletBinding], utilizar parámetros, así
como proponer una ayuda integrada (como veremos a continuación) para así
comportarse exactamente como comandos nativos.

Por otra parte, los scripts PowerShell constituyen el entorno físico donde se
almacenan generalmente las variables así como un conjunto de funciones.
Tienen la extensión .ps1.

Sea cual sea la versión de PowerShell, también con la versión 5, todos los scripts
tienen la extensión .ps1.

1. Estructuración de un script

Un script se estructura generalmente con las siguientes secciones:

# Nombre del script, autor, versión, etc. 


Declaración de parámetros 
... 
 
Declaración de funciones 
... 
 
Cuerpo principal del script 
... 

Dicho esto, en su forma más minimalista, basta con que el script contenga el
cuerpo principal, siendo el resto opcional. Generalmente encontraremos en las
primeras líneas del script algunos comentarios describiendo brevemente:

 El nombre del script,


 Un número de versión,
 La fecha de creación,
 El nombre del autor.
Conclusión

Como se ha visto actualmente, existen tantas tecnologías para realizar diferentes


soluciones de automatización de tareas, por lo que es importante que primero nos
empapemos de los comandos que ofrece PowerShell, estos, nos van a permitir,
facilitar enormemente todas las tareas que se nos presenten. También es
importante, saber que esta herramienta de entorno consola y gráfica, nos
permitirá resolver tareas de otros sistemas operativos como linux y Mac. Esto va
a permitir que sea universal el uso de los comandos para administrar cualquier
sistema operativo sin que existan problemas de compatibilidad entre los
comandos. Por todo lo anterior, considero que es muy importante, que tengamos
los conocimientos suficientes sobre el manejo de PowerShell, para la
administración, ejecución, implementación de tareas automáticas, permitiendo una
rápida solución de problemas en los entornos de los sistemas operativos.

También podría gustarte