Для перезагрузки компьютера в Windows PowerShell нужно использовать стандартное средство командной строки или класс WMI. Хотя Windows PowerShell используется только для запуска средства, изучение изменения состояния питания компьютера в Windows PowerShell позволяет получить важную информацию о работе с внешними средствами в Windows PowerShell.

Блокировка компьютера

Блокировка компьютера напрямую при помощи доступных стандартных средств возможна только вызовом функции LockWorkstation() в user32.dll:

rundll32.exe user32.dll,LockWorkStation

Эта команда немедленно блокирует рабочую станцию. В ней используется исполняемый файл rundll32.exe, запускающий файлы DLL в операционной системе Windows (и сохраняющий их библиотеки для повторного использования) для запуска файла user32.dll, библиотеки функций управления Windows.

При блокировке рабочей станции с включенной функцией быстрого переключения пользователя в такой операционной системе как Windows XP, вместо запуска заставки текущего пользователя компьютер отображает диалог входа в систему.

Для завершения определенных сеансов на сервере терминалов используйте программу командной строки tsshutdn.exe.

Завершение текущего сеанса

Для выхода из сеанса локальной системы можно использовать различные методы. Проще всего использовать программу командной строки удаленного рабочего стола или служб терминала logoff.exe (для получения подробной информации введите logoff /? в командной строке Windows PowerShell). Для завершения текущего активного сеанса введите logoff без параметров.

Другим способом является использование средства shutdown.exe с параметром для завершения сеанса:

shutdown.exe -l

Третьим вариантом является использование службы WMI. Класс Win32_OperatingSystem использует метод Win32Shutdown. Вызов метода с флагом 0 инициирует выход из системы:

(Get-WmiObject -Class Win32_OperatingSystem -ComputerName .).Win32Shutdown(0)

Дополнительную информацию и сведения о других возможностях метода Win32Shutdown см. в разделе "Метод Win32Shutdown класса Win32_OperatingSystem" в библиотеке MSDN.

Завершение работы и перезагрузка компьютера

Завершение работы и перезагрузка компьютеров в целом представляет собой один и тот же тип задач. Средства, завершающие работу компьютера, обычно также позволяют и перезагрузить его, и наоборот. Оболочка Windows PowerShell поддерживает два простых варианта перезагрузки компьютера. Выполнить ее можно, запустив команду Tsshutdn.exe или Shutdown.exe с соответствующими аргументами. Получить подробные сведения об использовании этих команд можно, набрав tsshutdn.exe /? или shutdown.exe /?.

Выполнять операции завершения работы и перезагрузки при помощи класса Win32_OperatingSystem можно также прямо в Windows PowerShell.

Для завершения работы компьютера нужно использовать метод Win32Shutdown с флагом 1.

(Get-WmiObject -Class Win32_OperatingSystem -ComputerName .).Win32Shutdown(1)

Для перезагрузки операционной системы используйте метод Win32Shutdown с флагом 2.

(Get-WmiObject -Class Win32_OperatingSystem -ComputerName .).Win32Shutdown(2)