Documentos de Académico
Documentos de Profesional
Documentos de Cultura
¿Qué es PowerShell?
PowerShell, llamado Windows PowerShell originariamente, es una interfaz de línea de
comandos o CLI (Command-Line Interface) que tiene la posibilidad de ejecutar
Scripts (unión de comandos) y que facilita la configuración, administración y
automatización de tareas multiplataforma, ademas dispone de un lenguaje de
scripting. Powershell tiene una salida basada en objetos por lo que acepta y devuelve
objetos de .NET ya que está basado en .NET CLR (Commond Language Runtime) esto es
ideal para automatización de procesos.
La principal diferencia de PowerShell respecto a otras interfaces de línea de comandos
es que PowerShell puede tratar con objetos, algo mas que un simple comando de
otros CLI que solo devuelve texto. Estos comandos, llamados cmdlet, devuelven una
instancia de un objeto que da lugar a una información de salida mucho más
completa que los demás intérpretes de comandos, además los otros CLI necesitan de
este para poder obtener la información de salida, mientras que un cmdlet obtiene la
información de salida por si mismo.
PowerShell permite un conjunto de comandos extensible a diferencia de otros CLI
que su conjunto de comandos está integrado, se pueden crear nuevos cmdlet a partir
de scrpit o código compilado, si necesitamos nuestro propio cmdlet podemos
crearlo. También trabaja con alias de comandos para facilitar su manejo, un alias es un
nombre que designa a un comando, así si estamos acostumbrados a trabajar con otros
CLI, podemos asignar alias a los comandos de PowerShell y seguir usando los mismos
comandos. Por ejemplo, podemos asignar el alias listar-directorios al comando dir
que nos mostrará una lista de directorios, cuando ejecutemos uno u otro nombre,
siempre mostrará el mismo resultado.
Get-Command
En caso de que quieras conocer todos los cmdlets que ofrece PowerShell, lo podrás hacer
escribiendo este comando en la consola.
Get-History
Con este comando se obtiene un historial de todos los comandos que se ejecutaron bajo
una sesión de PowerShell y que actualmente se encuentran ejecutándose.
Get-Random
Ejecutando este comando se obtiene un número aleatorio entre 0 y 2.147.483.646.
Get-Service
En ciertas ocasiones, será necesario saber qué servicios se instalaron en el sistema, para lo
que se puede usar el comando Get-Service, que brindará información acerca de los servicios
que se están ejecutando y los que ya fueron detenidos.
Para usar este cmdlet, hay que ingresar “Get-Service” en la consola, usando al mismo
tiempo alguna de las parámetros adicionales, en una sintaxis similar al siguiente ejemplo:
Get-Help
Especialmente muy útil para usuarios novatos en el uso de Powershell, este comando
presenta una ayuda básica para conocer más acerca de los cmdlets y sus funciones.
Get-Date
Para saber de una forma rápida qué día fue en una determinada fecha del pasado, usando
este comando se obtendrá el día exacto. Por ejemplo, para saber qué día fue el 20 de mayo
de 2009, habría que escribir en Powershell:
Copy-Item
Con este comando se pueden copiar carpetas o archivos.
Invoke-Expression
Con Invoke-Expression se ejecuta otra expresión o comando. Si te encuentras ingresando
una cadena de entrada o una expresión, en primer lugar este comando la va a analizar y a
continuación la ejecutará.
Invoke-WebRequest
A través de este cmdlet, similar a cURL en Linux, se puede hacer un inicio de sesión, un
scraping y la descarga de información relacionada a servicios y páginas web, mientras se
trabaja desde la interfaz de PowerShell haciendo el monitoreo de algún sitio web del que se
desee obtener esta información.
Set-ExecutionPolicy
Por ejemplo, si queremos establecer el nivel de seguridad restringida, tendríamos que usar:
Get-Item
Remove-Item
Remove-Item "C:\MyData\Finanzas.txt"
Get-Content
Set-Content
Get-Variable
Set-Variable
Get-Process
Start-Process
Start-Process -FilePath “calc” –Verb
Stop-Process
Stop-Process -Name «calc»
Start-Service