Windows 11

Comandos PowerShell

Estos comandos básicos de PowerShell deben hacer que usted comience el camino para convertirse en un maestro.

Entradas communes (solo para empezar)

Navegue el Windows Registry como el sistema de archivos:
cd hkcu:

Busque recursivamente una determinada cadena dentro de los archivos:
dir –r | select string "searchforthis"

Encuentre los cinco procesos que usan más memoria:
ps | sort –p ws | select –last 5

Haga un ciclo de un servicio (detenerlo, y luego reiniciarlo) como el protocolo de configuración de huésped dinámico (DHCP):
Restart-Service DHCP

Liste todos los elementos dentro de una carpeta:
Get-ChildItem – Force

Recurra sobre una serie de directorios o carpetas:
Get-ChildItem –Force c:\directory –Recurse

Elimine todos los archivos dentro de un directorio sin que se le pida entrar a cada uno de ellos:
Remove-Item C:\tobedeleted –Recurse

Reinicie la computadora actual:
(Get-WmiObject -Class Win32_OperatingSystem -ComputerName .).Win32Shutdown(2)

Recolectar información

Obtenga información sobre la fabricación y modelo de una computadora:
Get-WmiObject -Class Win32_ComputerSystem

Obtenga información sobre la BIOS de la computadora actual:
Get-WmiObject -Class Win32_BIOS -ComputerName .

Lista de arreglos en caliente instalados: actualización rápidas de ingeniería (QFE) o archivos de Windows Update:
Get-WmiObject -Class Win32_QuickFixEngineering -ComputerName .

Obtenga el nombre de usuario de la persona actualmente registrada en una computadora:
Get-WmiObject -Class Win32_ComputerSystem -Property UserName -ComputerName .

Encuentre solo los nombres de las aplicaciones instaladas en la computadora actual:
Get-WmiObject -Class Win32_Product -ComputerName . | Format-Wide -Column 1

Obtenga direcciones IP asignadas a la computadora actual:
Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled=TRUE -ComputerName . | Format-Table -Property IPAddress

Obtenga un reporte de configuración IP más detallada para la máquina actual:
Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled=TRUE -ComputerName . | Select-Object -Property [a-z]* -ExcludeProperty IPX*,WINS*

Encuentre las tarjetas de red con DHCP habilitado en la computadora actual:
Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter "DHCPEnabled=true" -ComputerName .

Habilite DHCP en todos los adaptadores de red en la computadora actual:
Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled=true -ComputerName . | ForEach-Object -Process {$_.EnableDHCP()}

Gestión de software

Instale un paquete MSI en una computadora remota:
(Get-WMIObject -ComputerName TARGETMACHINE -List | Where-Object -FilterScript {$_.Name -eq "Win32_Product"}).Install(\\MACHINEWHEREMSIRESIDES\path\package.msi)

Actualice una aplicación instalada con un paquete de actualización de aplicaciones basado en MSI:
(Get-WmiObject -Class Win32_Product -ComputerName . -Filter "Name='name_of_app_to_be_upgraded'").Upgrade(\\MACHINEWHEREMSIRESIDES\path\upgrade_package.msi)

Elimine un paquete MSI de la computadora actual:
(Get-WmiObject -Class Win32_Product -Filter "Name='product_to_remove'" -ComputerName . ).Uninstall()

Gestión de la máquina

Remotamente apague otra máquina después de un minuto:
Start-Sleep 60; Restart-Computer –Force –ComputerName TARGETMACHINE

Añada una impresora:
(New-Object -ComObject WScript.Network).AddWindowsPrinterConnection("\\printerserver\hplaser3")

Elimine una impresora:
(New-Object -ComObject WScript.Network).RemovePrinterConnection("\\printerserver\hplaser3 ")

Entre en una sesión remota de PowerShell (debe tener habilitada la gestión remota):
enter-pssession TARGETMACHINE

Use el commando de invocación de PowerShell para ejecutar un script en un servidor remoto:
invoke-command -computername machine1, machine2 -filepath c:\Script\script.ps1

Comando adicional

Para desechar un proceso, puede utilizar el ID del proceso o el nombre del proceso. El modificador -processname permite el uso de comodines. Aquí está el ejemplo del comandos PowerShell para detener la calculadora:
Stop-Process -processname calc*