PowerShell
Introducción a PowerShell
PowerShell es una plataforma que permite ejecutar scripts y también tiene la función de intérprete de comandos.
1. Presentación de PowerShell
Esta plataforma se ha enriquecido constantemente y ofrece una multitud de conjuntos de comandos. Los comandos DOS también pueden utilizarse en la consola PowerShell mediante el uso del alias (get-alias para obtener una correspondencia).
Desde Windows Server 2008 R2 y Windows 7, PowerShell se integra directamente en el sistema operativo. En las versiones anteriores (Windows Vista, XP, 2008…) se requiere instalarlo. Destacamos, a su vez, que ciertas aplicaciones (Microsoft Deployment Toolkit, por ejemplo) requieren obligatoriamente la presencia de la plataforma PowerShell para funcionar.
2. La consola PowerShell
Los distintos comandos se introducen mediante la consola PowerShell. Esta tiene un aspecto gráfico muy cercano a una consola de comandos DOS.
Es posible autocompletar una ruta, un nombre de comando, etc., pulsando en la tecla [Tab]. Recuerde que la funcionalidad para autocompletar consiste en escribir el principio de un comando o de una ruta y dejar que el sistema complete el resto.
Por último, las combinaciones de teclas [Ctrl] C o [Ctrl][Pausa] permite finalizar la ejecución de la instrucción en curso, la primera de ellas, y finalizar la ejecución de la consola, la segunda.
3. La consola Windows PowerShell ISE
Esta...
Ayuda con PowerShell
Todos hemos utilizado, en un momento dado, el famoso /? en una consola DOS, lo que permite consultar la sintaxis de un comando y una descripción de sus opciones.
Con PowerShell, la sintaxis es algo diferente. En efecto, es posible consultar la ayuda de un comando escribiendo la instrucción help comando.
Los archivos de ayuda pueden actualizarse fácilmente. Es preciso, no obstante, tener permisos de administrador y ejecutar la consola como administrador.
También se requiere tener conexión a Internet.
Dicha operación se realiza mediante el comando update-help.
Esta actualización afecta únicamente a los archivos en el idioma utilizado y del módulo activo. Si desea actualizar el módulo dism, mientras el módulo activo es Applocker, deberá escribir el comando anterior seguido de la opción -Module dism.
Es posible ubicar los archivos de ayuda en un recurso compartido para que los equipos que no están conectados a Internet puedan aprovechar la actualización. La operación se realiza, en este caso, en dos partes (se copian los archivos en un recurso compartido de red y se actualizan los equipos desde este repositorio compartido).
Para realizar esta operación, debe utilizar el siguiente comando: Save-Help -DestinationPath "RutaUNC" -Force
Por último, es preciso ejecutar, en los equipos, el siguiente comando: Update-Help...
La sintaxis PowerShell
Un comando se compone de un verbo y de un nombre, separados mediante un guion (-). El objetivo del verbo es describir la acción que se va a realizar:
-
Get (obtiene información).
-
Set (realiza una acción).
-
Add...
El verbo está complementado por un nombre (Acl, etc.). Este último constituye el comando.
Como con los comandos DOS, el análisis sintáctico de PowerShell no distingue entre mayúsculas y minúsculas.
1. Los comentarios
Como en todos los lenguajes de programación, es posible incluir comentarios en los scripts.
Para diferenciarlos de una instrucción, los comentarios utilizan el carácter almohadilla "#" al principio de la línea. Esto permite considerar la línea como un comentario.
Además, es posible agregar comentarios tras las instrucciones.
Para comentar un bloque entero, se emplea una sintaxis particular.
Funciona únicamente desde PowerShell v2.0.
Se usan los caracteres <# al inicio del bloque de comentario y, a continuación, para marcar el fin del bloque se insertan los caracteres #>.
El intérprete de comandos no tendrá en cuenta la línea incluida como comentario.
2. Las comillas
Es necesario delimitar las cadenas de caracteres para ayudar a que el analizador sintáctico comprenda mejor la sintaxis. Las comillas (") se utilizan generalmente para realizar esta operación. Esta...
Los bucles en PowerShell
Los bucles resultan muy útiles en un lenguaje de programación para ejecutar x veces una misma acción.
1. El bucle While
Este tipo de bucle permite repetir las instrucciones presentes en un bloque mientras se cumpla una condición (verdadero).
Este bucle se declara de la siguiente manera:
While condición
{
Instrucción 1
Instrucción 2
...
}
2. El bucle Do-While
Este tipo de bucle es idéntico al anterior; no obstante, la comprobación se realiza al final.
La sintaxis es la siguiente:
Do
{
Instrucción 1
Instrucción 2
...
}
While condición
El bucle se ejecuta, obligatoriamente, al menos una vez, y la comprobación se realiza al final.
3. El bucle For
Este tipo de bucle permite determinar de antemano el número de veces que el bloque de instrucciones se ejecuta. La ejecución se realiza mientras el valor indicado al inicio no se alcance. Se declara también el paso de incremento.
La sintaxis de este tipo de bucles es la siguiente:
For (<Valor inicial> ; <Condición> ; <Incremento>)
{
Instrucción 1
Instrucción 2
}
PowerShell V5
Con el lanzamiento de Windows Server 2016, ha aparecido una nueva versión de PowerShell. Esta sección presenta algunas de sus novedades.
Se ha agregado un nuevo Cmdlet, Write-Information, que permite especificar cómo se tratan los flujos de información para un comando. Los parámetros InformationVariable e InformationAction permiten determinar la manera en la que se muestran los flujos.
Ahora es posible gestionar archivos comprimidos. Se ha integrado a la plataforma un nuevo módulo que lo permite. Las mismas operaciones podían realizarse en las anteriores versiones, pero se requería agregar módulos desarrollados por la comunidad de Microsoft.
Por tanto, es posible, y esto de forma nativa, generar un archivo comprimido (compress-archive) o realizar una extracción (expand-archive). Preste atención, sin embargo, pues es importante destacar que solo se gestionan las extensiones zip. La operación de actualización (agregar un archivo al archivo comprimido), así como la tasa de compresión, pueden definirse al momento de su generación.
El comando New-item se ha enriquecido, y ahora ofrece la posibilidad de crear accesos directos. Para ello se utiliza el tipo symboliclink.
Al igual que con Office, PowerShell es ahora «gestionable» mediante directivas de grupo. Un archivo ADMX está presente en el sistema operativo y da acceso a ciertos parámetros....