1. Introducción a PowerShell para administradores de sistemas

Introducción

PowerShell es una línea de comandos con tecnología de scripting basada en tareas que proporciona a los administradores de tecnologías de la información (TI) un control integral y la posibilidad de automatizar las tareas de administración del sistema.

PowerShell se ha creado sobre Common Language Runtime (CLR) y .NET Framework.

Consola

Para ejecutar la línea de comandos de Powershell hay que ejecutar el programa powershell.exe.

powershellexe

powershell-mac-os-shell

Versiones

Hay distintas versiones de Powershell, cada versión incorpora nuevas ventajas respecto a la anterior.

version-powershell-windows

Cmdlets

Los comandos (cmdlets, se pronuncia command-let) de PowerShell son sencillos de recordar usan el sistema verbo-nombre para llamar a los comandos, los verbos y los nombres están en inglés.

Los cmdlets se puede ver con el comando:

get-command

powershell-mac-os-get-command

Ayuda

Para obtener ayuda de un cmdlet hay que ejecutar el cmdlet:

get-help

powershell-mac-os-get-help

Alias

Los cmdlets se puede llamar de forma abreviada mediante un alias.

get-alias-powershell-windows

alias-en-powershell-mac-os

Canalizaciones

Concepto importante que permite unir dos cmdlets de la siguiente forma: la entrada de un cmdlet es la salida de otro cmdlet.

canalizacion-powershell-windows

Utilidades básicas

Seleccionar

Selecciona objetos o propiedades del objeto.

get-process-select-object-name-powershell-windows

powershell-mac-os-select-objectAgrupar

Agrupa objetos que contienen el mismo valor para las propiedades especificadas.

get-process-group-object-name-windows-powershell

powershell-mac-os-group-objectOrdenar

Ordena objetos por el valor de las propiedades.

get-process-sort-object-name-powershell-windows

powershell-mac-os-sort-objectContar

Cuenta elementos de los objetos o las propiedades de los mismos.

count-powershell-windows

powershell-mac-countComparar

Compara dos conjuntos de objetos.

Dar formato

Utiliza una vista personalizada para dar formato a la salida.

get-process-select-object-threads-format-custom-powershell-windows

powershell-mac-os-format-customEntrada y salida

Envía la salida a un archivo.

get-process-out-file-procesos-txt-powershell-windows

powershell-mac-out-fileWhere

Proporciona una forma para filtrar los datos devueltos por otros cmdlets.

get-process-where-object-cpu-lt-5-powershell-windows

powershell-mac-where-objectGrid

Envía la salida interactiva en una ventana separada.

get-process-where-object-cpu-lt-5-out-gridview-powershell-windowsMeasure

Proporciona una manera de generar rápidamente estadísticas (contar, valores máximos promedio, suma, mínimos y medios) para un objeto.

get-process-measure-object-property-cpu-minimum-maximum-average-powershell-windows

Seguridad

El cmdlet Get-ExecutionPolicy le permite ver qué secuencias de comandos de Windows PowerShell se permite ejecutar en el equipo.

get-executionpolicy-windows-powershell

El cmdlet Set-ExecutionPolicy le permite cambiar qué secuencias de comandos de Windows PowerShell (si los hay) se permitirá ejecutar en el equipo.

Windows PowerShell tiene cuatro diferentes políticas de ejecución:

  • Restringido – Las secuencias de comandos no se pueden ejecutar. Windows PowerShell sólo se puede utilizar en modo interactivo.
  • AllSigned – Sólo guiones firmados por un editor de confianza se pueden ejecutar.
  • RemoteSigned – Los guiones descargados deben ser firmados por un editor de confianza antes de que se pueden ejecutar.
  • Unrestricted – No hay restricciones de libre disposición; todos los scripts de Windows PowerShell se pueden ejecutar.

set-executionpolicy-windows-powershell

Entorno de scripting integrado (ISE)

La versión ISE se llama powershell_ise.exe.

powershell_iseexe

Scripting

Windows Powershell tiene su propio lenguaje de scripting para crear secuencias de comandos.