Как выключить компьютер через командную строку в локальной сети
Перейти к содержимому

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

  • автор:

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

WOL ( Wake-on-LAN � пробуждение по локальной сети, англ).

Для включения компьютера по локальной сети необходимо, чтобы его сетевая карта поддерживала функцию Wake on Line. Если сетевая карта не встроенная, устаревшей модели с разъемом WOL, его нужно соединить с таким же на материнской плате соединителем из комплекта сетевой карты.

Включение опции пробуждения осуществляется в настройках BIOS, раздел Power — Power Up Control (Power Menagement Setup), необходимо дать разрешение (Enabled) в строке Wake On LAN or PCI modem (PME Event Wake Up ). Обычно опция включена по умолчанию.

Включить компьютер можно только из режима soft off — неполное отключение. В этот режим компьютер переходит после выключения средствами windows, кнопкой на клавиатуре или системном блоке, и находится в этом режиме до тех пор, пока системный блок (ATX) не будет отключен от сети. После полного отключения от сети (выключен УПС или сетевой фильтр, либо выдернут шнур питания) компьютер находится в режиме power off (полностью выключен), и поэтому после включения питания функция WOL не сработает. Необходимо хотя бы раз включить компьютер.
Чтобы не делать это вручную в начале рабочего дня, в BIOS можно установить функцию автовключения для автоматического включения компьютеров при включении питания, а уже в течение рабочего дня, не переходя в power off, осуществлять управление компьютерами с помощью специальных утилит.

Для включения компьютера с помощью WOL ему необходимо отправить по сети так называемый �Magic Packet� � пакет, сформированный специальным образом.

В Интернете были найдены и испробованы бесплатные утилиты для формирования и отправки таких пакетов:
Magic Packet utility
Wake-on-LAN
и др.

Magic Packet utility 1.00.005 создаcт список хостов в локальной сети (IP-адреса и mac-адреса). Позволяет включить как отдельный компьютер в произвольное время либо по расписанию, так и группу компьютеров в назначенное время. 925 кб.
Неудобства:: включая отдельный компьютер, придется руками вбивать его mac-адрес 🙁 причем ввод организован неудобно — по два символа в маленькие поля ввода без автоматического перехода курсора следующее поле и даже без перехода по стрелке вправо, приходится щелкать мышью.
Кроме того, невозможно включить компьютеры в произвольное время нажатием одной-единственной кнопки.

Wake-on-LAN 1.0.2 миниатюрнее своей товарки, всего 136 кб, не требует установки. При первом использовании программы необходимо для каждого компьютера в сели ввести имя или IP-адрес компьютера и нажать кнопку MAC для получения его физического адреса. Для включения компьютера необходимо нажать OK. При последующих запусках можно выбирать компьютер по имени из всплывающего списка.

Список адресов можно редактировать из меню Файл пунктами Добавить (Удалить), кроме того, можно делать экспорт и импорт списка.

Автор указывает, что программа умеет работать с командной строкой. К сожалению, запуск из командной строки, пример которого приведен на сайте автора, не сработал. Но зато удалось запустить программу с использованием пакетного файла. Такую возможность очень удобно использовать для включения группы компьютеров в любое время.

На практике это реализуется так. Создаете текстовый файл, в котором даете команду на запуск программы с параметрами включаемых компьютеров:
start c:\wol.exe COMP2 192.168.0.2 00ААEA2FFD15
start c:\wol.exe COMP6 192.168.0.6 0EE01877885F
start c:\wol.exe COMP7 192.168.0.7 00EF1557BEDE

Или более короткий вариант:
start c:\wol.exe COMP2 192.168.0.2 00ААEA2FFD15 COMP6 192.168.0.6 0EE01877885F COMP7 192.168.0.7 00EF1557BEDE

В данном случае программа wol.exe находится на диске с:, в случае другого расположения указываете нужный адрес (разумеется, с соблюдением правил его записи). Сохраняете этот текстовый файл, меняете ему имя и расширение, например, Включить.bat. Теперь при запуске этого файла указанные в нем компьютеры включатся. Окно программы при этом не откроется, процесс wol.exe после пуска компьютеров завершается сам.

Что же касается программы WakeUp, различные версии которой лежат на многих сайтах, то выяснилось, что WakeUp версии 1.6 не работает вообще. Сколько на кнопки не нажимай, никакого результата нет, даже если заполнить список настроек самостоятельно (перепробованы разные варианты). Кроме того, надписи на кнопках не читаются.

Выключение удаленного ПК по сети

Для того чтобы выключить удаленный ПК по сети, необходимо туда войти, для этого делаем следующее:

net use \\remote_pc_name

вводим логин и пароль

После этого можно выключать или перегружать.

Для перезагрузки/выключения компьютера с ОС Windows (2k, NT, XP) служит команда shutdown

Использование: shutdown [-i | -l | -s | -r | -a] [-f] [-m ] [-t xx] [-c «комментарий»] [-d up:xx:yy]

Ключи:

-? – вывод справки по использованию (либо без ключа)
-i – отображение графического интерфейса (при использовании этот ключ ставится впереди всех);
-l – выход из системы (несовместима с ключом –m);
-s – выключение компьютера;
-r – перезагрузка компьютера;
-a – отмена выполнения перезагрузки/выключения;
-m – применение операции к удаленному компьютеру с именем ;
-t N – таймер выполнения операции в N секунд;
-c “комментарий” – комментарий к операции (при использовании в окне будет отображен «комментарий», в командной строке обязательно заключать его в двойные кавычки, комментарий не должен быть длиннее 127 знаков);
-f – принудительное завершение работы приложений без предварительного предупреждения;
-d [u] [p]:xx:yy – код причины;
u – пользовательский код;
p – запланированное завершение;
xx – основной код причины (1-255);
yy – дополнительный код причины (1-65535).

Примеры использования:

shutdown -r -t 20 -c “Перезагружаю компьютер через 20 сек.” – перезагружает локальный компьютер с таймером на 20 секунд и выводом комментария;
shutdown -s -t 600 – выключает локальный компьютер по истечении 600 секунд (10 минут);
shutdown -s -m \\user02 -t 20 -c “Закругляйся” – выключает удаленный компьютер user02 с таймером 20 секунд и комментарием;
shutdown -a – останавливает выполнения перезагрузки/выключения на локальном компьютере.

Примечания: команду shutdown может использовать только пользователь с правами администратора, обычный пользователь может использовать только ключ -l (выход из системы). Чтобы разрешить пользователям использовать остальные возможности команды shutdown, нужно воспользоваться оснасткой «Локальная политика безопасности» (..\WINDOWS\system32\secpol.msc). Перейдите в раздел Локальные политики -> Назначение прав пользователя -> Принудительное удаленное завершение и добавьте пользователя или группу пользователей, которым вы хотите дать разрешение.

Для удаленной перезагрузки/выключения сервера служит команда tsshutdn

Использование: tsshutdn [T ] [/server:имя сервера] [/reboot] [/powerdown] [/delay: N ] [/v]

Параметры:

T – задает время (в секундах), которое должно пройти с момента уведомления всех пользователей до отключения их от сеансов (по умолчанию 60 секунд);
/server:имя сервера – задает имя сервера терминалов, который завершает работу (если имя сервера не задано, то работу завершит текущий сервер терминалов);
/reboot – перезагружает сервер терминалов после завершения всех пользовательских сеансов;
/powerdown – если компьютер поддерживает программное управление питанием от сети, то выключает питание сервера терминалов;
/delay:N – после выхода всех пользователей из сеансов задает время, которое должно пройти до остановки всех процессов и завершения работы сервера терминалов (по умолчанию 30 секунд);
/v – отображает сведения о выполненных действиях;
/? – отображает справку в командной строке.

Примеры использования:

tsshutdn 0 /powerdown /delay:0 – выключение компьютера, без задержки (таймаут — 0 сек.)

Примечания: команду tsshutdn может использовать только пользователь с правами администратора

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

WiFiGid

Всем привет! Сегодня мы посмотрим, как можно выключить компьютер через командную строку. Частенько это нужно в тех случаях, если стандартными методами через меню «Пуск» – функция по каким-то неведанным причинам не запускается. В более редких случаях нам нужна команда для добавления её в определенный скрипт, который будет запускаться на ПК. Мы рассмотрим саму функцию, а также я расскажу про несколько дополнительных параметров. Если возникнут вопросы – пишите в комментариях.

Выключение своего компьютера

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

Итак, давайте посмотрим, как можно выключить ПК через cmd (или командную строку). Для начала нам нужно вызвать саму консоль. Для этого используем быстрые горячие клавиши – одновременно зажимаем кнопки:

+ R

Далее вводим команду:

А теперь один очень важный момент – я советую запустить консоль с правами администратора, хотя саму команду, которую мы будем использовать, работает и в обычной консоли. В некоторых версиях тут можно поставить галочку. Если галочки нет, зажимаем кнопки:

Ctrl + Shift

И не отпуская их, жмем «ОК».

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

Вылезет маленькое окошко, где нужно будет подтвердить запуск проги с админ правами, нажав «Да».

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

Чтобы применить команду на клавиатуре, жмем:

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

Параметр «/s» быстро запускает функцию завершения работы. Но у самой функции есть еще много дополнительных параметров. Чтобы ознакомиться с ними поближе, просто введите название:

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

Таймер

Для команды, которую мы использовали в прошлой главе, предусмотрен дополнительный параметр с таймером, завершающий работу через определенное время. К параметру нужно также дописать количество секунд. Например, таймер на 8 минут 20 секунд:

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

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

Как вы уже могли догадаться у этой же функции есть еще один параметр – он позволяет отправлять команду по сети на любую локальную машину. В параметре также нужно указать IP адрес удаленного ПК.

Здесь же можно использовать и таймер:

shutdown /s /m \\192.168.1.15 / t 500

ВНИМАНИЕ! Данная функция сработает только в двух случаях. Первый – на втором компьютере в системе включена возможность удаленного управления. Второй – на вашем ПК должны быть права администратора для работы с этим удаленным управлением.

На этом все. Если что-то было непонятно, или у вас есть дополнение – пишите в комментариях. До новых встреч на портале WiFiGiD.RU.

Выключение и перезагрузка Windows из командной строки

date

10.01.2023

user

itpro

directory

PowerShell, Windows 10, Windows 11, Windows Server 2019, Windows Server 2022

comments

комментариев 19

В Windows доступно несколько команд, которые позволяют выключить или перезагрузить локальный или удаленный компьютер. В этой статье мы рассмотрим, как использовать команду shutdown и PowerShell командлеты Restart-Computer и Stop-Computer для выключения/перезагрузки Windows.

Использование команды shutdown в Windows

Утилита командной строки shutdown является встроенной командой Windows, которая позволяет перезагрузить, выключить компьютер, перевести его в спящий режим или завершить сеанс пользователя. В этой инструкции мы покажем основные примеры использования команды shutdown в Windows (все рассмотренные команды запускаются в окне Выполнить — Win+R ->, в командной строке cmd.exe или в консоли PowerShell).

Команда shutdown имеет следующий синтаксис:

shutdown [/i | /l | /s | /sg | /r | /g | /a | /p | /h | /e | /o] [/hybrid] [/soft] [/fw] [/f] [/m \\компьютер][/t xxx][/d [p|u]xx:yy [/c «комментарий»]]

команда shutdown синтаксис

Как вы видите, у команды довольно много опций, а также есть возможность выключить/ перезагрузить удаленный компьютере.

Выключение Windows командой Shutdown

Для выключения ОС Windows и компьютера необходимо использовать команду shutdown с ключом /s.

Перезагрузка Windows

Чтобы перезагрузить компьютер, необходимо добавить параметр /r. После выполнения этой команды Windows корректно перезагрузится.

shutdown /r - перезагрузка компьютера

Завершение сеанса пользователя

Чтобы завершить текущую сессию пользователя (logout), нужно выполнить команду:

shutdown /l завершение сенаса пользоватеоя

Эта команда аналогично выполнению команды logoff.

Перевод компьютера в режим гибернации

Для перевода компьютер в режим гибернации (в этом режиме все содержимое памяти записывается в файл hyberfil.sys на диск и компьютер переходит в спящий режим с пониженным электропотреблением), выполните команду:

Перезагрузка компьютера с сообщением пользователям

Вы можете предупредить всех пользователей Windows о предстоящем выключении / перезагрузки компьютера или сервера, отправив сообщение во все активные сессии (как правило эта возможность используется на терминальных RDS серверах, за которыми одновременно работают несколько пользователей, каждый в своей собственной RDP сессии).

shutdown /r /c “Этот сервер будет перезагружен через 60 секунд.”

Отложенное выключение / перезагрузка компьютера

Можно выключить или перезагрузить компьютер с определенной задержкой (по таймеру). С помощью опции /t можно указать интервал времени (в секундах), через который ПК/сервер будет перезагружен или выключен. Тем самым вы можете предоставить пользователям дополнительное время для того, чтобы успеть сохранить открытые файлы и корректно закрыть приложения. Эту опцию удобно использовать совместно с отправкой сообщения. В этом примере мы указываем, что Windows будет выключена через 10 минут (600 секунд) и информируем пользователей сообщением.

shutdown /s /t 600 /c «Сервер будет выключен через 10 минут. Сохраните свои документы!»

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

shutdown - Ваш сеанс будет завершен.

Такую команду удобно использовать для оповещения пользователей с сеансами на RDSH хостах в ферме Remote Desktop Services на Windows Server, когда вы хотите перезагрузить сервер для выполнения обслуживания. Можно использовать совместно с режимом обслуживания RDS (Drain Mode).

Если задержка очень длительная, например, 100 минут (6000 секунд), то вместо предупреждающего окна появляется всплывающее сообщение в нижнем правом углу экрана: «Ваш сеанс будет завершен. Работа Windows будет завершена через 100 мин».

Работа Windows будет завершена через 100 мин

Отмена выключения / перезагрузки компьютера

После запуска команды выключения или перезагрузки Windows, по умолчанию утилита shutdown ожидает 60 секунд, не выполняя никаких действия. Администратор может отменить перезагрузку или выключение устройства, если в течении этого времени успеет выполнить команду:

После отмены выключения появится всплывающее сообщение в нижнем правом углу экрана: «Выход из системы отменен. Запланировано завершение работы отменено».

shutdown /a - отмена перезагрузки Выход из системы отменен

Перезагрузить Windows немедленно

Чтобы выключить или перезагрузить компьютер немедленно, не ожидая стандартные 60 секунд, нужно указать значение 0 для параметра /t. Например, для немедленной перезагрузки компьютера:

Очень важный ключ /f. Я использую его практически всегда при выключении или перезагрузки серверов Windows. Данный атрибут обеспечивает принудительное завершение всех запущенных программ и процессов, не ожидая подтверждения от пользователя (не будем же мы ждать подтверждения закрытия программ от всех пользователей на терминальном сервере, его можно просто не дождаться).

Следующая команда выполнит перезагрузку компьютера с автоматическим запуском всех зарегистрированных приложений после перезагрузки (имеются в виду приложения, зарегистрированные в системе с использованием функции API RegisterApplicationRestart).

Ярлык для перезагрузки компьютера

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

ярлык на рабочем столе для перезагрузки компьютера

Можно распространить такой ярлык на компьютеры пользователей через GPO.

Перезагрузка Windows в определенное время

Чтобы всегда перезагружать/выключать компьютер или сервер в определенное время, вы можете добавить команду shutdown в планировщик заданий Windows taskschd.msc.

Например, следующее задание планировщика будет ежедневно перезагружать компьютер ночью в 0:00.

задание планировщика для ежедневной перезагрузки компьютера командой shutdown

$Trigger= New-ScheduledTaskTrigger -At 00:00am -Daily
$User= «NT AUTHORITY\SYSTEM»

$Action= New-ScheduledTaskAction -Execute «shutdown.exe» -Argument «–f –r –t 120»
Register-ScheduledTask -TaskName «RebootEvertyNight_PS» -Trigger $Trigger -User $User -Action $Action -RunLevel Highest –Force

Задание планировщика также можно распространить на компьютеры с помощью групповых политик.

Перезагрузка удаленных компьютеров командой shutdown

Вы можете перезагрузить удаленный компьютер по сети, для этого у вас должен быть к нему сетевой доступ, а учетная запись, из-под которой запускается команда shutdown должна входить в группу локальных администраторов на удаленном компьютере (сервере):

shutdown /r /t 120 /m \\192.168.1.100

shutdown /r //m - перезагрузка удаленного компьютера

Если все указанные условия выполняются, но при выполнении команды shutdown появляется ошибка ”Отказано в доступе (5)”, на удаленном компьютере нужно разрешить удаленный доступ к административным ресурсам (C$, ADMIN$), изменив значение параметра LocalAccountTokenFilterPolicy на 1.

reg add «HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System» /v «LocalAccountTokenFilterPolicy» /t REG_DWORD /d 1 /f

На удаленном компьютере должны быть включены правила Windows Defender Firewall, разрешающие удаленный доступ черезWMI и SMB.

Get-NetFirewallrule -name WMI-RPCSS-In-TCP,WMI-WINMGMT-In-TCP,FPS-SMB-In-TCP| Enable-NetFirewallRule

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

net use \\192.168.31.10 /u:corp\username
shutdown /s /t 60 /f /m \\192.168.31.10

Если вам необходимо удаленно перезагрузить множество компьютеров, их список можно сохранить в текстовый файл и запустить удаленную перезагрузку всех компьютеров с помощью такого PowerShell скрипта:

$sh_msg = «Ваш компьютер будет автоматически перезагружен через 10 минут. Сохраните свои файлы и закройте запущенные программы»
$sh_delay = 600 # секунд
$computers = gc C:\PS\PC-list.txt
foreach ($comp in $computers)
& ‘C:\Windows\System32\SHUTDOWN.exe’ «-m \\$comp -r -c $sh_msg -t $sh_delay»
>

Графический интерфейс команды shutdown

Для тех, кому не комфортно работать в командной строке, есть графический интерфейс для команды shutdown, чтобы его вызвать, наберите:

shutdown /i - графический интерфейс команды shutdown

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

Перезагрузка и выключение Windows с помощью PowerShell

В PowerShell есть две команды для выключения и перезагрузки компьютера: Restart-Computer и Stop-Computer. Обе команды позволяют выключить или перезагрузить локальный или удаленный компьютер по сети.

powershell команда Restart-Computer

Для перезагрузки Windows выполните:

Чтобы выключить компьютер:

По умолчанию перезагрузка начнется через 5 секунд. Можно увеличить задержку перед перезагрузкой:

Restart-Computer –delay 15

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

Например, чтобы удаленно выключить два сервера Windows:

Stop-Computer -ComputerName «Server01», «Server02»

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

$Creds = Get-Credential
Restart-Computer -ComputerName $Names -Credential $Creds

Для подключения к удаленным компьютерам используется WMI и DCOM (он должны быть включен и настроен). Если WMI не настроен, при запуске команды появится ошибка:

Restart-Computer : Failed to restart the computer wks-t1122h2 with the following error message: Access is denied. Exception from HRESULT: 0x80070005 (E_ACCESSDENIED).

restart-computer ошибка при удаленной перезагрузке компьютера по сети 0x80070005

Если на удаленном компьютере настроен WinRM (Windows Remote Management), вы можете использовать для подключения WSman вместо WMI:

Restart-Computer -ComputerName wks-t1122h2 -Protocol WSMan

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

Restart-Computer : Failed to restart the computer wks-t1122h2 with the following error message: The system shutdown cannot be initiated because there are other users logged on to the computer.

Restart-Computer на удаленном компьютере есть активный пользователь

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

Для принудительной перезагрузки нужно добавить параметр -Force:

Restart-Computer -ComputerName wks-t1122h2 –Force

В журнале событий Windows с EventID 1074 (Event Viewer -> Windows Logs -> System) будет содержаться имя пользователя, который выключил/перезагрузил Windows.

EventID 1074 кто перезагрузил windows

С помощью параметра -For можно перезагрузить компьютер и дождаться, когда он будет доступен. Например, вы хотите убедиться, что удаленный компьютер успешно перезагрузится и на нем стартовала служба WinRM, позволяющая подключиться к нему через WS-Management:

Restart-Computer -ComputerName wks-t1122h2 -Wait -For WinRM

Restarting computer wks-t1122h2 Verifying that the computer has been restarted.

Удаленная перезагрузка компьютера из powershell

Можно дождаться запуска службы удаленного рабочего стола (RDP) или любой другой службы Windows:

Restart-Computer -ComputerName wks-t1122h2 -Wait -For TermService

Если нужно одновременно перезагрузить несколько хостов, можно использовать возможности параллельного запуска команд в версии PowerShell 7.x.

Например, вы можете получим список Windows Server в определенном контейнере (Organizational Unit) Active Directory с помощью командлета Get-ADComputer и перезагрузить их одновременно:

$Computers = (Get-ADComputer -Filter ‘operatingsystem -like «*Windows server*» -and enabled -eq «true»‘ -SearchBase «OU=Servers,DC=winitpro,DC=loc»).Name
$Computers | ForEach-Object -Parallel < Restart-Computer -ComputerName $_ -Force>-ThrottleLimit 3

Предыдущая статьяПредыдущая статья Следующая статья Следующая статья

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *