Desde siempre, Windows ha incluido un sencillo terminal, CMD, desde el que podemos ejecutar comandos. Símbolo de sistema, o CMD, es el intérprete de comandos heredado de MS-DOS, y aunque nos permite realizar determinadas configuraciones y automatizar tareas, sus funciones están muy limitadas. En 2006, Microsoft lanzaba una interfaz de consola (CLI) mucho más completa e integrada con Windows, SQL, Exchange, IIS y otros productos de la compañía: Windows PowerShell. Y desde el lanzamiento de Windows 10, esta nueva consola está ganando mucha importancia en el día a día de los usuarios.
Con mayor o menor dificultad, gracias a PowerShell podemos hacer prácticamente de todo en nuestro ordenador. Podemos administrar Windows, configurar la seguridad, automatizar tareas e incluso activar y desactivar servicios, como Escritorio Remoto, con PowerShell.
Por supuesto, esta completa interfaz de consola cuenta con comandos para realizar tareas de lo más básicas, como por ejemplo apagar y reiniciar el ordenador. E incluso nos ofrece la posibilidad de apagar y reiniciar equipos de forma remota.
¿Qué es PowerShell?
Cuando hablamos de PowerShell lo hacemos de una herramienta avanzada de control y configuración que podemos encontrar en sistemas operativos basados en Windows. Podemos definir a esta utilidad como un terminal o consola del sistema, que a muchos les recordará al mítico MS-DOS pero que es mucho más avanzado y completo que este nostálgico sistema y que hoy asociamos a CMD. Gracias a PowerShell podemos configurar mediante comandos un equipo informático de Windows sin tener que necesitar de un escritorio o una interfaz gráfica para ello. Por lo tanto, no hablamos de una herramienta dirigida a todos los usuarios, sino que solo se encuentra diseñada para los más avanzados, como pueden ser los administradores de sistemas.
Y es que conviene tener en cuenta que podremos automatizar tareas tanto de un equipo como de un servidor, pudiendo realizar todo tipo de funciones y tares con un control total sobre el sistema. Son motivos más que suficiente para que no sea utilizada por usuarios sin experiencia, ya que cualquier modificación fue afectar de forma irremediable sobre el funcionamiento del sistema. Además, esta utilidad nos va a servir para controlar determinadas aplicaciones de Microsoft como SQL Server, Exchange o ISS. Para realizar cualquier tipo de tareas con PowerShell será necesario conocer los comandos apropiados, como por ejemplo para apagar nuestro ordenador.
A continuación os explicamos cómo funcionan estos comandos.
Apagar el ordenador de forma remota
Para apagar el ordenador desde PowerShell, el comando que debemos utilizar es Stop-Computer. Este comando nos permite apagar cualquier ordenador local como ordenadores remotos conectados al mismo dominio. Y además, con parámetros, podremos especificar niveles de autenticación, alternar credenciales e incluso forzar el apagado inmediato del equipo. Es importante saber que para ejecutar PowerShell es necesario disponer de permisos de administrador en el ordenador u ordenadores que se apagarán
Lo primero que debemos hacer es acceder a PowerShell escribiendo su nombre en el cuadro de búsqueda del menú de Inicio. Una vez nos aparezca pulsamos en la opción de «Ejecutar como Administrador». Posteriormente, para apagar nuestro propio ordenador local (el que estamos usando), simplemente debemos abrir una ventana de PowerShell y ejecutar el siguiente comando:
Stop-Computer -ComputerName localhost
Podemos usar el parámetro «-ComputerName localhost» cuando lo que queremos es apagar nuestro propio ordenador, o cambiar «localhost» por el nombre NETBIOS que tenga el ordenador, su dirección IP o cualquier tipo de nombre de dominio cualificado.
Además de poder apagar nuestro propio ordenador, con PowerShell también podemos apagar ordenadores de forma remota. Para ello, el comando que debemos ejecutar es el siguiente:
Stop-Computer -ComputerName "Server01", "Server02"
Debemos cambiar «Server01», «Server02» o demás elementos dentro del parámetro «Stop-Computer» por el nombre NETBIOS, la IP o el nombre de dominio de los ordenadores que queremos apagar.
Si añadimos también al final «localhost» podremos apagar los ordenadores remotos y el nuestro local.
Podemos usar la autenticación también para apagar un ordenador de forma remota que cuente con sistemas de identificación. Para ello debemos usar el parámetro «-WsmanAuthentication» de la siguiente forma:
Stop-Computer -ComputerName "Server01" -WsmanAuthentication Basic
Podemos ver más detalles sobre el uso de Stop-Computer de PowerShell en su documentación.
En lugar de abrir la consola PowerShell cada vez que queramos utilizar alguno de estos comandos, podemos crear un acceso directo desde nuestro equipo para así, con tal solo ejecutarlo, podemos apagar ordenadores de forma remota sin recordar el script que debemos utilizar, especialmente si no estamos familiarizados con este. Este acceso directo podemos crearlo en el escritorio de Windows a través del botón derecho del ratón e introduciendo esa línea en Escriba ubicación del elemento. Para identificar cada acceso directo, podemos denominarlo con el nombre del PC que queremos apagar.
Cómo apagar el ordenador desde PowerShell
De forma similar al comando para apagar cualquier ordenador, PowerShell nos ofrece un comando para reiniciar el PC local, o uno remoto: Restart-Computer. Además, desde Windows PowerShell 3.0, es posible configurar el script para que se espere a que se reinicie el ordenador antes de que se ejecute el siguiente comando.
Para reiniciar nuestro ordenador local, lo único que debemos hacer es ejecutar el siguiente comando en la ventana de PowerShell:
Restart-Computer
Igual que hemos explicamos cómo funcionaba «Stop-Computer», el comando «Restart-Computer» se puede usar para apagar ordenadores de forma remota con el parámetro «-ComputerName» seguido del nombre NETBIOS, su IP o el nombre de dominio. También funcionan el parámetro «-WsmanAuthentication» para autenticarnos en el ordenador remoto:
Restart-Computer -ComputerName "Server01", "Server02", localhost
Podemos ver más detalles sobre el uso de Restart-Computer de PowerShell en su documentación.
Apagar y reiniciar Windows desde CMD
Si no queremos recurrir a PowerShell, también podemos usar los comandos básicos de siempre de CMD para apagar y encender nuestro ordenador. El comando para apagar el ordenador desde CMD es «shutdown», y si lo ejecutamos sin ningún parámetro vamos a poder ver una lista con todas las funciones que nos ofrece este comando:
Si queremos apagar el ordenador, el comando que debemos ejecutar dentro de la ventana de CMD es:
shutdown -s
Si dejamos el equipo trabajando y queremos que, una vez finalice su tarea, se apague automáticamente, podemos especificar el tiempo, en segundos, que transcurrirá desde que ejecutamos el comando hasta que el equipo comenzará el proceso de apagado. Para hacerlo, tan solo debemos añadir el parámetro -t xxxx, siendo xxxx los segundos. Utilizando el siguiente comando, el equipo se apagará transcurrida una hora (3600 segundos).
shutdown -s -t 3600
Por el contrario, si lo que queremos es reiniciar el ordenador, en vez de apagarlo, el comando es el mismo» shutdown», pero con un parámetro diferente:
shutdown -r
Desde CMD también podemos ejecutar un comando para bloquear el ordenador. A grandes rasgos el resultado es el mismo que pulsar Windows + L, pero podemos automatizarlo en un script o en un acceso directo si lo preferimos:
shutdown -l
El apagado del ordenador desde CMD conlleva una marcha atrás de 10 segundos, a no ser que hayamos ampliado el tiempo tal y como os hemos mostrado más arriba. Así, si nos arrepentimos y no queremos apagarlo, podemos abortar la cuenta atrás y evitar que el ordenador se reinicie ejecutando:
shutdown -a
También podemos utilizar comandos para suspender el equipo, sin embargo, el código no implica el uso de shutdow, sino que es mucho más largo
C:WindowsSystem32rundll32.exe powrprof.dll, SetSuspendState
Al igual que los comandos de PowerShell, también podemos crear accesos directos en el escritorio de Windows para así tenerlos siempre a mano a la hora de apagar, reiniciar o suspender el funcionamiento del equipo sin tener que recurrir al menú de inicio de Windows o a la combinación de teclas Alt+F4. Una vez hemos creado estos accesos directos, podemos cambiar el icono que Windows incluye de forma nativa para que sea mucho más sencillo reconocerlos a simple vista, especialmente si nuestro escritorio es una especie de cajón desastre donde cabe de todo sin orden ni concierto.
Otros comandos potentes para usar en PowerShell
Especialmente los usuarios más avanzados del sistema operativo de Microsoft suelen echar de estas dos herramientas de las que os hemos hablado aquí, CMD y PowerShell para crear archivos por lotes o scripts a base de comandos. Os podéis imaginar ambas funcionalidades no solamente nos sirven para apagar el equipo aunque sea de forma remota. Hay otras muchas utilidades que podemos llevar a cabo desde aquí si conocemos las correspondientes órdenes que podemos utilizar a través de la mencionada PowerShell.
Get-Item
: este es un comando que nos será de mucha ayuda la hora de buscar un directorio en concreto desde esta herramienta. El comando Get-Item se encarga de mostrarnos su contenido en cuestión de la misma. Decir que el uso y tratamiento de las carpetas es algo habitual y PowerShell nos permite tener un mayor control sobre todo ello.
Get-Comand – Name
. A través de esta orden podremos ver en pantalla la sintaxis real de otros muchos comandos que podremos utilizar desde aquí. Esta orden en concreto le será de mucha ayuda a todos aquellos pocos experimentados en utilizar PowerShell para estas tareas.
mkdir Documento
. Así de fácil tenemos la posibilidad de crear una nueva carpeta en la ubicación de disco en la que nos encontremos a través de esta herramienta de Windows.
Get-ChildItem
. Esto nos permite ver todo el contenido almacenado en cualquier carpeta que tengamos guardada en las unidades de disco de manera directa.
Get-Content "C:/softzone.txt"
. Y si lo que necesitamos realmente es ver el contenido interno de un fichero en concreto, tenemos la posibilidad de utilizar esta orden y especificar el fichero en cuestión en la misma.