Как в PowerShell выключить компьютер
Командлет Stop-Computer
Командлет Stop-Computer выключает локальный или удалённый компьютер.
Вы можете запускать Stop-Computer с дополнительными опциями, чтобы указать уровни аутентификации и альтернативные учётные данные, а также для принудительного немедленного завершения работы.
Этот командлет использует метод Win32Shutdown класса Win32_OperatingSystem WMI.
Следующие две команды являются идентичными и выключают локальный компьютер:
Stop-Computer Stop-Computer -ComputerName localhost
Следующий пример выключит компьютер с именем Win-Server-Core, имеющим пользователя Administrator с правами, достаточными для выключения компьютера:
Stop-Computer -ComputerName Win-Server-Core -Credential Administrator
Эта команда выключает удалённые компьютеры и локальный компьютер.
Stop-Computer -ComputerName "Server01", "Server02", "localhost"
В предыдущей команде Stop-Computer использует опцию -ComputerName для указания двух удалённых компьютеров и локального компьютера. Каждый из перечисленных компьютеров будет выключен.
Следующий код выключает удалённые компьютеры в качестве фонового задания:
$j = Stop-Computer -ComputerName "Server01", "Server02" & $results = $j | Receive-Job $results
В предыдущем примере Stop-Computer использует опцию -ComputerName для указания двух удалённых компьютеров. Фоновый оператор «&» переводит команду как фоновое задание. Объекты задания хранятся в переменной «$j».
Объекты задания в переменной $j отправляются по конвейеру в Receive-Job, который получает результаты задания. Объекты хранятся в переменной $results. Переменная $results отображает информацию о задании в консоли PowerShell.
Выключение удалённого компьютера:
Stop-Computer -ComputerName "Server01" -WsmanAuthentication Kerberos
В предыдущем примере Stop-Computer использует опцию -ComputerName для указания удалённого компьютера. Опция -WsmanAuthentication указывает использование Kerberos для установки удалённого подключения.
Выключение компьютера в домене:
$s = Get-Content -Path ./Domain01.txt $c = Get-Credential -Credential Domain01\Admin01 Stop-Computer -ComputerName $s -Force -Credential $c
В предыдущем примере Get-Content использует опцию -Path для чтобы прочитать содержимое файла Domain01.txt в текущем каталоге со списком компьютеров домена. Объекты хранятся в переменной $s.
Затем Get-Credential использует опцию -Credential для указания учётных данных администратора домена. Учётные данные хранятся в переменной $c.
Наконец Stop-Computer выключает компьютеры, указанные в списке компьютеров в опции -ComputerName в переменной $s. Опция -Force вызывает немедленное отключение. Опция -Credential передаёт свои учётные данные, сохранённые в переменной $c.
Ошибка «Невозможно инициировать завершение работы системы, так как компьютер используется другими пользователями»
Запуск команды
Stop-Computer -ComputerName Win-Server-Core -Credential Administrator
может завершиться ошибкой:
Stop-Computer: Failed to stop the computer Win-Server-Core with the following error message: Невозможно инициировать завершение работы системы, так как компьютер используется другими пользователями..
Её причина в том, что пользователи выполнили вход на компьютере и используют его.
Для принудительного выключения укажите опцию -Force:
Stop-Computer -ComputerName Win-Server-Core -Credential Administrator -Force
Выключение компьютера без PowerShell
Без PowerShell вы можете выключить компьютер следующей командой:
shutdown /s
Вам будет показано предупреждение и компьютер будет выключен по истечении 30 секунд.
Чтобы немедленно выключить компьютер выполните команду:
shutdown /s /t 0
Вы можете добавить в команду опцию /f, которая означает принудительное закрытие запущенных приложений без предупреждения пользователей. Подразумевается использование параметра /f, если для параметра /t задано значение больше 0.