16 Comandos Esenciales de PowerShell que Debes Conocer

Comandos Esenciales de PowerShell

Windows PowerShell es una poderosa aplicación basada en el marco .NET. Se basa en comandos de PowerShell llamados cmdlets. Al combinarlos en un orden determinado, puedes realizar casi cualquier operación desde la ventana de PowerShell. Para explicar cómo funciona, hemos recopilado los comandos de PowerShell más esenciales.

Bueno saber: ¿Windows no puede encontrar “Powershell.exe”? Aprende qué hacer para recuperarlo.

Tabla de Contenidos

  • Cómo Usar los Comandos de PowerShell
  • Comandos Esenciales de PowerShell
    1. Clear-Host o Cls
    1. Convert-to-HTML
    1. Get-Command
    1. Get-Help
    1. Get-Process
    1. Get-Service
    1. Install-Module o Install-Script
    1. mkdir, md, rmdir
    1. New-Item
    1. Remove-Item
    1. Set-ExecutionPolicy
    1. Select-Object y Sort-Object
    1. Start- y Stop-Process
    1. Suspend- y Resume-Service
    1. Test-Path
    1. Wait-Process
  • Otros Comandos Esenciales de PowerShell
  • Preguntas Frecuentes

Cómo Usar los Comandos de PowerShell

Para comenzar a usar cmdlets, debes iniciar PowerShell en modo Administrador desde el menú de búsqueda.

Abrir PowerShell en modo Administrador desde la búsqueda de Windows 11.

Comandos Esenciales de PowerShell

PowerShell en Windows no es solo una interfaz de línea de comando activa, sino también una ventana de scripting y programación que puede ejecutar cualquier aplicación o proceso que desees. Si bien hay varios cientos de cmdlets, para comenzar, solo necesitas aprender los más esenciales.

1. Clear-Host o Cls

¿Cometiste un error mientras escribías, o algo no está saliendo como estaba planeado? Afortunadamente, hay reintentos en PowerShell. El práctico comando clear-host puede borrar todo el texto de la pantalla. Simplemente escribe el comando en cualquier línea de tu pantalla, y todo desaparecerá instantáneamente.

Comando Clear host para eliminar todo el texto en la ventana de PowerShell.

También puedes usar el comando más simple cls, que se usa con frecuencia en el Símbolo del sistema, con PowerShell. Estos dos comandos para borrar texto son útiles cuando encuentras un mensaje de error.

Ingresando el comando cls debajo del mensaje de error para eliminar todo el texto en PowerShell.

Para evitar errores de escritura en el Símbolo del sistema o en la ventana de PowerShell, copia y pega los comandos para mejorar la eficacia.

Consejo: usa PowerShell para ocultar actualizaciones de Windows, como se muestra en esta guía.

2. Convert-to-HTML

Tener una gran cadena de HTML es más estético que mirar las capturas de pantalla desordenadas de PowerShell. También es útil cuando necesitas compartir errores de script y otros eventos de PowerShell con miembros del equipo no técnicos.

Todos los componentes de PowerShell utilizan objetos .NET que podemos visualizar en la pantalla de PowerShell. Para que se muestren en una ventana de navegador completo, utiliza el cmdlet Convert-to-HTML. A continuación, un ejemplo para ver todos los alias de PowerShell en la web. Recuerda usar una línea separada antes de “Invoke-Item”.

Get-Alias|ConvertTo-Html|Out-File aliases.htm  
Invoke-Item aliases.htm

Comando Convert-to-HTML en PowerShell para mostrar alias en una página web.

Tan pronto como ejecutes el comando de conversión a HTML, PowerShell te pedirá que abras el archivo de salida usando otra aplicación. Usar un navegador producirá una lista de objetos, como alias.

Una lista completa de alias de PowerShell visible en un navegador web.

3. Get-Command

Existen principalmente dos tipos de comandos: alias y funciones. Los alias de PowerShell sirven como un apodo para una función o cmdlet. Windows ha almacenado algunos alias por defecto, que puedes recuperar usando Get-Command. También puedes crear tus propios alias.

Lista de alias bajo Get command en PowerShell.

El otro tipo de comando en PowerShell son las funciones. Estas utilizan un verbo aprobado (como “get”) y un sustantivo simple (como “StorageNode”).

Lista de funciones mostradas bajo Get-command en Powershell.

Estamos utilizando una función “Select-object” (nota la combinación del verbo y el sustantivo) con lo que se conoce como una variable de entorno para el nombre de la computadora para mostrar el nombre de la computadora local.

$env:computername |Select-Object

Obteniendo el nombre de la computadora usando la función Select-Object y la variable de entorno en PowerShell.

Las funciones son el punto de partida de la codificación avanzada de PowerShell. Puedes usar funciones, como Start-process, con parámetros y variables para crear tus propios scripts por lotes, ejecutando una serie de tareas.

4. Get-Help

PowerShell tiene su propio cmdlet de autoaprendizaje para solucionar problemas, Get-Help, que muestra todas las soluciones rápidas y artículos de ayuda en una sola ventana. Ingresa el comando al final de cualquier salida para obtener ayuda con varios módulos. Puede que necesites presionar Y para permitir versiones actualizadas del contenido de ayuda.

PowerShell actualizando ayuda para varios módulos después del comando Get-Help.

Existen varias opciones de ayuda a través de Get-help. Por ejemplo, si deseas aprender qué hace Get-process y cuál es su sintaxis exacta, ingresa lo siguiente:

Get-Help Get-Process

Varios ejemplos mostrados en la ventana de PowerShell para el comando get-help.

Consejo: ¿te preocupa que los keyloggers estén monitoreando tu actividad en tu PC? Aprende a detectar un keylogger en Windows.

5. Get-Process

Get-Process es un comando esencial de PowerShell que enumera la lista completa de procesos en tu dispositivo local o en una computadora remota.

El comando Get-Process en PowerShell lista todos los procesos de la computadora.

Para obtener información más detallada del proceso, deberás especificar otros parámetros, como el ID del proceso (PID) o el nombre del proceso.

Especificando el nombre del proceso en el comando Get-Process en PowerShell.

Hay muchos parámetros específicos que puedes incluir al definir el proceso a encontrar:

  • Listar procesos especificando el tamaño del archivo en MB
  • Listar procesos según prioridad
  • Encontrar el propietario de un proceso

6. Get-Service

Tu computadora con Windows tiene muchos programas y procesos en ejecución. Si bien puedes verlos directamente en el Administrador de Tareas, es más fácil ver una lista completa utilizando Get-service, que puedes convertir a HTML más tarde.

Comando Get-service en la ventana de PowerShell con una lista completa de servicios.

¿No recuerdas el nombre exacto del servicio que necesitas? Puedes usar un símbolo comodín (*) junto con las pocas letras que recuerdas.

Get-service "xyz*"

Get-service con iniciales escritas en la ventana de PowerShell.

Algunas banderas comunes que funcionan en conjunto con Get-Service incluyen -DisplayName, -DependentServices, -InputObject y -RequiredServices.

7. Install-Module o Install-Script

PowerShell es una de las opciones más seguras para instalar paquetes de software para software de Windows, como Microsoft Teams, McAfee Security, Bing Translator, los últimos juegos de Xbox, etc. Para obtener una lista completa de software compatible en PowerShell para todos los usuarios, ingresa:

Get-AppxPackage -AllUsers

Comando Get AppxPackage para ver toda la lista de paquetes en PowerShell.

Una mejor manera es buscar tu paquete deseado en PowerShell Gallery, un recurso único para los últimos paquetes de software. Una vez que lo encuentres, ingresa un comando, como Install-module, Install-Script, o Install-Package. Lo siguiente muestra la instalación del juego de Buscaminas.

Install-Script -Name Minesweeper

Instalando el juego de Buscaminas desde PowerShell en Windows.

Espera unos segundos o minutos para la instalación del paquete a través de tu PowerShell. Estará disponible más tarde en Windows.

Instalación del paquete de Buscaminas en proceso.

Otro comando útil es Find-package, que busca un paquete de software en tu computadora o en la web.

Consejo: también puedes usar el Administrador de Paquetes de Windows para instalar y actualizar programas.

8. mkdir, md, rmdir

mkdir no es un comando nativo de PowerShell. Sin embargo, es un alias ampliamente utilizado de new-item para crear directorios, ya que esta sintaxis es muy popular en DOS y Linux. Cuando usas mkdir con un nombre de tu elección, crea una carpeta vacía.

mkdir "nombre de tu carpeta vacía."

Haz que PowerShell apunte a tu nueva carpeta creada usando un simple comando cd.

cd "nombre de la carpeta recién creada."

Creando un nuevo directorio usando el comando mkdir en PowerShell y apuntando a ese nuevo directorio usando cd.

La nueva carpeta creada se encuentra siempre en la ruta C:\Windows\System32, pero puedes usar cd para apuntar a una carpeta diferente.

Nueva carpeta creada usando el comando PowerShell visible en el Explorador de archivos System32.

Puedes sustituir mkdir con md para el mismo propósito que arriba. Para eliminar cualquier contenido del directorio, usa un comando rmdir (remove directory):

rmdir "nombre de la carpeta con contenido vacío."

Comandos md y rmdir utilizados en la ventana de PowerShell para crear y eliminar carpetas vacías.

9. New-Item

A diferencia de los alias como mkdir y md, New-item es el cmdlet oficial utilizado en PowerShell para crear nuevos elementos y establecer sus valores. Además de crear archivos y carpetas, puedes usarlo para crear claves y entradas del registro.

  1. Para crear un nuevo directorio usando el comando New-item, escribe:
New-item -Path "Ubicación de la ruta del directorio\" -Name "Nombre de tu elección" -ItemType "directorio"
  1. Tan pronto como se crea un directorio, puedes colocar nuevos archivos con New-item dentro de esa carpeta.
New-item -Path "Ubicación de la ruta del directorio creado\" -Name "nombre del archivo.txt" -ItemType "file" -Value "inserta cualquier texto de tu elección."

Comando New-item en uso en PowerShell para crear nueva carpeta y archivo con texto.

  1. El archivo recién creado puede encontrarse en su carpeta de destino.

Comandos Esenciales de Powershell Nuevo Elemento en el Explorador de Archivos

10. Remove-Item

¿Quieres eliminar todos los archivos con una extensión, como .TXT, .DOC, .PDF, .WMV, de una carpeta? Primero, apunta a la ruta exacta de la carpeta usando cd, luego usa el cmdlet Remove-Item como se muestra a continuación:

Remove-Item * -Include *(tipo de archivo) -Exclude *(cualquier variable o número)

Eliminar elemento de una carpeta en PowerShell.

El método anterior es muy útil para identificar y eliminar cualquier archivo oculto o de solo lectura o para eliminar cualquier archivo con caracteres especiales.

Bueno saber: ¿tienes problemas para eliminar un archivo de tu PC? Aprende cómo forzar la eliminación de archivos indeseables en Windows.

11. Set-ExecutionPolicy

Por motivos de seguridad, PowerShell tiene su propia política de ejecución que afecta a archivos de configuración, scripts y otros parámetros. Esta característica de seguridad se puede ejecutar utilizando el comando Set-executionPolicy, junto con una bandera, como -force, que sobreescribe elementos existentes. Sigue la sintaxis dada a continuación.

Set-ExecutionPolicy  
[-ExecutionPolicy]  
[[-Scope]]  
[-Force]  
[-WhatIf]  
[-Confirm]  
[]

Por ejemplo, usar el comando Set-ExecutionPolicy para instalar el software Chocolatey se vería como el código mostrado a continuación. Una vez ejecutado, descargará e instalará el software oficial de Chocolatey en tu computadora.

Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol =[System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))

Instalando Chocolatey en PowerShell usando el comando Set-ExecutionPolicy.

12. Select-Object y Sort-Object

Si tu carpeta o subcarpeta tiene muchos archivos y extensiones, es posible que desees ordenar o seleccionar en orden ascendente o descendente según una propiedad predefinida. Aquí es donde los cmdlets Sort-Object y Select-Object pueden ayudarte a reorganizar múltiples objetos de una sola vez.

La ordenación y selección se pueden aplicar a cualquier archivo en diferentes carpetas, así como a los procesos existentes en tu computadora. A continuación, un ejemplo de ordenación y selección de los diez procesos más importantes según el tamaño del conjunto de trabajo (WS) en megabytes.

Get-Process | Sort-Object -Property WS | Select-Object -Last "Número de elementos"

Seleccionar y ordenar objetos basados en el Get-process predefinido en PowerShell.

Puedes usar la ordenación y selección en varios otros parámetros, como información histórica de varios archivos, ordenar todos los elementos de una lista contenida dentro de un archivo de Notepad, y ordenar varios eventos en tu computadora.

13. Start- y Stop-Process

Ya sea que desees iniciar un nuevo proceso en Windows o detener un proceso existente, puedes usar rápidamente los cmdlets de PowerShell para lograr ese objetivo.

Para terminar rápidamente un proceso, usa el cmdlet Stop-Process. El siguiente ejemplo muestra cómo cerrar un proceso de WordPad.

Stop-Process -Name "Nombre del proceso o aplicación"

Deteniendo el proceso de WordPad desde PowerShell en Windows.

Del mismo modo, para iniciar una nueva aplicación directamente desde la ventana de PowerShell, ingresa el cmdlet Start-Process y la bandera -FilePath.

Start-Process -FilePath "Nombre de la aplicación"

Comando de comienzo de proceso en PowerShell para abrir la aplicación WordPad.

Consejo: aprende a detener aplicaciones y procesos en segundo plano de ejecutarse en Windows y consumiendo tus recursos.

14. Suspend- y Resume-Service

En lugar de iniciar o detener un servicio en ejecución, puedes suspenderlo directamente. El cmdlet Suspend-Service es simple de usar y te ayuda a reducir el uso de RAM y CPU de los servicios que no estás utilizando actualmente.

Nota: puedes usar Get-Service para obtener el nombre del servicio que se va a suspender.

Suspend-Service -DisplayName "Nombre completo del servicio"

Comandos Esenciales de Powershell Suspender Servicio

Cualquier servicio terminado puede reanudarse más tarde con un simple comando Resume-Service. Si no estás seguro de qué servicios puedes suspender sin afectar negativamente a tu sistema, usa el siguiente comando:

Get-Service | Where-Object {$_.CanPauseAndContinue -eq "True"} | Suspend-Service -Confirm

Suspender servicios que pueden ser suspendidos en la ventana de PowerShell.

15. Test-Path

Si deseas evitar cometer errores en las rutas de archivos en tu programación, necesitas estar seguro de que la ruta de archivo en la sintaxis sea precisa. Si bien siempre puedes verificar con el Explorador de Archivos, una forma más precisa de confirmarlo es utilizando el cmdlet Test-Path, que simplemente responde “Verdadero” o “Falso” si existe una ruta dada.

Test-Path -Path "Nombre de la ruta"

Comandos Esenciales de Powershell Testpath

Puedes modificar el comando para probar la disponibilidad de un archivo dado, verificar si la ruta del registro es precisa, y determinar si hay otros archivos además de un tipo específico de archivo en tu computadora.

16. Wait-Process

Cuando varios procesos están en ejecución al mismo tiempo, es posible que desees esperar a que uno o más de ellos se detengan antes de poder usarlos de nuevo. El cmdlet Wait-Process puede ayudar mucho. Puedes especificar un tiempo de espera por el cual PowerShell esperará antes de que el proceso se detenga.

Wait-Process -Name "Nombre del proceso" -Timeout (en segundos)

Comandos Esenciales de Powershell Esperar Proceso

Otros Comandos Esenciales de PowerShell

Además de los comandos de PowerShell listados anteriormente, también es útil aprender los siguientes cmdlets y funciones:

  • Echo es un cmdlet utilizado para imprimir cualquier valor en la consola de PowerShell.
  • Get-Host proporciona todos los detalles del programa que aloja PowerShell en Windows.
  • Test-JSON es un cmdlet avanzado utilizado para validar si una cadena es un objeto JSO válido.
  • Trace-command rastrea toda la expresión o comando para encontrar los parámetros y banderas que contiene.
  • Write-output, como su nombre indica, da una salida del último comando en la ventana de consola.

Consejo: mantente al día con estos procesos legítimos de Windows que pueden parecer malware para evitar eliminarlos de tu sistema.

Preguntas Frecuentes

¿Cómo puedo resolver el error “el script de PowerShell no se reconoce como el nombre de un cmdlet”?

Si PowerShell no reconoce el nombre de un cmdlet, podría ser debido a que la variable de ruta no está configurada correctamente. Corrige cualquier error en la variable de ruta corrigiendo su ruta de carpeta no válida.

¿Cómo capturo la salida de error como una variable en PowerShell?

PowerShell tiene un parámetro de variable de error, $ErrorVariable, diseñado para capturar todas las salidas de error cuando ingresas los diversos cmdlets. Estos pueden ser utilizados para solucionar problemas.