Changing computer state
This sample only applies to Windows platforms.
To reset a computer in PowerShell, use either a standard command-line tool, WMI, or a CIM class. Although you are using PowerShell only to run the tool, learning how to change a computer's power state in PowerShell illustrates some of the important details about working with external tools in PowerShell.
Locking a computer
The only way to lock a computer directly with the standard available tools is to call the LockWorkstation() function in user32.dll:
rundll32.exe user32.dll,LockWorkStation
This command immediately locks the workstation. It uses rundll32.exe
to call the
LockWorkStation
function in user32.dll
.
When you lock a workstation while Fast User Switching is enabled, such as on Windows XP, the computer displays the user logon screen rather than starting the current user's screensaver.
To shut down particular sessions on a Terminal Server, use the tsshutdn.exe command-line tool.
Logging off the current session
You can use several different techniques to log off of a session on the local system. The simplest
way is to use the Remote Desktop/Terminal Services command-line tool, logoff.exe (For details,
at the PowerShell prompt, type logoff /?
). To log off the current active session, type logoff
with no arguments.
You can also use the shutdown.exe tool with its logoff option:
shutdown.exe -l
Another option is to use WMI. The Win32_OperatingSystem class has a Shutdown method. Invoking the method with the 0 flag initiates logoff:
For more information, see the Shutdown method of the Win32_OperatingSystem class.
Get-CimInstance -ClassName Win32_OperatingSystem | Invoke-CimMethod -MethodName Shutdown
Shutting down or restarting a computer
Shutting down and restarting computers are similar tasks. Most command-line tools support both
actions. Windows includes two command-line tools for restarting a computer. Use either
tsshutdn.exe
or shutdown.exe
with appropriate arguments. You can get detailed usage information
from tsshutdn.exe /?
or shutdown.exe /?
.
You can also perform shutdown and restart operations directly from PowerShell.
To shut down the computer, use the Stop-Computer
command
Stop-Computer
To restart the operating system, use the Restart-Computer command
Restart-Computer
To force an immediate restart of the computer, use the -Force parameter.
Restart-Computer -Force