Los 10 Comandos Básicos de PowerShell que Necesitas Conocer

¿Alguna vez has intentado escribir código PowerShell y te has quedado atascado? ¡No te preocupes más! Una de las mejores maneras de volverte bueno en PowerShell es entendiendo los conceptos básicos. Conocer algunos comandos básicos de PowerShell puede convertirte en un profesional, y automatizarás tareas administrativas de manera más eficiente.

En este tutorial, aprenderás los cmdlets básicos de PowerShell que necesitas saber para hacer tu experiencia en PowerShell más interesante.

Prerrequisitos

Este tutorial será una demostración práctica, pero no tiene muchos requisitos previos. Si quieres seguirlo, cualquier sistema (Windows o Linux) con PowerShell 5.1 o superior funcionará. Aunque los comandos se muestran usando Windows PowerShell, los ejemplos a continuación funcionan en PowerShell 7+ multiplataforma.

Obtener ayuda e información sobre comandos con Get-Help

¿Alguna vez has escrito código como un jefe sin obtener ayuda? Bueno, siempre habrá necesidad de ayuda mientras escribes código. Ya sea que estés ejecutando código o comandos en un entorno de línea de comandos, el cmdlet Get-Help es útil.

Comencemos este tutorial aprendiendo cómo funciona el cmdlet Get-Help.

El cmdlet Get-Help te ofrece las guías necesarias para utilizar cualquier comando de manera efectiva sin errores. Considéralo como documentación para cada uno de los comandos de PowerShell.

Abre PowerShell como administrador, y ejecuta el comando Get-Help a continuación para ver información detallada (-Detailed) sobre un comando, como el cmdlet Get-ExecutionPolicy.

Get-Help -Name Get-ExecutionPolicy -Detailed
Getting Detailed Information of Commands

En lugar de solo información detallada, quizás desees ver información completa sobre un cmdlet. Si es así, añade el parámetro -Full en el comando Get-Help en su lugar.

Ejecuta el código a continuación para obtener información completa (-Full) sobre el propio cmdlet Get-Help.

Get-Help Get-Help -Full
Getting Full Information of Commands

Tal vez aún necesites más ejemplos para evitar errores al ejecutar el comando. En ese caso, añade el parámetro -Examples para ver ejemplos de cómo escribir un comando.

Ejecuta el comando Get-Help a continuación para obtener ejemplos (-Examples) sobre cómo puedes utilizar el cmdlet Get-Process.

 Get-Help Get-Process -Examples
Applying -Examples to get help for Get-Process

Obteniendo Procesos de Computadora con Get-Process

¿Recuerdas el Administrador de tareas de Windows que muestra todos tus procesos, servicios, aplicaciones y demás? ¡Genial! El cmdlet Get-Process es un cmdlet básico pero esencial que te brinda acceso a todos los procesos de tu computadora en unos pocos pasos sin necesidad de abrir el Administrador de tareas.

Ejecuta el siguiente comando para obtener una lista de todos los procesos de tu sistema en formato de tabla.

Get-Process
Getting All Windows Processes

Cuando un proceso se congela y hace que tu computadora funcione lentamente, detén el proceso mediante la canalización del cmdlet Get-Process al cmdlet Stop-Process. Por ejemplo: ejecuta Get-Process -Id 1252 | Stop-Process, donde -Id 1252 especifica el ID del proceso que deseas detener.

Obtención del historial de sesión de PowerShell con Get-History

Puede que necesites verificar tus comandos recientes, como verificar si el comando reciente que ejecutaste es correcto o si realmente ejecutaste un comando. Pero, ¿PowerShell tiene un historial de comandos? ¡Sí! El cmdlet Get-History devuelve un objeto de todos tus comandos recientes en tu sesión actual de PowerShell.

Ejecuta el siguiente comando para obtener una lista de todos los comandos ejecutados recientemente en tu sesión actual.

Get-History
Getting the commands history of the current session

Si prefieres ver comandos específicos del historial, agrega el parámetro -Id seguido del número de identificación del comando del historial. Por ejemplo, ejecuta Get-History -Id 2 para ver el segundo comando en el historial.

Mostrando Servicios del Sistema con Get-Service

Al igual que el cmdlet Get-Process, PowerShell también te permite ver todos los servicios en ejecución en tu sistema. El cmdlet Get-Service te permite ver todos los servicios, que podrían ser un servidor de base de datos o una aplicación que controla automáticamente el brillo de la pantalla de tu computadora.

Ejecuta el siguiente comando para obtener una lista de todos los servicios en tu sistema en formato de tabla. Con este comando, puedes ver incluso los servicios detenidos.

Get-Service
Getting all available services on the local computer

Tal vez estés buscando servicios que comiencen con un carácter específico. Si es así, agregar un carácter comodín (*) hará el truco.

Ejecuta el comando Get-Service a continuación, pasando la primera letra y el asterisco (A*) de los servicios que deseas ver. Agregar el carácter comodín te permite filtrar todos los servicios que no comienzan con la letra ‘A’.

Get-Service A*
Getting all services that start with the letter ‘A’

Ejecutando Trabajos en Segundo Plano con Start-Job

Escribir código puede resultar molesto si todavía hay mucho por escribir, pero un solo comando tarda una eternidad en escribirse. ¡No hay problema! PowerShell proporciona un cmdlet para ejecutar trabajos en segundo plano en tu sesión. El cmdlet Start-Job proporciona un entorno de PowerShell para ejecutar código o comandos como un trabajo en segundo plano sin interacción del usuario.

Ejecuta el comando Start-Job a continuación para iniciar un trabajo en segundo plano para el cmdlet Get-Command. Iniciar un trabajo en segundo plano ejecuta el cmdlet Get-Command sin mostrar la salida en tu línea de comando.

Start-Job -ScriptBlock {Get-Command}
Starting a background job for Get-Command

Dado que estás trabajando con trabajos en segundo plano, ¿cómo puedes verificar si un trabajo aún se está ejecutando o se ha completado? Ejecuta el cmdlet Get-Job para obtener todos los trabajos en tu sesión.

Cambiando Directorios de Trabajo con Set-Location

Hay momentos en los que necesitas cambiar de directorio, como cuando ejecutas un script o un programa desde una ubicación específica. Pero ¿cómo cambias de directorio? Deja que el cmdlet Set-Location te ayude con eso. El cmdlet Set-Location establece el directorio de trabajo actual en el directorio que especifiques en un comando.

Ejecuta el código a continuación para establecer el directorio de trabajo actual en C:\Users\hp\Desktop. Cambia hp con el nombre de usuario de tu computadora.

Set-Location C:\Users\hp\Desktop

A continuación, puedes ver en el indicador que C:\Users\hp\Desktop es ahora el directorio de trabajo.

Changing Working Directory

Verificando Si los Caminos Existen a través de Test-Path

PowerShell puede mostrar un error si intentas acceder a un archivo que no existe. ¿Cómo evitar eso? El cmdlet Test-Path te permite verificar si un camino existe o no, con su sintaxis intuitiva.

Ahora, crea una carpeta en el Escritorio, nombrándola NewFolder.

Ejecuta el comando Test-Path a continuación, seguido del camino que prefieras probar. Para este ejemplo, el comando prueba si el camino C:\Users\hp\Desktop\NewFolder existe.

Test-Path C:\Users\hp\Desktop\NewFolder

A continuación, puedes ver que el comando devolvió un valor True ya que la ruta existe. De lo contrario, obtendrás un resultado False.

Testing if the path exists

Convertir un objeto PowerShell a HTML con ConvertTo-HTML

Si prefieres una forma organizada para tus datos, convierte tus datos a HTML con el cmdlet ConvertTo-Html. Fundamentalmente, el comando toma el archivo de salida que deseas convertir y el nombre de archivo con el que deseas guardarlo.

Ejecuta el comando a continuación para recopilar la lista de todos los comandos de PowerShell (Get-Command) en memoria y convertir (ConvertTo-Html) la lista a un archivo HTML llamado Command.html.

El archivo HTML se guarda en tu escritorio ya que anteriormente cambiaste el directorio de trabajo. Para guardar el archivo HTML en otro lugar en su lugar, especifica la ruta completa. Por ejemplo: Get-Command | ConvertTo-HTML > C:\Temp\Commands.html

# Crea un archivo Commands.html que contiene todos los comandos de PowerShell
Get-Command | ConvertTo-Html > Commands.html

Exportar objetos de PowerShell a CSV con Export-CSV

Si crees que un informe en CSV sería mejor en lugar de HTML, entonces utiliza el cmdlet Export-CSV. Similar al cmdlet ConvertTo-Html, el cmdlet Export-CSV te permite exportar datos a un archivo CSV.

Ejecuta el siguiente comando para recopilar una lista de comandos de PowerShell (Get-Command) y exporta la lista como un archivo CSV (Export-CSV) llamado Commands.csv.

Get-Command | Export-CSV Commands.csv

Al igual que en el cmdlet ConvertTo-Html, también puedes especificar una ruta de exportación para el archivo CSV de esta manera: Get-Command | Export-CSV C:\Temp\Commands.csv

Abre el archivo Commands.csv y verás algo como lo siguiente. ¿No está mal, verdad?

Opening Exported Commands.csv in Microsoft Excel

Visualización de todos los comandos de PowerShell disponibles con Get-Command

El último comando de PowerShell en la lista es el cmdlet Get-Command. El cmdlet Get-Command básicamente lista todos los comandos de PowerShell disponibles que puedes ejecutar en un formato de tabla. Pero como has visto en los ejemplos anteriores, sabes que no es todo lo que Get-Command puede hacer.

Quizá quieras listar los cmdlets o los aliases selectivamente. Si es así, añade el parámetro -CommandType al cmdlet Get-Command para filtrar la salida por el tipo de comando que especifiques. El valor del parámetro -CommandType puede ser Alias, Cmdlet, o Function.

Ejecuta el comando Get-Command a continuación para listar solo los cmdlets (-CommandType Cmdlet) con nombres que empiezan con ‘G’ (-Name G*).

Get-Command -Name G* -CommandType Cmdlet
Getting all cmdlets that start with the letter ‘G’

Otra manera de filtrar la salida de Get-Command es pasándola al cmdlet Select-Object. Como sabes, el objeto devuelto por el cmdlet Get-Command está en formato de tabla. En esa tabla, los nombres de las columnas representan las propiedades que puedes seleccionar del objeto.

Ejecuta el Get-Command a continuación para recopilar una lista de todos los comandos de PowerShell y filtrar la pantalla para mostrar la propiedad de definición de cada comando (Select-Object -Property Definition).

Get-Command | Select-Object -Property Definition
Property Definition

Conclusión

Este tutorial te ha dado una guía completa sobre cómo ejecutar comandos básicos de PowerShell. Para este momento, deberías saber cómo canalizar extensivamente y ejecutar comandos y evitar quedarte atascado al codificar en cualquier momento.

Ahora, ¿cómo construirías sobre este nuevo conocimiento? ¿Quizás aprender cómo escribir comandos de varias líneas en scripts de PowerShell sin complicar las cosas?

Source:
https://adamtheautomator.com/basic-powershell-commands/