Te damos la bienvenida a la primera de las 3 partes de Powershell: una guàa completa. Haz clic en los siguientes enlaces para consultar la parte 2 y la parte 3.
Windows PowerShell es un tema muy amplio, el objetivo de esta guàa es proporcionar a los administradores de sistemas una herramienta sencilla y útil para comprender los fundamentos de PowerShell. También mostraremos algunos scripts y comandos que se pueden usar en actividades cotidianas. Esta guàa te permitirá dar los primeros pasos al enseñarte las capacidades básicas necesarias para usar PowerShell y el scripting orientado a objetos.
¿Qué es PowerShell?
Windows PowerShell es un shell de lànea de comandos, un lenguaje de scripting y un entorno para la automatización de tareas creado por Microsoft. Se basa en el framework .NET y es perfecto para automatizar procesos por lotes y tareas del sistema. PowerShell está disponible para Windows y Linux y se ha integrado en los sistemas operativos de Microsoft desde Windows Server 2003 R2. Hoy en dàa, PowerShell viene instalado por defecto en todos los sistemas Windows Server y en todas las ediciones profesionales de los ordenadores de sobremesa domésticos. Además puedes descargarlo directamente desde la web de Microsoft si lo necesitas.
PowerShell no es un lenguaje de programación compilado como C, es un lenguaje de scripting, es decir, interpretado. Cuenta con un conjunto de comandos (cmdlets) que el usuario puede ejecutar en un amplio rango de variables. Esto resulta muy útil para consultar y ejecutar comandos de una sola vez en todo un centro de datos de servidores. PowerShell incluye también la ejecución de lànea de comandos, puede ejecutar cualquier comando de Windows y se comporta como el Sàmbolo del sistema.
¿Cómo actualizar o instalar PowerShell?
Antes de comenzar, recomendamos usar la última versión de PowerShell (5.0 o superior). Con cada nueva versión, Microsoft añade nuevas caracteràsticas y cmdlets: PowerShell es un lenguaje de scripting en evolución con nuevas funciones que se van añadiendo para permitir una mejor integración.
Windows PowerShell incluye las aplicaciones Core Shell y PowerShell ISE (Entorno de scripting integrado). Se pueden encontrar en el menú de Inicio simplemente escribiendo PowerShell. Recomendamos ejecutar siempre PowerShell como administrador.
Si necesitas actualizar tu versión de Powershell, consulta la primera parte de este artàculo (solo los puntos del 1 al 10).
Puedes comprobar la versión abriendo el Shell y escribiendo $psversiontable (busca la propiedad PSVersion)
Los fundamentos de PowerShell y Get-Help
Uno de los primeros conceptos que hay que aprender sobre PowerShell es el sistema de ayuda. PowerShell está diseñado para ser fácil de usar, y cada cmdlet incluye la documentación de ayuda sobre cómo utilizarlo.
El archivo de ayuda contiene la descripción del comando, la sintaxis a utilizar, y también un ejemplo de uso.
La comunidad de PowerShell ha adoptado este planteamiento informativo, y la gran mayoràa de scripts disponibles online tienen un archivo de ayuda. Es importante acostumbrarse a revisar el archivo de ayuda, incluso si no se está «bloqueado». Descubrirás muchas cosas nuevas sobre los cmdlets y los modos de uso que probablemente desconocàas.
- En primer lugar, hay que actualizar el archivo de ayuda de Microsoft escribiendo update-help (este comando indica a PowerShell que descargue de Internet toda la ayuda actualizada). Debe hacerse una sola vez.
- Ahora escribe Get-Command y aparecerá una lista de todos los comandos disponibles. (Consejo sobre PowerShell, la gramática de los comandos es siempre singular: Log no Logs; Service no Services)
- Casi todos los archivos de ayuda incluyen ejemplos que se pueden consultar con el comando get-help get-service -examples. Esta es la mejor forma de aprender a usar los primeros cmdlets.
- Arriba puedes ver el archivo de ayuda de get-service, con las cuatro principales áreas resaltadas
- SYNOPSIS: qué hace el comando
- SYNTAX: cómo utilizar el comando para crear cmdlets
- RELATED LINKS: comandos similares o relacionados, en el ejemplo encontramos los comandos con los que get-service puede interactuar en el pipeline.
- REMARKS: cómo obtener más información sobre el comando.
Set-ExecutionPolicy
Las polàticas de ejecución son un elemento de seguridad de PowerShell y determinan la capacidad del usuario para ejecutar ciertos comandos y/o cargar la configuración del archivo. Si se configuran incorrectamente, las polàticas te impedirán ejecutar todos los scripts disponibles en tu versión de PowerShell. Esto se verá claro en el momento en el que uses scripts descargados de la web.
Puedes configurar las polàticas de distintas formas, la más habitual es simplemente permitir la ejecución de todos los scripts, o, si lo prefieres, puedes desactivar las polàticas de seguridad. El segundo modo no es el más adecuado, pero es muy útil para practicar y realizar pruebas.
- Para habilitar la ejecución de scripts remotos escribe set-executionpolicy remotesigned
- Para deshabilitar las polàticas escribe Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
Usa la segunda opción con precaución y nunca en un entorno de producción.
¿Qué es el Pipeline?
El pipeline se utiliza para importar, exportar y convertir datos en un comando Windows PowerShell. Para utilizarlo correctamente, es importante pensar en lo que se está procesando al ejecutar el comando. A quienes tengan experiencia con Linux les resultará más fácil dominar el concepto. Cada vez que ejecutes un comando PowerShell, el resultado (o dato) se presentará en «sentido descendente» en el pipeline. Los datos resultantes se pueden utilizar para realizar comandos adicionales en cascada.
Nota: los comandos se separan usando el sàmbolo pipe «|».
La forma más fácil de explicarlo es probando un comando sencillo, como por ejemplo get-process | stop process
El resultado del Comando A (get-process) pasa en sentido descendente del pipeline al Comando B (stop-process) que a su vez pasa por el Output. A continuación, puedes manipular el Comando A para pasar los resultados especàficos en sentido descendente. También puedes añadir más «pasos», usando el pipe, y obtener cmdlets granulares.
Los fundamentos de Powershell
Windows PowerShell es un shell orientado a objetos, cada cmdlet es una colección de objetos y cada objeto tiene sus propiedades. Esto se puede demostrar utilizando el comando get-member. Puedes introducir el comando get-member en el pipeline, como por ejemplo get-service | get-member.
Para entenderlo mejor, escribe get-service en el shell
Verás información sobre cada servicio de tu sistema, incluyendo el estado, nombre y nombre para mostrar. Pero hay muchas otras propiedades para el objeto get-service que no estamos visualizando.
Ahora escribe get-service | get-member
El resultado incluirá los objetos aplicables al conjunto de datos Get-Service, incluyendo Alias, Métodos y propiedad.
Ahora puedes utilizar la información de Get-Member para crear tus comandos.
Escribe get-service | Select-object Name, startype, status
Se mostrará la información sobre los servicios del sistema, esta vez con Nombre, Starttype y Estado.
Podemos ir más allá introduciendo sorting (clasificación), grouping (agrupación) y measuring (medición).
Escribe get-service | Select-Object Name, Starttype, status | sort-object StartType
Los resultados estarán ordenados por Starttype (por defecto alfanumérico).
Ahora escribe get-service | Select-object Name, StartType, Status | Group-Object -property Status
Los servicios estarán agrupados en Running, Stopped o, si corresponde, deshabilitados. También se contabilizarán y el valor se mostrará entre las llaves {}.
Finalmente, escribe Get-service | Where-object status -eq «Running» | Measure-object
Este comando solo buscará los servicios en ejecución (Running) y los contará. En nuestro ejemplo, tenemos 80 servicios en ejecución.
En esta primera parte hemos dado los primeros pasos en el mundo de Windows PowerShell. Es importante recordar los fundamentos introducidos aquà. En la segunda parte presentaremos la importación y exportación de datos.
Read related articles
Cómo instalar y configurar Windows Server Update Services (WSUS)
Windows Server Update Services (WSUS) es una función necesaria en entornos corporativos. Los servicios de WSUS mejoran notablemente la eficiencia
Cómo imponer restricciones a los dispositivos con un GPO
Hemos visto cómo limitar software (de dos formas distintas) y sitios web mediante GPO. Ahora es el momento de limitar
Cuándo y cómo utilizar Sysprep
Sysprep es una herramienta de preparación de sistemas Microsoft utilizada por los administradores de sistemas generalmente durante la implementación automática