Todas las herramientas
Gratis

Una referencia de PowerShell imprimible y con búsqueda — cmdlets, la canalización, variables, archivos, bucles, funciones, objetos y administración. Gratis.

Obtener ayuda y descubrimiento

12
Get-Help Get-Process
Mostrar la ayuda de un cmdlet
Get-Help Get-Process -Examples
Mostrar ejemplos de uso de un cmdlet
Get-Help Get-Process -Full
Mostrar la ayuda completa incluidos los parámetros
Get-Help about_Functions
Leer un tema conceptual about_
Update-Help
Descargar los archivos de ayuda más recientes
Get-Command -Noun Process
Listar los cmdlets que actúan sobre un sustantivo
Get-Command -Verb Get
Listar los cmdlets que usan un verbo dado
Get-Command *service*
Buscar comandos por nombre con comodín
Get-Process | Get-Member
Listar las propiedades y métodos de los objetos
Get-Alias ls
Mostrar a qué comando resuelve un alias
Get-Alias -Definition Get-ChildItem
Listar todos los alias de un cmdlet
$PSVersionTable
Mostrar la versión y edición de PowerShell

Variables y tipos

13
$x = 5
Asignar un valor a una variable
[int]$n = '42'
Declarar una variable fuertemente tipada
$null
El valor null / vacío
$true; $false
Literales booleanos
$arr = @(1, 2, 3)
Crear un array
$arr += 4
Añadir un elemento a un array
$arr[0]; $arr[-1]
Indexar el primer y el último elemento del array
$hash = @{ Name = 'Ann'; Age = 30 }
Crear una hashtable
$hash['Name']; $hash.Name
Leer un valor de hashtable por clave
$env:PATH
Leer una variable de entorno
$env:MY_VAR = 'value'
Establecer una variable de entorno para la sesión
Get-Variable
Listar todas las variables definidas
[math]::Round(3.14159, 2)
Llamar a un método estático de .NET

Pipeline y filtrado

12
Get-Process | Where-Object { $_.CPU -gt 10 }
Filtrar objetos por una condición
Get-Process | ? CPU -gt 10
Filtrar con el alias ? y sintaxis simplificada
Get-Process | ForEach-Object { $_.Name }
Ejecutar un bloque de script por cada objeto
Get-Process | % { $_.Kill() }
Iterar con el alias %
Get-Process | Select-Object Name, Id
Conservar solo propiedades específicas
Get-Process | Select-Object -First 5
Tomar los primeros N objetos
Get-Process | Sort-Object CPU -Descending
Ordenar objetos por una propiedad
Get-Process | Group-Object Company
Agrupar objetos por una propiedad
Get-Process | Measure-Object CPU -Sum
Agregar valores numéricos (suma, promedio)
Get-ChildItem | Select-Object -Unique
Devolver objetos distintos
1..5 | ForEach-Object { $_ * 2 }
Canalizar un rango a través de una transformación
Get-Process | Out-GridView
Enviar los resultados a una cuadrícula interactiva

Archivos y rutas

13
Get-ChildItem -Path C:\Logs
Listar elementos de un directorio (alias ls/dir)
Get-ChildItem -Recurse -Filter *.log
Listar archivos coincidentes de forma recursiva
Get-Content .\file.txt
Lee un archivo línea por línea
Get-Content .\file.txt -Tail 20
Leer las últimas N líneas de un archivo
Set-Content .\file.txt -Value 'Hi'
Escribir (sobrescribir) texto en un archivo
Add-Content .\file.txt -Value 'Hi'
Añadir texto a un archivo
Copy-Item a.txt b.txt
Copiar un archivo o directorio
Move-Item a.txt .\dir\
Mover o renombrar un elemento
Remove-Item a.txt -Force
Eliminar un archivo o directorio
New-Item -ItemType Directory -Path .\dir
Crear un archivo o directorio nuevo
Test-Path .\file.txt
Comprobar si una ruta existe
Get-Location
Mostrar el directorio actual (alias pwd)
Set-Location C:\Temp
Cambiar el directorio actual (alias cd)

Cadenas y texto

12
'Hello World' -match 'World'
Probar una cadena contra una regex
'Hello' -replace 'l', 'L'
Reemplazar texto usando una regex
'a,b,c' -split ','
Dividir una cadena en un array mediante regex
'a-b-c'.Split('-')
Dividir usando el método String de .NET
'a', 'b' -join ', '
Unir los elementos de un array en una cadena
Select-String -Path *.log -Pattern 'error'
Búsqueda estilo grep entre archivos
'{0} of {1}' -f 3, 10
Formatear una cadena con marcadores de posición
' hi '.Trim()
Eliminar el espacio en blanco inicial y final
'Hello'.ToUpper()
Convertir una cadena a mayúsculas
'Hello'.Substring(0, 3)
Extraer una subcadena por índice y longitud
'Hello'.Contains('ell')
Comprobar si una cadena contiene texto
'Hello'.Length
Obtener el número de caracteres

Bucles y condicionales

12
if ($x -gt 0) { 'pos' } elseif ($x -eq 0) { 'zero' } else { 'neg' }
Bifurcar con if / elseif / else
switch ($x) { 1 { 'one' } default { 'other' } }
Comparar un valor con casos
foreach ($i in $arr) { $i }
Iterar sobre una colección
for ($i = 0; $i -lt 5; $i++) { $i }
Bucle contado con un índice
while ($x -lt 10) { $x++ }
Bucle mientras una condición sea verdadera
do { $x++ } while ($x -lt 10)
Bucle al menos una vez y luego comprobar
$x -eq 5; $x -ne 5
Comparaciones de igual y distinto
$x -gt 5; $x -lt 5
Comparaciones de mayor que y menor que
$x -ge 5; $x -le 5
Comparaciones de mayor/menor o igual
'abc' -like 'a*'
Comparación de coincidencia con comodín
@(1, 2, 3) -contains 2
Comprobar la pertenencia a un array
break; continue
Salir u omitir la iteración actual del bucle

Funciones y scripts

12
function Get-Sum { param($a, $b) $a + $b }
Definir una función con parámetros
Get-Sum -a 2 -b 3
Llamar a una función con argumentos con nombre
function Test { param([int]$n = 1) }
Parámetro tipado con un valor por defecto
param([Parameter(Mandatory)]$Name)
Exigir que se proporcione un parámetro
return $value
Devolver un valor desde una función
function F { [CmdletBinding()] param() }
Crear una función avanzada (parámetros comunes)
Write-Verbose 'msg' -Verbose
Emitir un flujo de mensajes detallados
Write-Output $result
Enviar un objeto al pipeline
Write-Error 'failed'
Escribir en el flujo de errores
.\script.ps1 -Arg value
Ejecutar un archivo de script con argumentos
. .\functions.ps1
Cargar un script en la sesión con dot-sourcing
try { } catch { $_ } finally { }
Manejar errores terminantes

Objetos y propiedades

12
Get-Process | Select-Object -ExpandProperty Name
Devolver valores de propiedad en bruto, no objetos
(Get-Process).Name
Acceder a una propiedad en cada objeto
Get-Process | Select-Object Name, @{ Name = 'MB'; Expression = { $_.WS / 1MB } }
Añadir una propiedad calculada
[PSCustomObject]@{ Name = 'Ann'; Age = 30 }
Construir un objeto personalizado
$obj | Add-Member -NotePropertyName Tag -NotePropertyValue 'x'
Asociar una propiedad a un objeto
$obj.PSObject.Properties.Name
Listar los nombres de propiedad de un objeto
$obj | Format-Table -AutoSize
Mostrar los objetos como una tabla alineada
$obj | Format-List *
Mostrar todas las propiedades como una lista
$obj | ConvertTo-Json -Depth 5
Serializar un objeto a JSON
Get-Content data.json | ConvertFrom-Json
Parsear JSON a objetos
$obj | Export-Csv out.csv -NoTypeInformation
Exportar objetos a un archivo CSV
Import-Csv data.csv
Leer un archivo CSV a objetos

Procesos y servicios

12
Get-Process
Listar los procesos en ejecución (alias ps)
Get-Process -Name chrome
Obtener procesos por nombre
Stop-Process -Name notepad -Force
Terminar un proceso
Start-Process notepad.exe
Iniciar un proceso nuevo
Get-Service
Listar los servicios de Windows
Get-Service -Name wuauserv
Obtener un servicio por nombre
Start-Service -Name wuauserv
Iniciar un servicio detenido
Stop-Service -Name wuauserv
Detener un servicio en ejecución
Restart-Service -Name wuauserv
Reiniciar un servicio
Set-Service -Name wuauserv -StartupType Manual
Cambiar el modo de inicio de un servicio
Get-EventLog -LogName System -Newest 20
Leer entradas recientes del registro de eventos clásico
Get-WinEvent -LogName Application -MaxEvents 20
Consultar los registros de eventos modernos

Remoting y trabajos

12
Enter-PSSession -ComputerName Srv01
Iniciar una sesión remota interactiva
Exit-PSSession
Salir de una sesión remota interactiva
Invoke-Command -ComputerName Srv01 -ScriptBlock { Get-Service }
Ejecutar un comando en un host remoto
$s = New-PSSession -ComputerName Srv01
Crear una sesión remota persistente
Invoke-Command -Session $s -ScriptBlock { hostname }
Reutilizar una sesión remota existente
Remove-PSSession $s
Cerrar y eliminar una sesión remota
Start-Job -ScriptBlock { Get-Process }
Ejecutar un comando como trabajo en segundo plano
Get-Job
Listar los trabajos en segundo plano y su estado
Receive-Job -Id 1 -Keep
Recuperar la salida de un trabajo
Wait-Job -Id 1
Bloquear hasta que un trabajo termine
Stop-Job -Id 1; Remove-Job -Id 1
Detener y eliminar un trabajo en segundo plano
Get-Process | Start-ThreadJob { $input }
Ejecutar trabajos de hilo ligeros en el mismo proceso

Módulos y paquetes

12
Get-Module
Listar los módulos cargados actualmente
Get-Module -ListAvailable
Listar todos los módulos instalados
Import-Module Pester
Cargar un módulo en la sesión
Remove-Module Pester
Descargar un módulo de la sesión
Find-Module -Name PSReadLine
Buscar un módulo en la galería
Install-Module PSReadLine -Scope CurrentUser
Instalar un módulo desde la galería
Update-Module PSReadLine
Actualizar un módulo instalado
Uninstall-Module PSReadLine
Eliminar un módulo instalado
Get-ExecutionPolicy
Mostrar la política de ejecución de scripts actual
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
Permitir la ejecución de scripts firmados y locales
Get-PSRepository
Listar los repositorios de paquetes configurados
$PROFILE
Ruta al script de perfil del usuario actual

Ninguna entrada coincide con “:q”.


¿Necesitas ayuda?
¿Encontraste un problema con esta herramienta? Avísanos.
Informar de un problema

Añade esta herramienta gratuita a tu propio sitio web: copia y pega el código de abajo.