Powershell, как выключить компьютер

Обновлено: 21.11.2024

Давайте рассмотрим команду остановки PowerShell для выключения наших компьютеров. Мы должны использовать простую команду Stop-Computer, чтобы выключить компьютер. Если вы хотите выключить удаленный компьютер, вы можете просто использовать ту же команду.

Оглавление:

  • Завершение работы с помощью остановки компьютера.
  • Выключите несколько компьютеров с помощью команды stop-computer.
  • Выключите компьютер с сообщением подтверждения.
  • Компьютер PowerShell Shutown с учетными данными.
  • Перезагрузите компьютер с помощью PowerShell.
  • Вывод.

Люди также ищут:

Выключите компьютер с помощью команды Stop-Computer:

  • PowerShell нечувствителен к регистру, поэтому приведенная выше команда должна работать без проблем.
  • Эта команда выключит компьютер, на котором работает терминал PowerShell.
  • Мы можем выключить удаленный компьютер, используя имя удаленного компьютера, как показано в приведенной ниже команде.

Выключите компьютер с разрешениями:

  1. Передайте переключатель -Confirm, чтобы убедиться, что PowerShell запрашивает разрешение перед завершением работы.
  2. Приведенная ниже команда заставит PowerShell запросить запрос перед началом завершения работы.

Это очень важно, поскольку случайное отключение производственного компьютера приведет к большим потерям. Поэтому настоятельно рекомендуется включить этап подтверждения перед завершением работы.

Выключение компьютера при отказе в доступе:

  1. Иногда мы получаем следующую ошибку отказа в доступе.

$s = Get-Content -Path ./Domain01.txt
$c = Get-Credential -Credential Domain01\Admin01
Stop-Computer -ComputerName $s -Force -Credential $c

Останов нескольких удаленных компьютеров/серверов с помощью PowerShell

Мы можем остановить несколько компьютеров с помощью одной и той же команды PowerShell. Для этого мы будем использовать переменную PowerShell, чтобы сохранить имена всех удаленных компьютеров и выключить их, используя то же имя переменной. Выполните следующие действия, чтобы выключить несколько компьютеров.

  • Создайте переменную с несколькими серверами, как показано на рисунке.

Перезагрузите компьютер с помощью PowerShell:

В этом бонусном разделе мы увидим, как перезагрузить компьютер вместо выключения. Команда проста, потому что нам нужно только заменить выключение перезапуском.

Замените на имя компьютера, который вы хотите перезагрузить.

Вывод:

Компьютер легко выключить с помощью команды PowerShell. Пользователь должен использовать только команду выключения вместе с ключом -computername для указания имени компьютера. В случае нескольких компьютеров, желательно нескольких удаленных компьютеров, мы можем использовать переменную PowerShell, чтобы сохранить все имена в одной переменной и передать эту переменную команде.

Мы можем заменить команду выключения на reboot-computer, чтобы перезагрузить компьютер.

Командлет Stop-Computer выключает локальный и удаленные компьютеры.

Вы можете использовать параметры команды Stop-Computer для указания уровней аутентификации и альтернативных учетных данных, а также для принудительного завершения работы.

В PowerShell 7.1 была добавлена ​​команда Stop-Computer для Linux и macOS. Параметры не влияют на эти платформы. Командлет просто вызывает собственную команду /sbin/shutdown .

Примеры

Пример 1. Выключение локального компьютера

В этом примере локальный компьютер выключается.

Пример 2. Выключение двух удаленных компьютеров и локального компьютера

В этом примере останавливаются два удаленных компьютера и локальный компьютер.

Stop-Computer использует параметр ComputerName для указания двух удаленных компьютеров и локального компьютера. Каждый компьютер выключается.

Пример 3. Выключение удаленных компьютеров в фоновом режиме

В этом примере Stop-Computer выполняется как фоновое задание на двух удаленных компьютерах.

Фоновый оператор & запускает команду Stop-Computer в качестве фонового задания. Дополнительные сведения см. в разделе about_Operators.

Stop-Computer использует параметр ComputerName для указания двух удаленных компьютеров. Оператор & background запускает команду как фоновое задание. Объекты задания хранятся в переменной $j.

Объекты задания в переменной $j отправляются по конвейеру в Receive-Job , который получает результаты задания. Объекты хранятся в переменной $results. Переменная $results отображает информацию о задании в консоли PowerShell.

Пример 4. Выключение удаленного компьютера

В этом примере удаленный компьютер выключается с использованием указанной аутентификации.

Stop-Computer использует параметр ComputerName для указания удаленного компьютера.Параметр WsmanAuthentication указывает на использование Kerberos для установления удаленного подключения.

Пример 5. Выключение компьютеров в домене

В этом примере команды принудительно отключают все компьютеры в указанном домене.

Get-Content использует параметр Path для получения файла в текущем каталоге со списком компьютеров домена. Объекты хранятся в переменной $s.

Get-Credential использует параметр Credential для указания учетных данных администратора домена. Учетные данные хранятся в переменной $c.

Командлет Stop-Computer выключает компьютеры, указанные в списке компьютеров параметра ComputerName в переменной $s. Параметр Force вызывает немедленное завершение работы. Параметр Credential отправляет учетные данные, сохраненные в переменной $c.

Параметры

Указывает компьютеры, которые необходимо остановить. По умолчанию используется локальный компьютер.

Введите имя NETBIOS, IP-адрес или полное доменное имя одного или нескольких компьютеров в списке, разделенном запятыми. Чтобы указать локальный компьютер, введите имя компьютера или localhost.

Этот параметр не зависит от удаленного взаимодействия PowerShell. Вы можете использовать параметр ComputerName, даже если ваш компьютер не настроен для запуска удаленных команд.

< td>Нет
Тип:String [ ]
Псевдонимы:CN, __SERVER , Сервер, IP-адрес
Позиция:0
Значение по умолчанию:
Принимать ввод конвейера:Истина
Допускать подстановочные знаки:Неверно

Запрашивает подтверждение перед запуском командлета.

< /tr>

Указывает учетную запись пользователя, у которой есть разрешение на выполнение этого действия. По умолчанию используется текущий пользователь.

Введите имя пользователя, например User01 или Domain01\User01, или введите объект PSCredential, сгенерированный командлетом Get-Credential. Если вы введете имя пользователя, вам будет предложено ввести пароль.

Учетные данные хранятся в объекте PSCredential, а пароль хранится в виде SecureString.

Дополнительную информацию о защите данных SecureString см. в статье Насколько безопасен SecureString?

Тип:SwitchParameter
Псевдонимы:cf
Позиция:Имя
Значение по умолчанию:False
Принимать ввод конвейера:False
Допускать подстановочные знаки:False
< /tr>
Тип:PSCredential
Позиция:1
Значение по умолчанию:Текущий пользователь
Принять ввод конвейера:False
Допускать подстановочные знаки:False

Немедленное выключение компьютера.

Тип:SwitchParameter
Позиция:Именованный
Значение по умолчанию:False
Принять ввод конвейера:False
Допускать подстановочные знаки:False

Показывает, что произойдет, если командлет запустится. Командлет не запущен.

< /tr>

Указывает механизм, используемый для аутентификации учетных данных пользователя, когда этот командлет использует протокол WSMan. Значение по умолчанию — По умолчанию.

  • Базовый
  • CredSSP
  • По умолчанию
  • Дайджест
  • Кербер
  • Договориться.

Дополнительную информацию о значениях этого параметра см. в разделе AuthenticationMechanism.

Проверка подлинности Credential Security Service Provider (CredSSP), при которой учетные данные пользователя передаются на удаленный компьютер для проверки подлинности, предназначена для команд, требующих проверки подлинности более чем на одном ресурсе, например для доступа к удаленному сетевому ресурсу. Этот механизм увеличивает риск безопасности удаленной работы. Если удаленный компьютер скомпрометирован, переданные ему учетные данные можно использовать для управления сетевым сеансом.

Этот параметр появился в PowerShell 3.0.

Тип:SwitchParameter
Псевдонимы:wi
Позиция:Имя
Значение по умолчанию:False
Принимать ввод конвейера:False
Допускать подстановочные знаки:False
Тип:String
Допустимые значения:По умолчанию, Basic, Negotiate, CredSSP, Digest, Kerberos
Позиция:Имя
Значение по умолчанию:По умолчанию
Принять ввод конвейера:False
Допустить подстановочные знаки: Неверно

Входные данные

Нет

Вы не можете передать ввод этому командлету.

Результаты

Нет

Примечания

Этот командлет использует метод Win32Shutdown класса Win32_OperatingSystem WMI.Этот метод требует, чтобы привилегия SeShutdownPrivilege была включена для учетной записи пользователя, используемой для перезагрузки компьютера.

В PowerShell 7.1 была добавлена ​​команда Stop-Computer для Linux и macOS. Для этих платформ командлет вызывает собственную команду /sbin/shutdown .

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

Как выключить отдельный компьютер с помощью PowerShell

Чтобы выключить компьютер, обратимся к команде выключения PowerShell. Открываем его в режиме администратора, нас будет интересовать командлет Stop-Computer. Если просто ввести его в оболочке на локальном компьютере, то начнется выключение.

Теперь давайте посмотрим на справку по этому командлету, для этого введите следующую команду, чтобы остановить компьютер через PowerShell:

Выключение удаленных компьютеров с помощью командлета PowerShell

Командлет Stop-Computer имеет переключатель -ComputerName, с помощью которого можно указать список систем, требующих завершения работы. У меня есть два удаленных компьютера с Windows 10, w10-cl02 и w10-cl03. Отключим их, введем команду:

Stop-Computer -ComputerName w10-cl02, w10-cl03

Если кто-то в данный момент работает на удаленных компьютерах, вы получите сообщение об ошибке.

Чтобы решить эту проблему, вы можете добавить ключ -Force, который будет выполнять принудительное завершение работы:

Stop-Computer -ComputerName w10-cl02, w10-cl03 -Force

Если вам нужно завершить работу от имени определенной учетной записи, вы можете использовать переключатель -Credential:

Stop-Computer -ComputerName w10-cl02, w10-cl03 -Credential root\sem -Force

root — это имя домена, а sem — имя пользователя.

В запросе учетных данных Windows укажите пароль.

Может возникнуть ситуация, когда вы или ваши коллеги подготовите тестовый файл со списком компьютеров, которые необходимо отключить. Стоп-Компьютер легко справится с этой задачей. Я помещаю на диск C:\файл computer.txt, а затем выполняю команды.

$s = Get-Content-Path C:\computers.txt

$c = Get-Credential root\sem

Stop-Computer -ComputerName $s -Force -Credential $c

Кроме того, вы можете отключить несколько удаленных компьютеров из домена AD. Для этого подходит следующий скрипт.

  • $room=Get-ADOrganizationalUnit -LDAPFilter '(name=*)' -SearchBase 'OU=Workstations,DC=sid-666,DC=com' -SearchScope OneLevel | Select-Object DistinguishedName | Out-GridView -PassThru -Title «Выберите OU компьютеров, чтобы выключить все компьютеры в этой OU»
  • $comp=(Get-ADComputer -SearchBase $room.distinguishedname -Filter *).Name
  • Foreach ($c в $comp)

Скрипт PowerShell с задержкой по времени для выключения компьютера

И так, как выключить удаленный компьютер с помощью PowerShell через определенное время, ведь такой сценарий вполне может быть. Чтобы со временем решить эту проблему, существует командлет Start-Sleep.

Старт-Сон - 60 секунд; Stop-Computer -ComputerName w10-cl02, w10-cl03 -Force

В результате выполнения команды работа будет завершена на двух удаленных компьютерах. Или вы можете сделать это со списком компьютеров в текстовом файле.

  • $s = Get-Content-Path C:\computers.txt
  • $c = Get-Credential root\sem
  • Старт-Сон – 60 секунд; Stop-Computer -ComputerName $s -Force -Credential $c

Примечание. Помните, что вам нужно адаптировать строку 1 в соответствии со структурой вашей организационной единицы.

Как выключить компьютер с помощью запроса WMI

Также с помощью командной строки или PowerShell вы можете выполнить команду с помощью WMI, чтобы выключить компьютер. Для этого введите команду:

(Get-WmiObject Win32_OperatingSystem -EnableAllPrivileges).Win32Shutdown(1)

В результате у вас будет правильное завершение работы в вашей системе Windows, вы также можете сделать принудительное завершение работы, для этого:

(Get-WmiObject Win32_OperatingSystem -EnableAllPrivileges).Win32Shutdown(5)

Рассмотрите возможность использования Action1 для выключения удаленных компьютеров, если:

  • Вам необходимо выключить или перезагрузить компьютер PowerShell на нескольких компьютерах одновременно.
  • У вас есть удаленные сотрудники с компьютерами, не подключенными к вашей корпоративной сети.

Action1 RMM – это облачное решение для удаленного мониторинга и управления, которое включает в себя инструменты для удаленного управления ИТ. Некоторые функции включают систему управления исправлениями, развертывание программного обеспечения, удаленный доступ к рабочему столу, инвентаризацию ИТ-активов и удаленное управление конечными точками.

Командлет PowerShell Stop-Computer

Если вы хотите использовать PowerShell для выключения компьютера, выберите командлет Stop-Computer. Командлет PowerShell Stop-Computer очень похож на встроенную в операционную систему команду выключения. Вероятным сценарием является то, что вы хотите отключить удаленный сервер.

Темы для команды PowerShell Shutdown

Простой пример Stop-Computer

Примечание 1. Эта команда выключает один именованный компьютер с именем ExchServer.

Пример Stop-Computer на нескольких серверах

$Victims = "SQLServer, ExchServer, GnomeServer"
Stop-Computer -comp $Victims -force

Примечание 2. В этом примере выключается несколько компьютеров, имена которых хранятся в переменной $Victims. Вы можете расширить эту идею, используя Get-Content для чтения имен серверов, хранящихся в текстовом файле. Кстати, я сократил параметр -computerName до -comp, в PowerShell вы можете сокращать параметры, если усеченное слово однозначно.

Stop-Computer — основы выключения

Если вы хотите использовать PowerShell для выключения компьютера, выберите командлет Stop-Computer. Однако начнем с изучения команд PowerShell, содержащих существительное «компьютер». Если вы не видите Stop-Computer среди результатов, это напомнит вам установить последнюю версию PowerShell v 2.0.

Изучаем командлет Stop-Computer

Прежде чем мы остановим наш первый компьютер с помощью команды PowerShell, стоит обратиться за помощью, чтобы мы могли проверить синтаксис и изучить параметры команды Stop-Computer.

Clear-Host
Get-Help Stop-Computer -full

Примечание 3. Я предпочитаю добавлять ключ -full, чтобы видеть примеры. С помощью help были выявлены два интересных параметра: -force и -credential. Также стоит отметить, что Stop-Computer использует WMI, поэтому возможны ограничения брандмауэра на эту команду.

Примечание 4. В случае Stop-Computer я вижу много возможностей для добавления переключателя -confirm. Правда, к такому выводу я пришел только после того, как выстрелил себе в ногу и вырубил свою локальную машину вместо сетевого сервера, на который нацелился!

Парень рекомендует: Network Performance Monitor (БЕСПЛАТНАЯ ПРОБНАЯ ВЕРСИЯ)

Монитор производительности сети SolarWinds (NPM) поможет вам узнать, что происходит в вашей сети. Эта утилита также поможет вам устранить неполадки; на панели управления будет указано, является ли основная причина неработающей связью, неисправным оборудованием или перегрузкой ресурсов.

Что мне больше всего нравится, так это то, как NPM предлагает решения сетевых проблем. Он также имеет возможность отслеживать работоспособность отдельных виртуальных машин VMware. Если вы заинтересованы в устранении неполадок и создании сетевых карт, я рекомендую вам попробовать NPM в рамках 30-дневной бесплатной пробной версии.

Альтернатива остановке: перезагрузить компьютер

Возможно, вы просто хотите перезагрузить компьютер после применения исправления; в этом случае замените «Перезапустить» на «Стоп», таким образом:

Примечание 5. Опять же, брандмауэр может помешать выполнению команды, если это так, попробуйте отключить брандмауэр, а еще лучше сделать исключение для WMI.

Проблемы со Stop-Computer

Сервер RPC недоступен

  • Сообщение об ошибке: сервер RPC недоступен. (Исключение из HRESULT: 0x800706BA)
  • Причина: брандмауэр блокирует команду WMI/RPC.
  • Решение. Отключите брандмауэры или откройте только порты RPC 135 и 445.

Примечание 5. Для этой задачи я часто использую редактор локальной политики Gpedit.msc.Затем перейдите в «Параметры Windows», «Параметры безопасности», «Брандмауэр Windows». В этом меню я щелкаю правой кнопкой мыши и создаю новое правило, ищу «Предопределенные», затем прокручиваю вниз до WMI…

Доступ запрещен

  • Сообщение об ошибке: доступ запрещен. (Исключение из HRESULT: 0x80070005 (E_ACCESSDENIED)).
  • Решение: добавьте параметр -credential, используйте формат MachineName\UserName

Парень рекомендует: набор инструментов инженера SolarWinds (БЕСПЛАТНАЯ ПРОБНАЯ ВЕРСИЯ)

Этот набор инструментов для инженеров содержит исчерпывающую консоль из 50 утилит для устранения неполадок с компьютером. Гай говорит, что это помогает мне следить за тем, что происходит в сети, и каждый инструмент помогает мне больше узнать о том, как работает базовая система.

Существует так много хороших гаджетов; это как иметь полную свободу действий в кондитерской. К счастью, утилиты отображаются логично: мониторинг, обнаружение сети, диагностика и инструменты Cisco. Попробуйте 14-дневную бесплатную пробную версию набора инструментов инженера SolarWinds сейчас!

Поиск дополнительных командлетов «Компьютер»

Давайте посмотрим, какие другие командлеты PowerShell содержат существительное «компьютер».

Get-Command -Существительное компьютер

Имя
—————
Добавить-Компьютер
Проверка-Компьютер
Удалить-Компьютер
Переименовать-Компьютер
Перезагрузить-Компьютер
/>Восстановить-Компьютер
Остановить-Компьютер

Краткий обзор командлета Windows PowerShell Stop-Computer

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

Если вам понравилась эта страница, поделитесь ею с друзьями

Дополнительные примеры PowerShell для команд завершения работы

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

Читайте также: