3 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

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

Содержание

Добрый день! Уважаемые читатели и подписчики IT блога Pyatilistnik.org. В прошлой статье мы разобрали методы перезагрузки Windows из PowerShell. Сегодня я хочу логически закончить эту статью и показать вам методы, позволяющие вам выключить компьютер без мышки используя оболочку PowerShell и старую, добрую командную строку. Я вам покажу, как вы можете создать себе ярлык или exe файл, выполняющий данную задачу.

Чтобы выключить или перезагрузить компьютер по сети используйте команду — net use

Чтобы получить необходимые права, вы должны сначала использовать команду net use на целевом компьютере.

Перед началом всей операции вам также понадобится адрес компьютера назначения. Для того, чтобы ввести команду NET USE, запустите командную строку и ведите команду ниже:

  • Net use \IP целевого ПК /user:administrator

Затем введите имя администратора и пароль — если операция прошла успешно, увидите соответствующую информацию на экране.

Выключение компьютера с помощью CTRL+ALT+DEL

Всем известная комбинация клавиш, которая на современных ОС, открывается специальное окно, откуда можно попасть в диспетчер задач, заблокировать систему, выйти из ней и выключить компьютер.

На планшетах, хоть и нет клавиатуры (хотя на некоторых всё же есть) можно зажимать некоторые клавиши, для появления этого окошка.

Еще вы можете быстро заблокировать Windows (если у вас стоит пароль или PIN-код), что делается нажатием клавиш Win+L, а потом выключить ПК.

Ну и известная комбинация Alt+F4. Думаю не надо объяснять, что это.

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

Дистанционное выключение Windows сервера

Начнем с самого сложного. На практике реализовать надежный способ выключения windows машин по сети для меня оказалось сложнее, чем linux. Методов и подходов к решению данной задачи много. Я пробовал разные варианты и остановился на одном, который мне показался самым надежным, он сработал без проблем во всех случаях во время тестирования.

Обязательным условием удаленного выключения сервера является сетевой доступ к нему по rdp. Вы можете находится в локальной сети с ним, подключиться по vpn или пробросить rdp соединение редиректом со шлюза. Не важно, главное попасть в систему по rdp.

Принцип работы удаленного отключения следующий:

  1. На компьютере или сервере создается пользователь, которому будет разрешено подключаться по rdp и завершать работу сервера.
  2. В автозагрузке этого пользователя будет скрипт для завершения работы.
  3. Пользователям, которые будут удаленно выключать сервер, дается специально подготовленный rdp клиент, который без всяких запросов будет подключаться нужным пользователем, у которого будет срабатывать скрипт на завершение работы.

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

Итак, идем на север и создаем там простой bat файл следующего содержания:

Сохраняем файл и создаем пользователя, под которым будем выключать сервер. Не забудьте добавить этому пользователю разрешение подключаться по rdp. Если вы выключаете компьютер с десктопной системой, то прав обычного пользователя достаточно. Если же вам надо погасить Windows Server, то пользователя нужно либо сделать админа, либо дать ему права на разрешение выключение сервера через локальную политику безопасности. Живет эта политика по адресу — параметры безопасности — локальные политики — назначение прав пользователей — завершение работы системы.

Вот тут я напоролся на первые неприятности. Я назвал свой скрипт shutdown.bat и очень долго не мог понять, почему он не срабатывает. При вводе команды shutdown с параметрами в консоли все отлично работало, но скрипт не запускался. Оказывается, его нельзя называть таким именем. После того, как переименовал в shut.bat, все отлично заработало. Какая-то нелепая загвоздка, но мне пришлось потратить немало времени, пока я разобрался, в чем тут дело.

Дальше заходим нашим новым пользователем, чтобы создались стандартные папки профиля и кладем скрипт автовыключения сервера ему в автозагрузку — C:Usersshut-userAppDataRoamingMicrosoftWindowsStart MenuProgramsStartup.

Теперь нам нужно настроить автоматический вход пользователя по rdp, чтобы выполнить удаленное завершение работы. Причем пользователь должен заходить на сервер без запроса имени и пароля. Штатными средствами rdp клиента windows это сделать невозможно. Даже если вы сохраните параметры, то при переносе настроек на другой компьютер нужно будет снова вводить пароль. Мне это не подходило.

Я пробовал использовать старую портированную версию rdp 5.2. Это последняя версия, где пароль в зашифрованном виде можно было хранить в файле настроек. Но при переносе этого файла на другой компьютер, все равно выскакивало окно с вводом пароля. Добиться полного автоматизма не получалось.

Но решение было найдено. Существует любопытный проект Remote Desktop Plus, который является надстройкой над rdp. С помощью этой надстройки можно передать параметры в rdp через командную строку, в том числе и имя пользователя с паролем. Мне это полностью подходит. Скачиваем файлик rdp.exe либо с сайта автора проекта, либо с моего. Я скопировал на всякий случай эту очень полезную утилиту. Кладем его в папку и создаем в этой же папке rem-shut.bat файл следующего содержания:

Читать еще:  Подключение видеорегистратора к компьютеру по локальной сети
10.10.5.14адрес удаленного сервера
shut-userпользователь rdp от имени которого будет происходить выключение
pass123пароль пользователя
640 480параметры разрешения экрана, можно не указывать

Всего этого достаточно, чтобы выполнить дистанционное завершение работы на windows сервере. Пользователю необходимо передать 2 файла:

  • rdp.exe
  • rem-shut.bat

Важно, чтобы они лежали в одной папке. При запуске батника произойдет подключение rdp пользователя и выполнится скрипт завершения работы. Задача выполнена.

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

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

  • Перезагрузитесь по сети с помощью команд shutdown.exe
  • Перезагрузите компьютер с помощью программного обеспечения для удаленного рабочего стола
  • Перезагрузите Windows с помощью Shutter

Независимо от того, что вы решили перезагрузить компьютер, это разумный вариант, чтобы регулярно обновлять параметры безопасности компьютера. Если вы перезапускаете его для предотвращения доступа, почему бы не использовать один из этих методов для автоматической блокировки вашего ПК с Windows?

  • Автор: Уваров А.С.
  • 27.11.2015

Удаленный доступ к рабочему столу по протоколу RDP широко используется для работы не только с серверами, но и с рабочими станциями, как для удаленной работы, так и в целях администрирования. Однако есть некоторые ограничения, в частности в среде клиентской ОС нельзя управлять параметрами питания, даже имея права локального администратора. В некоторых случаях это способно взывать затруднения, поэтому если вы до сих пор не знаете, как выключить или перезагрузить клиентскую версию ОС через RDP — эта статья для вас.

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

В клиентских ОС ситуация принципиально иная, даже локальный администратор не имеет возможности выключить или перезагрузить компьютер.

Несмотря на кажущуюся нелогичность, определенный смысл в таком поведении есть. Серверные ОС администрируют профессионалы (как минимум в теории), которые должны отдавать себе отчет о возможных последствиях своих действий. С другой стороны, удаленно выключив ПК так просто включить его уже не получится, в большинстве случаев потребуется физическое присутствие, поэтому решение убрать подобную функцию от простых пользователей выглядит вполне обоснованно. Администраторы, следуя этой логике, должны уметь управлять питанием и иными способами.

Но как показывает практика, умеют это не все. Ничего страшного в этом нет, как говорил мой школьный учитель: спросить — стыд минуты, не знать — стыд всей жизни.

Графическая оболочка

На самом деле «проблема» решается не просто, а очень просто. Выйдя на рабочий стол достаточно нажать Alt+F4 чтобы получить стандартный диалог завершения работы.

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

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

Командная строка

Как обычно, если графические инструменты не помогают, на помощь администратору приходит командная строка. Для того, чтобы управлять питанием компьютера с ее помощью не надо обладать особыми знаниями, достаточно запомнить одну простую команду. Нажмите Win+R или Пуск — Выполнить и введите следующие команды:

Разберем ключи команды подробнее:

  • s — выключение компьютера
  • r — перезагрузка
  • f — принудительное завершение мешающих перезагрузке процессов
  • t — время, через которое завершение работы будет выполнено, указывается в секундах через пробел. Если данный параметр не используется команда будет выполнена через 60 секунд.

Утилита PsShutdown от Sysinternals

Если штатные возможности вас по какой-либо причине не устраивают, то можно воспользоваться альтернативой — утилитой PsShutdown от Sysinternals. Разместите скачанный файл в любом удобном месте, лучше всего в одном из указанных в переменной PATH, либо добавьте туда ее расположение, это позволить запускать ее по короткому имени, без указания пути. Синтаксис утилиты похож на синтаксис стандартной, но есть некоторые отличия, так для выключения выполните:

а для перезагрузки:

Поясним используемые ключи:

  • k — выключение системы
  • r — перезагрузка
  • f — принудительное завершение процессов
  • t — время выполнения команды

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

Кроме того, данная утилита позволяет управлять питанием других ПК по сети. Если честно, то работать по сети умеет и штатная утилита shutdown, достаточно указать ключ:

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

PsShutdown данного недостатка лишена и позволяет указывать учетные данные для подключения к удаленному ПК, например:

Данная команда выполнит перезагрузку удаленного ПК computer использовав для подключения имя username и пароль password. Следует помнить, что указанный вами пользователь должен иметь права доступа к административному ресурсу ADMIN$. В среде Active Directory этим правом обладает администратор домена, а вот в одноранговой сети могут возникнуть затруднения.

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

Читать еще:  Ноутбук с SSD и HDD одновременно

Это свидетельствует о том, что данный пользователь не имеет доступа к ресурсу ADMIN$. Чтобы его включить нужно выполнить два условия: включить общий доступ к файлам и принтерам

А затем в ветвь реестра

добавить параметр типа DWORD с именем

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

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

Как видим в этот раз команда отработала успешно.

PowerShell

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

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

А для перезагрузки:

Ключ -Force в данном случае аналогичен ключу -f команды shutdown и предполагает принудительное завершение работы мешающих выключению приложений.

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

  • ComputerName — имя удаленного компьютера, допускается перечисление нескольких имен через запятую
  • Credential — имя учетной записи для аутентификации в удаленной системе

При этом работа через PowerShell более безопасна, так как пароль не вводится открытым текстом и не остается в истории команд. Для аутентификации используются стандартные механизмы ОС.

Как видим, для управления питанием в ОС 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 «комментарий»]]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Запуск команды shutdown на удаленных компьютерах

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

shutdown /r /t 120 /m \192.168.1.100

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

reg add «HKLMSOFTWAREMicrosoftWindowsCurrentVersionPoliciesSystem» /v «LocalAccountTokenFilterPolicy» /t REG_DWORD /d 1 /f

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

Читать еще:  Как запустить убунту с флешки без установки?

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

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

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

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

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

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

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

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

Обзор удаленного выключения

Чтобы это сработало, необходимо выполнить несколько шагов в первую очередь, иначе вы будете постоянно получать Доступ запрещен (5) сообщение об ошибке, и это сведет вас с ума.

Шаг 1Во-первых, чтобы удаленно завершить работу компьютера в вашей сети, вам необходимо убедиться, что у вас есть административный доступ к целевому компьютеру. Если вы работаете в домашней сети, лучший способ сделать это – убедиться, что все компьютеры находятся в одной рабочей группе и у них всех есть хотя бы одна учетная запись администратора с одинаковыми именем пользователя и паролем.

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

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

Шаг 2: Второй шаг – включить Общий доступ к файлам и принтерам и разрешить это через брандмауэр Windows. Для этого перейдите в Панель управления и нажмите Центр коммуникаций и передачи данных первый. Нажать на Изменить расширенные настройки общего доступа ссылку в левом меню и выберите переключатель для Включить обнаружение сети а также Включите общий доступ к файлам и принтерам,

Вернитесь в главное окно панели управления и нажмите на брандмауэр Windows. Нажать на Разрешить программу или функцию через брандмауэр Windows в левом меню.

Убедитесь, что вы проверяете только Дом / Работа (Частный) коробка а не публичная. Вам не нужно разрешать что-либо еще через брандмауэр. Вы можете прочитать на других сайтах, чтобы разрешить WMI, удаленное выключение, обнаружение сети и т. Д., Но я протестировал его без каких-либо из них, и он работает просто отлично.

Шаг 3Наконец, если вы пытаетесь настроить таргетинг на компьютер под управлением Windows Vista, Windows 7 или Windows 8 удаленно, вам необходимо изменить реестр. Если вы не сделаете это, это просто не сработает. Вы получите только сообщение «Доступ запрещен», несмотря ни на что.

Откройте редактор реестра, перейдите в Пуск и введите смерзаться, Теперь перейдите к следующей клавише:

HKEY_LOCAL_MACHINE – ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ – Microsoft – Windows – CurrentVersion – Политики – Система

Щелкните правой кнопкой мыши на система на левой стороне и выберите New – DWORD (32-битное) значение,

Новое значение появится в правом нижнем углу, и текст будет выделен. Измените имя на LocalAccountTokenFilterPolicy и нажмите Enter. Теперь дважды щелкните по нему и измените значение с 0 на 1,

Нажмите OK и закройте из реестра. Вам не нужно перезагружать компьютер, так как изменения должны вступить в силу немедленно. Этот раздел реестра необходим, поскольку в Windows Vista и более поздних версиях учетная запись администратора удаляется из учетных данных при удаленном подключении. Это позволит учетной записи оставаться с правами администратора.

Вы также будете читать на других сайтах, чтобы начать Удаленный реестр сервис, если это не работает, и отредактировать локальную политику безопасности, добавив Все группа в Принудительное отключение от удаленной системы настройка политики. В моем тестировании на Windows 7 и 8 не было необходимости выполнять эти задачи, и вы действительно не должны, потому что это открывает вашу систему для потенциальных хакеров.

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

Отмена выполнения команды shutdown

Если команда «shutdown» введена с задержкой ее выполнения, можно отменить это действие.

Шаг 1. Нажать сочетание Win+R, напечатать в строке «CMD» и нажать «OK».

Нажимаем сочетание Win+R, печатаем в строке CMD и нажимаем «OK»

Шаг 2. Ввести команду «shutdown -a», и нажать Enter.

Вводим команду «shutdown -a», и нажимаем Enter

Это отменит завершение работы ПК.

Отменяем завершение работы ПК

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

Видео — Перезагрузка удаленного компьютера

Ссылка на основную публикацию
Статьи c упоминанием слов:
Adblock
detector