Tenemos al alcance de la mano diversas herramientas que nos proporciona el sistema operativo Windows para trabajar con comandos si así lo deseamos. Una de las más populares y que viene integrada en el software de Microsoft es PowerShell, que seguro a la mayoría os resulta familiar.
Podríamos decir que esta herramienta en concreto es la sucesora del popular CMD o ventana del símbolo del sistema que nos viene acompañando desde hace décadas. Gracias a PowerShell, los administradores de sistemas y usuarios avanzados de Windows tienen la posibilidad de sacar el máximo provecho al sistema operativo y aprovechar sus funciones más ocultas.
Eso sí, hay que tener en consideración que para poder utilizar esta herramienta de comandos, es necesario tener ciertos conocimientos avanzados acerca de las órdenes que realmente vamos a necesitar. De ahí que a continuación os vamos a hablar de algunos de los comandos más útiles que podéis encontrar y utilizar aquí para llevar a cabo todo tipo de funciones habituales en el sistema operativo de Microsoft.
Lo cierto es que una vez conocemos estas órdenes para usar en PowerShell y nos acostumbramos a su utilización, en muchos casos no podremos vivir sin ellas. Al menos para intentar ser más productivos en Windows y sacar más provecho al sistema operativo en cuestión de segundos. Quizá no sean tan cómodos como la interfaz gráfica a la que estamos acostumbrados, pero en determinadas ocasiones nos sacarán de más de un apuro.
Comandos imprescindibles para usar el PowerShell
Veamos algunos de los comandos que posiblemente os interesan a la mayoría y que además no tienen complicación alguna en cuanto a su uso.
Get-Help. En primer lugar, nos encontramos con un comando para obtener ayuda en PowerShell. Como su nombre indica, nos echa una mano a la hora de a encontrar información sobre los comandos de la herramienta como tal. Un ejemplo de su sintaxis es la siguiente:
Get-Help Get-Process
Muestra la sintaxis y los parámetros del comando que especificamos aquí.
Get-Command. Esta otra orden nos ayuda a encontrar y listar todos los comandos existentes disponibles basándose en nombres parciales o patrones. Por ejemplo, si intentamos encontrar todos los comandos que contengan la palabra Process escribimos lo siguiente:
Get-Command *process*
Así vemos todos los comandos que contienen un proceso en su nombre.
Test-NetConnection. Si utilizamos herramientas de terceros para hacer ping, Telnet y traceroute, Test-NetConnection realiza las tres tareas. Es una herramienta de resolución de problemas de red que comprueba si el problema está en la red, en el servidor o en otra parte. Para comprobar si un sitio web es accesible, ejecutamos lo siguiente:
Test-NetConnection softzone.es
Where-Object. Esta orden filtra los datos seleccionando objetos con valores de propiedad específicos, similar a una sentencia IF en programación. Por ejemplo, si necesitamos ver todos los servicios en ejecución, escribimos este comando:
Get-Service | Where-Object {$_.Status -eq "Running"}
Get-Member. Hay que saber que PowerShell trabaja con objetos y Get-Member muestra sus propiedades y métodos. Por ejemplo, si un comando proporciona un archivo de salida, Get-Member puede mostrar su tamaño, fecha de creación y otros detalles.
Get-Process | Get-Member
Esto muestra propiedades como la CPU, Id y WorkingSet, además de métodos como Kill() y Refresh().
Get-FileHash. Esta orden calcula el valor hash del contenido de un archivo mediante un algoritmo hash específico. Permite verificar las descargas o comprobar si alguien ha manipulado nuestros ficheros, todo mediante esta estructura:
Get-FileHash C:ejemplo.docx
| Comando | Función Principal | Ejemplo de Sintaxis |
|---|---|---|
| Get-Help | Proporciona ayuda y muestra la sintaxis y parámetros de otros comandos | Get-Help Get-Process Get-Help Test-NetConnection -Full |
| Get-Command | Lista todos los comandos disponibles según nombres parciales o patrones | Get-Command *Service* Get-Command -CommandType Cmdlet |
| Test-NetConnection | Realiza tareas de resolución de problemas de red como ping, Telnet y traceroute | Test-NetConnection google.com Test-NetConnection -Port 80 -ComputerName servidor.local |
| Where-Object | Filtra datos seleccionando objetos con valores de propiedad específicos | Get-Process | Where-Object {$_.CPU -gt 100} Get-Service | Where-Object Status -eq "Running" |
| Get-Member | Muestra las propiedades y métodos de los objetos en PowerShell | Get-Process | Get-Member Get-Service | Get-Member -MemberType Property |
| Get-FileHash | Calcula el valor hash del contenido de un archivo para verificar su integridad | Get-FileHash C:\archivo.txt Get-FileHash -Algorithm SHA256 documento.pdf |
