Los 10 principales comandos de PowerShell que debe conocer

PowerShell es realmente poderoso y puede hacer que su trabajo diario sea mucho más fácil.

Con todos los módulos que puede cargar, hay muchos comandos de PowerShell. Pero, ¿cuáles son los comandos de PowerShell que debes conocer?

Es posible que ya conozca algunos de los comandos, pero ¿sabía que puede obtener un autocompletado completo de todos los parámetros posibles con una combinación de teclas? ¿O buscar a través de los comandos que ingresó anteriormente?

En este artículo, he recopilado los 10 mejores comandos de PowerShell que realmente te ayudarán en tu trabajo diario.

Si tiene alguna otra recomendación, agréguela en los comentarios a continuación.

Los 10 mejores comandos de PowerShell

A continuación encontrará los comandos de PowerShell más útiles que pueden hacer que su trabajo diario en PowerShell sea mucho más fácil.

Obtener miembro

Al escribir secuencias de comandos, a veces desea saber qué propiedades y métodos devuelve un cmdlet.

Una forma de hacerlo es ejecutar el cmdlet y revisar todas las propiedades devueltas. Pero una forma más conveniente es usar el Get-Member cmdlet.

Cuando canaliza el cmdlet detrás de un comando, enumerará todas las propiedades, métodos y definiciones de cada uno.

Por ejemplo, para obtener todas las propiedades y métodos del cmdlet Get-EXOMailbox podemos hacer:

Get-EXOMailbox | Get-Member
Comandos de PowerShell
Obtener miembro

Obtener historial

Cuando trabaja en una CLI, como PowerShell, probablemente use a menudo la tecla de flecha hacia arriba para encontrar el comando que usó anteriormente.

Ahora, cuanto más tiempo haya estado trabajando en su sesión de PowerShell, más comandos tendrá que pasar.

Pero, ¿sabías que puedes usar el Get-History cmdlet para ver todos los comandos que ha utilizado? PowerShell realiza un seguimiento de los comandos que ingresó durante una sesión.

¡Por defecto, recordará las últimas 4096 entradas!

Simplemente escriba Get-History para ver todos los últimos comandos que ha utilizado:

Get-History
Comando Obtener historial
Obtener historial

En el ejemplo, solo tengo 8 entradas, por lo que es fácil encontrar el comando que busca.

Pero cuando tiene más entradas, es bueno saber que también podemos buscar/filtrar el cmdlet Get-History, canalizando un Where-object lo:

Get-History | Where-Object {$_.Commandline -like "*EXOMailbox*"}

# Result
  Id CommandLine
  -- -----------
   4 Get-EXOMailbox -Filter "RecipientType -eq 'UserMailbox'"
   6 Get-EXOMailbox -Filter "RecipientType -eq 'UserMailbox'"
   7 Get-EXOMailbox -Filter "RecipientType -eq 'UserMailbox'" | Select Name,EmailAddresses

Get-Random

Al escribir scripts, no es raro usar una función aleatoria para generar un número entero aleatorio.

Pero el cmdlet Get-Random en PowerShell puede hacer más que solo generar un número entero.

También es capaz de seleccionar una entrada aleatoria de una matriz, por ejemplo.

El cmdlet Get-Random usa el Generador de números aleatorios class que le permite generar aleatoriedad criptográficamente segura.

Devuelve por defecto un número entero entre 0 y 2.147.483.647. Pero por supuesto, especificamos un valor mínimo y máximo.

Get-Random -Minimum -50 -Maximum 150

# Result
111

Get Random también se puede usar para seleccionar un elemento aleatorio de una matriz:

$array = 'apple','pear','raspberry','kiwi','banana','melon','blueberry'

$array | Get-Random

# Result
raspberry

Ctrl + Espacio

Este no es realmente un comando de PowerShell, pero desearía haber sabido antes sobre esta combinación de teclas. Cuando usamos un cmdlet, todos solemos escribir el guión - y luego tabule a través de todos los parámetros posibles que tiene el cmdlet.

Pero, ¿sabía que puede ver todos los parámetros a la vez? Para probar esto, escriba un cmdlet y presione Ctrl + Space:

mejores comandos de powershell
Mostrar todos los sustantivos y parámetros

Mostrará todos los sustantivos y parámetros que puede usar con el cmdlet. Ahora, presionar Ctrl + Espacio es un método al que deberá acostumbrarse, pero también puede configurar lo siguiente en su perfil de PowerShell:

Set-PSReadlineKeyHandler -Key Tab -Function Complete

De esta manera solo necesitará escribir el guión y presione Tabulador dos veces para enumerar todos los parámetros.

Entrar-PSSession

¿Necesita ejecutar un comando de PowerShell en el servidor? La mayoría abre un escritorio remoto para iniciar una sesión de PowerShell en el servidor, pero realmente no hay necesidad de eso.

Con PowerShell, podemos iniciar una sesión interactiva con una computadora remota usando el Enter-PSSession cmdlet.

Para iniciar una sesión interactiva, simplemente escriba:

Enter-PSSession -Computername LazySrvLab02

# Result
[LazySrvLab02]: PS C:\>

Ahora puede ejecutar comandos de PowerShell en el servidor, como si estuviera trabajando directamente en el servidor.

Si necesita autenticarse con diferentes credenciales, use el parámetro -credential para especificar el nombre de usuario que desea utilizar. Se le pedirá la contraseña.

Para salir de la sesión remota, escriba Exit-PSSession

Pegar salida al portapapeles

Al recuperar datos con PowerShell, tenemos un par de opciones cuando se trata de generar los datos.

Podemos ver los resultados en la consola, vista de cuadrícula, o exportarlos a CSV, por ejemplo.

Pero, ¿sabía que también puede enviar los resultados directamente a su portapapeles?

Simplemente tubería clip detrás de su comando para almacenar los resultados en su portapapeles:

Get-Content -path "c:\temp\fruits.txt" | clip

Ahora puede simplemente pegar el contenido en cualquier programa que desee. Para ver/pegar el contenido del portapapeles en el uso de PowerShell Get-Clipboard:

Get-Clipboard

# Result
BlueBerry;StrawBerry;BlackBerry;RaspBerry;CranBerry;
Copie la salida de PowerShell al portapapeles
comando de recorte en PowerShell

Vista fuera de cuadrícula

Cuando probamos scripts o trabajamos en PowerShell, a menudo mostramos el resultado directamente en la consola.

Podemos formatear el conjunto de resultados como una tabla con format-table o en pies cortos.

Pero con grandes conjuntos de datos, esta no siempre es la mejor opción. Es posible que los datos estén truncados o que falten columnas en su resumen.

tabla de formato
Salida de tabla predeterminada en PowerShell

La salida de la vista de cuadrícula es una gran solución para eso.

Mostrará todos los datos en una buena vista que se puede buscar y ordenar en una nueva ventana. La tabla contiene todas las columnas, que puede ordenar y buscar.

Get-EXOMailbox | Out-Gridview
fuera de la cuadrícula
Vista fuera de cuadrícula de PowerShell

En la esquina superior izquierda, puede agregar filtros al conjunto de resultados, lo que le permite encontrar fácilmente los datos correctos que necesita:

filtrar la vista de cuadrícula
Filtro de vista de cuadrícula

Ahora, la mejor parte de la vista de cuadrícula en PowerShell, podemos seleccionar los elementos que necesitamos y devolverlos a PowerShell. Para esto, deberá agregar el parámetro -PassThru al cmdlet:

Get-EXOMailbox | Out-Gridview -PassThru

Seleccione los registros que necesita y presione Ok. Puede simplemente canalizar una selección detrás de él o almacenar los resultados en una variable.

resultado

Exportar-CSV

El comando Export-CSV también es uno de esos comandos que es excelente para usar cuando está recuperando datos con PowerShell.

Todos sabemos que Excel es excelente cuando se trata de procesar más datos. El comando Export-CSV genera un archivo CSV a partir de sus datos.

Agregue el parámetro NoTypeInformation and Encoding detrás de él.

El primero eliminará la información del encabezado en su archivo CSV y el último se asegurará de que se utilice la codificación correcta.

Lea más sobre Export-CSV en este artículo.

Get-EXOMailbox | Export-CSV -path c:\temp\mailbox.csv -NoTypeInformation -Encoding UTF8

Establecer modo estricto

El comando Set-StrictMode en PowerShell establece y aplica reglas de codificación.

De forma predeterminada, el modo estricto está desactivado y eso puede causar un verdadero desastre.

Cuando el modo estricto está desactivado, PowerShell amenaza las variables no inicializadas como $null o 0por ejemplo.

Tenga en cuenta el siguiente código:

$username="adelev"
Get-EXOMailbox $usename | Set-mailbox -Hiddenfromaddresslist:$true

En el ejemplo anterior, he escrito mal el $username variable en el comando Get-ExoMailbox.

Si el modo estricto no está habilitado, PowerShell manejará la variable mal escrita $usename como un $nullcon el resultado de que el cmdlet obtendrá todos los buzones y los ocultará de la lista de direcciones.

Cuando configura StrictMode en la versión 2, PowerShell arrojará un error de que la variable no está configurada.

Set-StrictMode -Version 2
Principales comandos de PowerShell
Conjunto de modo estricto

recomiendo agregar el Set-StrictMode -Version 2 comando a su perfil de PowerShell.

Test-NetConnection

Prácticamente todos conocemos el comando ping, un comando fácil y directo para probar si un dispositivo de red está en línea y cuál es la latencia, por ejemplo. Pero también hay una variante de PowerShell, que es un poco más potente.

El cmdlet Test-NetConnection no solo le permite hacer ping a un dispositivo, sino que también podemos especificar el puerto para probar.

Esto es excelente cuando desea probar si se puede acceder a las aplicaciones o determinar problemas de reglas de firewall.

Por ejemplo, si quieres saber si puedes acceder al servidor SMTP de Office 365 puedes hacer lo siguiente:

Test-NetConnection -Computername smtp.office365.com -port 587

# Result
ComputerName     : smtp.office365.com
RemoteAddress    : 52.97.144.178
RemotePort       : 587
InterfaceAlias   : Wi-Fi
SourceAddress    : 192.168.1.22
TcpTestSucceeded : True

Lea más sobre Test-NetConnection en este artículo.

Terminando

Con PowerShell, siempre podemos aprender cosas nuevas y mejorar nuestros scripts o métodos de trabajo, para facilitar nuestro trabajo.

Estos comandos de PowerShell realmente pueden ayudarlo con eso.

Los comandos como Set-StrictMode y la función completa de autocompletar son uno de los mejores comandos para conocer y usar.

Espero que haya encontrado útil esta lista de los 10 principales, si tiene alguna pregunta o sugerencia, ¡deje un comentario a continuación!

Otros artículos relacionados

Cómo instalar el módulo Azure AD en PowerShell

Cómo instalar el módulo Azure AD en PowerShell

Cuando desee utilizar PowerShell para interactuar con su entorno de Azure AD, deberá instalar el módulo de Azure AD. Este ...
Leer Más
[PowerShell] Exportar el estado de MFA de los usuarios de Office 365

[PowerShell] Exportar el estado de MFA de los usuarios de Office 365

Uno de los informes que realmente extraño en el Centro de administración de Microsoft 365 es una descripción general clara ...
Leer Más
Cómo instalar el módulo Microsoft Graph en PowerShell

Cómo instalar el módulo Microsoft Graph en PowerShell

La API de Microsoft Graph nos permite interactuar con todos los servicios de Microsoft a través de una única fuente ...
Leer Más
La solución a las Plantillas de Microsoft Planner que faltan

La solución a las Plantillas de Microsoft Planner que faltan

Una de las funciones más solicitadas en el foro de UserVoice para Microsoft Planner es la capacidad de crear plantillas ...
Leer Más
Cómo usar Export-CSV en PowerShell

Cómo usar Export-CSV en PowerShell

Con PowerShell, puede extraer todo tipo de información de servicios como Active Directory o Microsoft 365. Pero a veces necesita ...
Leer Más
Conéctese a Exchange Online con PowerShell

Conéctese a Exchange Online con PowerShell

Administrar Exchange Online con PowerShell hace que muchas tareas diarias sean mucho más fáciles (y rápidas). No solo para sus ...
Leer Más

Deja un comentario