Para restablecer un equipo en Windows PowerShell, utilice una herramienta estándar de línea de comandos o una clase de WMI. Aunque está utilizando Windows PowerShell sólo para ejecutar la herramienta, el aprendizaje del proceso para cambiar el estado de energía de un equipo ilustra algunas partes importantes del uso de herramientas externas en Windows PowerShell.
Bloquear un equipo
La única manera de bloquear directamente un equipo con las herramientas estándar disponibles es llamar a la función LockWorkstation() en user32.dll:
rundll32.exe user32.dll,LockWorkStation
Este comando bloquea inmediatamente la estación de trabajo. Utiliza rundll32.exe, que ejecuta los archivos DLL de Windows (y guarda sus bibliotecas para usarlas repetidamente), para ejecutar user32.dll, una biblioteca de funciones de administración de Windows.
Si bloquea una estación de trabajo con Cambio rápido de usuario activado, como en Windows XP, el equipo mostrará la pantalla de inicio de sesión del usuario en lugar de iniciar el protector de pantalla del usuario actual.
Para cerrar sesiones específicas en un servidor de Terminal Server, utilice la herramienta de línea de comandos tsshutdn.exe.
Cerrar la sesión actual
Puede usar varias técnicas diferentes para cerrar una sesión en el sistema local. La forma más sencilla es usar la herramienta de línea de comandos de Escritorio remoto/Terminal Services logoff.exe. Para obtener información detallada, escriba logoff /? en el símbolo del sistema de Windows PowerShell. Para cerrar la sesión activa actual, escriba logoff sin argumentos.
También puede utilizar la herramienta shutdown.exe con su opción de cierre de sesión:
shutdown.exe -l
Una tercera opción es usar WMI. La clase Win32_OperatingSystem tiene un método Win32Shutdown. Si se llama a este método con la marca 0, se inicia el cierre de sesión:
(Get-WmiObject -Class Win32_OperatingSystem -ComputerName .).Win32Shutdown(0)
Para obtener más información y para buscar otras características del método Win32Shutdown, vea "Win32Shutdown Method of the Win32_OperatingSystem Class" (en inglés) en MSDN.
Apagar o reiniciar un equipo
Apagar y reiniciar equipos son generalmente tareas del mismo tipo. Las herramientas utilizadas para apagar equipos también suelen reiniciarlos, y viceversa. Hay dos opciones sencillas para reiniciar un equipo desde Windows PowerShell: Tsshutdn.exe o Shutdown.exe, con los argumentos adecuados. Se puede obtener información de uso detallada con tsshutdn.exe /? o shutdown.exe /?.
También se pueden apagar y reiniciar equipos utilizando Win32_OperatingSystem directamente desde Windows PowerShell.
Para apagar el equipo, utilice el método Win32Shutdown con la marca 1.
(Get-WmiObject -Class Win32_OperatingSystem -ComputerName .).Win32Shutdown(1)
Para reiniciar el sistema operativo, utilice el método Win32Shutdown con la marca 2.
(Get-WmiObject -Class Win32_OperatingSystem -ComputerName .).Win32Shutdown(2)