PowerShell es una interfaz de consola más avanzada que la clásica linea de comandos MS-DOS. PowerShell es un interprete de comandos orientado a objetos, destinado a programadores y administradores del sistema para automatizar tareas o realizar tareas de forma más controlada y sencilla.
Esta herramienta disponible por defecto en Windows 10 ya era compatible con versiones anteriores de Windows pero requería de una instalación previa y no solo es capaz de interactuar con el sistema operativo sino que también puede realizar tareas con otras herramientas de Windows como SQL Server, Exchange o IIS.
Abrir Powershell
Existen varias ociones para abrir PowerShell siendo las más comunes las siguientes:
- Pulsa las teclas Windows+R y en la nueva ventana escribe PowerShell
- Busca en Cortana PowerShell y haz clic sobre él.
Comandos básicos
A continuación os dejo una serie de comandos básicos de PowerShell que deberías conocer para empezar a utilizar este programa tan útil y tan desconocido por algunos.
Get-Command
Comando para conocer todos los comandos disponibles en PowerShell. Si el comando se acompaña de un parámetro nos mostrara que comandos aceptan dicho parámetro. Por ejemplo, escribe Get-Command *-help
Si no recuerdas el nombre del comando a utilizar puedes escribir Get-Command -Name *palabraBuscar*. En el siguiente ejemplo he buscado los comandos que contienen la palabra cop. Los asteriscos indican que puede contener más letras por delante o por detrás.
Get-Help
Comando para obtener ayuda de PowerShell. Se puede escribir Get-Help directamente o seguido del comando que necesites para tener ayuda más especifica.
Get-History
Comando que nos devuelve un historial de los comandos que se han ejecutado en la sesión activa de PowerShell (aunque se haya utilizado el comando Clear, aparecerán todos los que se han ejecutado)
Get-Host
Comando para obtener información de Powershell instalado en el sistema.
Get-Service
Comando para obtener un listado de los servicios del sistema junto a su estado. También puedes obtener un listado de aquellos que están parado o ejecutandose escribiendo
#En ejecución
Get-Service | Where-Object {$_.Status -eq "Running"}
#Parados
Get-Service | Where-Object {$_.Status -eq "Stopped"}
Lenguaje del código: PHP (php)
Start-Service
Comando para poner en ejecución un servicio. En el siguiente ejemplo se inicia el servicio de Windows Update.
Start-Service -Name "wuauserv"
Lenguaje del código: JavaScript (javascript)
Stop-Service
Comando para detener un servicio. En el siguiente ejemplo se detiene el servicio de Windows Update.
Stop-Service -Name "wuauserv"
Lenguaje del código: JavaScript (javascript)
Get-Date
Comando que nos devolvera la fecha actual.
Si escribimos el comando seguido de una fecha nos dirá que día fué.
Get-Date 26.09.1986
Lenguaje del código: CSS (css)
Get-Item
Comando para obtener información de un fichero o carpeta.
Copy-Item
Comando para copiar archivos o carpetas así como entradas o claves del registro. También permite renombre el nuevo fichero copiado. En el siguiente ejemplo copio el archivo de texto MiguelTroyano_com.txt ubicado en C:\Ejemplos a la mis ubicación pero cambiando el nombre a MiguelTroyano_antiguo.txt
Copy-Item "C:\Ejemplos\MiguelTroyano_com.txt" -Destination "C:\Ejemplos\MiguelTroyano_antiguo.txt"
Lenguaje del código: JavaScript (javascript)
Remove-Item
Comando para eliminar archivos, carpetas, registros, funciones, etc.
Remove-Item "C:\Ejemplos\MiguelTroyano_antiguo.txt"
Lenguaje del código: JavaScript (javascript)
Set-Variable
Comando para crear variables. En el siguiente ejemplo se crea la variable llamada Autor con el valor Miguel Troyano.
Set-Variable -Name "autor" -value "Miguel Troyano"
Lenguaje del código: JavaScript (javascript)
Get-Variable
Comando que devuelve el contenido de una variable.
Invoke-Command
Comando que permite ejecutar un script o comando de PowerShell.
Invoke-WebRequest
Comando para acceder a una URL y obtener información relacionada con los servicios y páginas web. Por ejemplo, para obtener todos los enlaces de una página web.
Set-ExecutionPolicy
Comando para cambiar la política de ejecución de los script de PowerShell. Las opciones permitidas son:
- All Signed
- Remote Signed
- Restricted
- Unrestricted
Set-ExecutionPolicy -ExecutionPolicy Unrestricted
Lenguaje del código: JavaScript (javascript)
Get-Process
Comando para obtener una lista de los procesos activos en el sistema.
Start-Process
Comando para comenzar a ejecutar un proceso. En el siguiente ejemplo se abre el notepad en blanco.
Start-Process -FilePath “notepad” –Verb
Stop-Process
Comando para parar un proceso. En el siguiente ejemplo se para el proceso del notepad abierto anteriormente. Se puede parar por nombre o id.
Stop-Process -name "notepad"
Lenguaje del código: JavaScript (javascript)
Clear
Limpia la ventana de PowerShell para no visualizar todos los comandos ejecutados anteriormente.
Exit
Comando para cerrar el programa.