Перезагрузка rdp службы linux

Обновлено: 06.07.2024

Я пытался настроить сервер терминалов RDP на точное использование xrdp, и у меня были значительные проблемы с получением рабочей конфигурации. Когда пользователь входит в систему, он должен подключиться к существующему сеансу этих пользователей, если он существует, в противном случае начинается новый сеанс, и любой запущенный сеанс должен запускать LXDE. Какие изменения в конфигурации по умолчанию мне нужно сделать, чтобы это работало?

В моей конфигурации XRDP (за исключением того, что я использую Unity для сеансов рабочего стола и Unity2D для удаленных сеансов), вход в систему как пользователь автоматически выбирает свои старые сеансы. Каждый пользователь получает новый сеанс каждый раз, когда он подключается? Лучшее объяснение / решение, которое я нашел в Интернете, можно найти по этому адресу. C-nergy.be/blog/?p=2879 Попробуйте. Надеюсь, эта информация поможет

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

После этого все о вашем файле xrdp.ini, который находится здесь:

Чтобы открыть и отредактировать файл конфигурации xrdp, используйте:

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

Важно port=-1 отметить, что это заставляет xrdp всегда искать свободный порт для подключения. Если вы установите фиксированный порт здесь, xrdp всегда будет возвращаться и подключаться к одному и тому же сеансу. Я изменил свой, так что это выглядит так:

Вот это, я думаю , вы могли бы уйти с просто изменяя port=-1 к port=5912 . Мой xrdp всегда повторно подключается к существующему сеансу, всегда используя тот же порт.

Это решение хорошо работает для меня, но я должен отметить, что любой, кто подключается к той же машине, получит тот же сеанс, даже если кто-то вошел в систему в этом сеансе. это работает, только если уже есть существующий сеанс. Первый раз в, нет сессии , так что не удается подключиться к порту 5912. получил ту же проблему .. кажется, что по умолчанию он пытается открыть соединение, используя 5911port (вы можете заметить это, когда xrpd подключается). Поэтому я изменил с порта = -1 на порт = ask5911. Таким образом, 5911 используется по умолчанию, но вы можете изменить этот порт при вводе имени пользователя / пароля при подключении (поэтому не нужно ничего переконфигурировать в случае ошибок ..) Такое поведение строго зависит от реализации VNC-сервера. Под centos я использую tigervnc, который всегда присоединяется к существующему сеансу или создает сеанс с настройкой port = -1. Тем не менее, в Ubuntu по умолчанию установлено значение tailvncserver, которое не имеет такого поведения. Просто поиграйте с реализациями vnc, если что.

Я хотел бы улучшить существующий ответ. Ответом с наибольшим количеством голосов было редактирование xrdp.ini файла, чтобы изменить порт на фиксированное значение вместо -1 подстановочного знака, чтобы найти открытый порт.

Я попробовал это, но получил ошибку при первом подключении, поэтому в итоге переключился обратно на -1 значение. Однако быстро наступило разочарование, и проблема не возобновилась, поэтому я снова посмотрел на INI-файл.

То, что работало для меня, и на самом деле было просто кое-что, что мне было любопытно, это:

Под тем, [xrdp1] где port=-1 я заметил, имя пользователя и пароль были установлены на ASK. Если вы укажете этот параметр, port=ask вам будет предложено выбрать имя пользователя и пароль в приглашении для входа в систему.

Вместо того, чтобы устанавливать дополнительные пакеты, я обнаружил, что проще всего установить опцию ask, подключить первый сеанс (если у меня его еще нет) к порту -1 при входе в систему с именем пользователя и паролем.
После отключения сеанса для возобновления существующего сеанса всегда входите в порт по умолчанию: 5910, и вы возобновляете существующий сеанс до тех пор, пока не перезагрузите удаленный компьютер или не завершите сеанс при выходе из системы.

В статье рассмотрим, как перезагрузить (перезапустить) по SSH сервер Linux. Например, перезагрузить сервер Ubuntu, CentOS Debian и основанные на них дистрибутивы можно удаленно по SSH или подключившись к командной строке другим способом.

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

Когда требуется перезагрузка?

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

Так когда перезагружаем?

  1. Сервер завис или тормозит;
  2. Некорректно работают установленные программы;
  3. При смене операционной системы;
  4. При работе с BIOS (если есть физический доступ или его эмуляция);
  5. При использовании программ низкоуровневого копирования и восстановления данных (например, Acronis Backup).

На всякий пожарный: не перезагружайте сервер во время установки/удаления программ.

Как перезагрузить сервер через консоль?

Linux-серверы можно перезагрузить в консоли 3 простыми способами (команды shutdown, reboot и init).

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

Как перезагрузить сервер по SSH?

Все действия должны выполняться из-под пользователя root.

Подключитесь к вашему серверу под root-пользователем. Пароль суперпользователя указан в личном кабинете и письме, отправленном после активации сервера:

После ввода команды соединение с сервером будет прервано. Перезагрузка займет до 15 минут.

1. Команда shutdown -r

Это базовая команда, которая используется для перезагрузки Linux-сервера с Ubuntu.

Введите команду, и сервер будет перезагружен сразу:

Еще можно запланировать перезагрузку, введя вместо now конкретное время. Например, назначим перезагрузку сервера на 11 утра:

shutdown -r 11:00

Также можно перезагрузить сервер через небольшой промежуток времени. Например, через 5 минут:

2. Команда reboot

Также можно перезагрузить Linux-серверы с Ubuntu, Debian, CentOS или другим дистрибутивом с помощью универсальной команды reboot.

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

Введите команду, и сервер будет перезагружен сразу:

После ввода команды соединение с сервером будет прервано. Консоль оповестит: The system is going down for reboot NOW!

3. Команда init 6

Также для перезагрузки можно использовать уровни системы инициализации Init Scripts. Всего в этой системе 6 уровней: где 0 — выключение, а 6 — перезагрузка. Чтобы перейти к этому уровню, используйте команду:

Что делать, если сервер не работает после перезагрузки

Если в ходе перезагрузки что-то пошло не так, можно узнать о состоянии сервера, подключившись через IP-KVM.

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

Этичный хакинг и тестирование на проникновение, информационная безопасность

Оглавление: Всё о RDP: от настройки до взлома

Теперь рассмотрим, как из Linux подключиться к удалённому столу Windows.

Как подключиться к удалённому столу по RDP в Linux

Клиенты RDP существуют для многих платформ, даже для мобильных телефонов, конечно, имеются клиенты RDP и для Linux

Мы рассмотрим 2 клиента RDP под Linux

  • freerdp — бесплатная реализация протокола удалённого рабочего стола (Remote Desktop Protocol (RDP))
  • rdesktop — клиент с открытым исходным кодом для служб Windows удалённого рабочего стола

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

Как пользоваться freerdp

Для установки freerdp в Debian, Kali Linux, Linux Mint, Ubuntu и производные выполните команду:

Если пакеты freerdp2-x11 и freerdp2-shadow-x11 не найдены, то поищите пакет с именем freerdp.

Для установки freerdp в Arch Linux и производные выполните команду:

Как подключиться командой freerdp

Для подключения к удалённому рабочему столу с помощью xfreerdp, запустите команду вида:

  • /f — опция означает открыть удалённый стол в полноэкранном режиме
  • /u:ИМЯ-ПОЛЬЗОВАТЕЛЯ — имя учётной записи на компьютере, к которому подключаемся
  • /p:ПАРОЛЬ — пароль указанной учётной записи
  • /v:ХОСТ[:ПОРТ] — IP адрес или имя компьютера, к удалённому столу которого выполняется подключение. ПОРТ указывать необязательно

Например, я хочу открыть удалённый стол компьютера с IP адресом 192.168.0.101, на котором имеется пользователь Tester с паролем 1234, причём я хочу открыть удалённый рабочий стол в полноэкранном режиме, тогда команда следующая:

Для переключения между полноэкранным режимом и оконным, используется сочетание клавиш Ctrl+Alt+Enter.


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

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

  • нажать крестик на верхней панели
  • меню «Пуск» → Выключение → Отключиться


Для запуска в оконном режиме не используйте опцию /f:


Опции xfreerdp

У программы xfreerdp множество опций, далее выбраны самые интересные из них:

Как в freerdp создать общие папки

С удалённым рабочим столом, подключённым по RDP, можно иметь совместные папки. Рассмотрим несколько примеров.

Чтобы подключить все точки монтирования в текущей системе как совместные папки на удалённом рабочем столе используйте опцию +drives, например:

На скриншоте показан удалённый стол Windows, в котором доступны папки Linux системы, из которой сделано подключение по RDP:


Чтобы подключить только домашнюю папку текущего пользователя Linux в качестве сетевой папки к компьютеру по RDP укажите опцию +home-drive:

В этом случае домашняя папка смонтирована в систему, подключённую по протоколу удалённый рабочий стол:


С опцией /drive:ИМЯ,/ПУТЬ/В/LINUX можно подключить любую папку с любым именем. В качестве /ПУТЬ/В/LINUX должен быть указан путь в текущей системе, а ИМЯ это то имя, которое будет иметь шара в удалённой системе. Например, чтобы подключить корневую папку текущей системы (/) к удалённой с именем root:

Как вывести удалённый рабочий стол на другой монитор

Если у вас несколько мониторов, то вы можете выбрать, какой из них использовать для удалённой системы. Чтобы вывести список мониторов запустите команду:

Как установить размер окна удалённого рабочего стола

Если вместо высоты (h) установлена ширина (w), примерно как /size:50%w, то будет использоваться 50 процентов ширины.

Как пользоваться rdesktop

Для установки rdesktop в Debian, Kali Linux, Linux Mint, Ubuntu и производные выполните команду:

Для установки rdesktop в Arch Linux и производные выполните команду:

Как подключиться к удалённому рабочему столу с rdesktop

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

Как обычно, в самом начале возникнет проблема с сертификатом:


Набираем yes.

Затем возникнет ошибка:

Другой вариант, который позволяет подключиться к Windows по RDP с помощью rdesktop без настройки Network Level Authentication (NLA) — это отключить аутентификацию на уровне сети в Windows. Понятно, что это ослабит безопасность RDP, поэтому не рекомендуется. Но как «быстрый грязный фикс» это можно сделать следующим образом: Меню «Пуск» → Параметры → Система → Удалённый рабочий стол → Дополнительные параметры → Снять галочку с «Требовать использование компьютерами аутентификации на уровне сети для подключения (рекомендуется)»:


Всё равно продолжить:


После этого подключение rdesktop проходит без ошибок:


В настройках Windows вы могли увидеть ссылку «Почему следует разрешать подключения только с проверкой подлинности на уровне сети?», там написано следующее:

Если вы хотите ограничить доступ к компьютеру, разрешите доступ только с проверкой подлинности на уровне сети (NLA). При включении этого параметра пользователи должны пройти аутентификацию в сети, чтобы подключиться к компьютеру. Разрешение подключений только с компьютеров с удаленным рабочим столом с NLA является более безопасным методом проверки подлинности, который поможет защитить компьютер от злоумышленников и вредоносных программ. Чтобы узнать больше о NLA и удаленном рабочем столе, ознакомьтесь с разделом Configure Network Level Authentication for Remote Desktop Services Connections (Настройка NLA для подключения к удаленному рабочему столу).

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

Как установить сервер RDP в Linux

Сервер удалённого рабочего стола RDP может работать не только на Windows, но и на Linux. В результате к Linux можно подключиться по протоколу RDP.

В Linux протокол RDP не встроен по умолчанию как в Windows. Также в Linux отсутствуют некоторые другие протоколы, которые используются прозрачно (незаметно) для пользователей Windows, например, для сетевой аутентификации.

Тем не менее существуют сервера RDP которые успешно работают на Linux.

Как использовать freerdp-shadow для запуска RDP сервера

Для установки freerdp в Debian, Kali Linux, Linux Mint, Ubuntu и производные выполните команду:

Для установки freerdp в Arch Linux и производные выполните команду:

Исполнимые файлы в разных дистрибутивах называются чуть по-разному. В Debian, Kali Linux, Linux Mint, Ubuntu файл для запуска RDP сервера называется: freerdp-shadow-x11

А в Arch Linux файл для запуска RDP сервера называется: freerdp-shadow-cli

Но по сути это одна программа и опции у них одинаковые.

Чуть выше, говоря о rdesktop, мы уже столкнулись с Network Level Authentication (NLA), то есть проверкой подлинности на уровне сети. Для запуска RDP сервера на Linux вы должны выбрать один из двух вариантов:

  • запустить сервер вовсе без аутентификации
  • включить NLA и сделать необходимые для неё настройки

Чтобы запустить RDP сервер вовсе без аутентификации используйте опцию -auth:

Если аутентификация включена, PAM используется с подсистемой X11. Запуск от имени пользователя root не обязателен, однако, если запускать от имени пользователя, только тот же пользователь, который запустил freerdp-shadow, может аутентифицироваться. Предупреждение: если аутентификация отключена, каждый может подключиться.

Любая сетевая служба без аутентификации это беда для безопасности системы. Поэтому рассмотрим, как запустить freerdp-shadow с поддержкой NLA.

Прежде всего для NLA необходимо создать файл, в котором будет строка вида:

Имя пользователя Linux нам известно, для вычисления хеша нужно выполнить команду вида:

К примеру, имя пользователя mial, а пароль цифра 2 тогда команда следующая:

Создаём текстовый файл SAM и в него записываем строку

Теперь запускаем freerdp-shadow-x11 с двумя опциями:

  • /sam-file:ФАЙЛ — указывает на расположение NTLM SAM файла для NLA аутентификации
  • /sec:nla — принудительное включение аутентификации по протоколу NLA

Итак, моя команда следующая:

Для проверки подключаюсь из Windows:


У нас запрашивают пароль — это означает, что на сервере RDP включена аутентификация NLA.

Для того, чтобы делиться не всем экраном, а только его частью, используйте опцию /rect:x,y,w,h. Где:

  • x,y — координаты верхнего левого угла прямоугольника
  • w — ширина прямоугольника
  • h — высота прямоугольника

Если при запуске RDP сервера freerdp-shadow вы получили ошибку:

То необходимо создать файл SAM и запустить freerdp-shadow с опциями /sam-file:SAM /sec:nla как это показано выше.

Как запустить RDP сервер с xrdp

Для установки xrdp в Debian, Kali Linux, Linux Mint, Ubuntu и производные выполните команду:

Для установки xrdp в Arch Linux и производные выполните команды:

Для запуска служб xrdp-sesman и xrdp в любом дистрибутиве выполните команду:

Важные файлы xrdp:

  • /etc/xrdp/xrdp.ini — файл настроек
  • /var/log/xrdp.log — файл журналов событий

Подключаемся из Windows к xrdp. Вводим имя пользователя и пароль пользователя Linux:


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


Как из Linux подключиться к другому Linux по RDP

Каких-то особенностей при подключении с использованием программы xfreerdp нет, достаточно запустить сервер RDP, причём, если вы используете freerdp-shadow, то опции /sam-file:SAM /sec:nla также нужны:

Либо запустите xrdp-sesman и xrdp.

А затем подключение ничем не отключается от подключению к Windows:

Что касается rdesktop, то её не удалось заставить работать ни с одним из рассмотренных серверов RDP под Linux — если вы знаете, как это сделать, то пишите в комментариях.

Описание проблемы

Методы завершения сессии пользователя не терминале

Существует несколько методов позволяющие выкинуть пользователя с сервера.

  • Завершить сессию пользователя (Сделать log off) вы можете из оснастки управления RDS фермой
  • Разлогинить пользователя можно и на самом терминальном сервере из диспетчера задач
  • Выход пользователя можно выполнить из утилиты командной строки rwinsta
  • Утилита командной строки log off
  • Утилита reset session
  • * Командлет Stop-TSSession

Как выкинуть пользователя из оснастки управления RDS

И так, у меня есть мой любимый, тестовый пользователь в Active Directory, по имени Барбоскин Геннадий Викторович. Предположим, что он зашел на терминальный стол и нам по причине зависания его сессии, нужно сделать ему выход. Первый метод, это использование оснастки по управлению RDS фермой, я вам рассказывал, как ее собирать. Открываем раздел с вашей коллекцией RDS фермы. В поисковом фильтре указываем логин или фамилию нужного сотрудника. В результате получаем хост, где он работает.

выход пользователя

Щелкаем по нему правым кликом. В контекстном меню будет пункт "Выйти", это и соответствует завершению сессии (Log off). Так же есть пункт "Отключиться", если выберите его, то пользователь будет выброшен с терминального сервера, но его сессия останется на нем, данная операция равносильна тому, если пользователь просто нажал в окне с названием терминального сервера крестик.

как выкинуть пользователя-03

Второй метод разлогинить пользователя на терминальном сервере

Второй метод, похож на первый, за исключением того, что нам необходимо залогиниться на нужный сервер, открыть оснастку "Диспетчер задач" и уже из него произвести выход пользователя. Сказано сделано, о том, как вам попадать на нужного участника RDS фермы я рассказывал. Далее щелкаем правым кликом по области пуска и из контекстного меню выбираем пункт "Диспетчер задач". Кстати, вызвать "Диспетчер задач" можно и через сочетание клавиш CTRL+SHIFT+ESC.

как выкинуть пользователя-04

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

Выход пользователя в диспетчере задач

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

Использование утилиты RWINSTA

Если вы попали в ситуацию, когда графические методы не позволяют вам произвести выход пользователя из системы, а это необходимо, то вам на помощь придут утилиты из командной строки. RWINSTA - это встроенная в Windows утилита, которая позволяет сбрасывать сессии, по ID и имени сеанса. Первым делом вам нужно вычислить или ID сессии или ее имя, я вам рассказывал, о всех известных мне методах. можете ознакомиться. Я выберу утилиту qwinsta. Пишем команду:

или удаленно qwinsta /server:имя сервера | findstr barboskin.g

Использование утилиты RWINSTA

И в первом и во втором случае, пользователь будет разлогинен с данного сервера. Данную команду можно запускать удаленно, со своего рабочего места, главное, чтобы были права на log off. Данный метод меня ни раз выручал в моей практике, например случай с зависшей сессией на Windows Server 2016, где вместо логина пользователя было имя (4).

Как отключить пользователя через reset session

Как отключить пользователя через reset session

Как отключить пользователя через logoff

Как отключить пользователя через logoff

Выход пользователя через командлет Stop-TSSession

Есть такой замечательный командлет Stop-TSSession. Посмотрим на сервере ID и имя сеанса, для этого в открытой оболочке PowerShell введите:

В итоге я вижу, что у пользователя barboskin.g SessionID 3. Далее пишем

Stop-TSSession 3 или принудительно Stop-TSSession 3 -Force

Выход пользователя через командлет Stop-TSSession

Соглашаемся с тем, что будет производиться log off для данного пользователя. Проверяем, что сессия завершена. Можно вот таким простеньким скриптом из планировщика задач, разлогинивать сессии:

Import-Module PSTerminalServices
Get-TSSession -ComputerName SERVER_NAME -filter | Stop-TSSession –Force

Выход пользователя через командлет Stop-TerminalSession

Данный командлет устанавливается отдельно, совместно с пакетом Pscx. Первым делом посмотрим локально или удаленно идентификаторы сессии пользователя, для которого мы хотим сделать log off. Выполняем команду:

Get-TerminalSession

Нужный мне ID сеанса 427. Далее воспользуемся командлетом Stop-TerminalSession, чтобы выкинуть пользователя и завершить его сессию.

Админу на заметку - 17. Как выключить или перезагрузить компьютер через RDP

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

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

rdp-shutdown-001.jpg

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

rdp-shutdown-002.jpg

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

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

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

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

rdp-shutdown-003.jpg

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

rdp-shutdown-004.jpg

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

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

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

rdp-shutdown-005.jpg

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

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

Утилита PsShutdown от Sysinternals

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

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

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

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

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

rdp-shutdown-006.jpg

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

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

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

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

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

rdp-shutdown-007.jpg

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

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

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

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

rdp-shutdown-009.jpg

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

PowerShell

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

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

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

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

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

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

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

rdp-shutdown-010.jpg

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

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