Windows server право выключения

Как разрешить (запретить) обычному пользователю перезагрузку (выключение) Windows?

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

Разрешить (запретить) пользователю перезагрузку Windows с помощью политики

Права на перезагрузку или выключение Windows можно настроить с помощью политики “Завершение работы системы” (Shut down the system) в секции GPO: Конфигурация компьютера -> Конфигурация Windows -> Параметры безопасности -> Локальные политики -> Назначение прав пользователя (Computer Configuration -> Policies -> Windows Settings -> Security Settings -> User Rights Assignment).

Обратите, что по-умолчанию права на выключение/перезагрузку Windows различаются в десктопных версиях Windows 10 и в редакциях Windows Server.

Откройте редактор локальной политики gpedit.msc и перейдите в указанную выше секцию. Как вы видите, в Windows 10 права на перезагрузку (выключение) компьютера есть у членов локальных групп: Администраторы, Пользователи и Операторы архива.

В то время как в Windows Server 2012 R2 выключить или перезагрузить сервер могут только Администраторы или Backup Operators. Это правильно и логично, т.к. у пользователей в подавляющем большинстве случаев не должно быть прав на выключение сервера (даже случайное). Представьте себе RDS сервер, который периодически выключается из-за того, что пользователи случайно нажимают на кнопку выключения в стартовом меню…

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

Или наоборот, вы хотите запретить пользователям десктопной редакции Windows 10 перезагружать компьютер, который выполняет некую серверную функцию. В этом случае вам достаточно удалить группу Users из локальной политики “Завершение работы системы”.

Аналогичным образом вы можете запретить (или разрешить) выключение или перезагрузку компьютеров для всех компьютеров в определённом OU домена Active Directory с помощью доменной политики. С помощью редактора доменных GPO (gpmc.msc) создайте новую политику Prevent_Shutdown, настройте параметр политики “Shut down the system” в соответствии с вашими требованиями и назначьте политику на OU с компьютерами или серверами.

Право на удаленное выключение/перезагрузку Windows

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

Для этого необходимо добавить учетную запись нужного пользователя в политику “Принудительное удаленное завершение работы” (Force shutdown from a remote system) в той же самой секции GPO Назначение прав пользователя (User Rights Assignment).

Читайте также:  Android windows rus apk

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

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

shutdown -m \\msk-repo01 -r -f -t 0

Скрыть от пользователя Windows кнопки выключения и перезагрузки

Кроме того, есть специальная политика, позволяющей убрать у пользователя команды выключения, перезагрузки и гибернации компьютера со стартового экрана и меню Start. Политика называется «Удалить команды Завершение работы, Перезагрузка, Сон, Гибернация и запретить доступ к ним” (Remove and Prevent Access to the Shut Down, Restart, Sleep, and Hibernates commands) и находится в разделе GPO пользователя и компьютера: Конфигурация компьютера (пользователя) -> Административные шаблоны -> Меню “Пуск” и панель задач (Computer Configuration -> Administrative Templates -> Start Menu and Taskbar).

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

Как узнать, кто перезагрузил (выключил) Windows сервер?

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

Для этого нужно использовать журнал событий Event Viewer (eventvwr.msс). Перейдите в раздел Windows Logs -> System и отфильтруйте журнал по событию с Event ID 1074.

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

Log Name:System
Source: User32
EventID: 1074
The process C:\Windows\system32\winlogon.exe (MSK-RDS1) has initiated the restart of computer MSK-RDS1 on behalf of user CORP\AAIvanov for the following reason: No title for this reason could be found.
Reason Code: 0x500ff
Shutdown Type: restart
Comment:

Аналогичным образом можно получить информацию о последних событиях перезагрузки Windows. Для этого нужно искать по событию с кодом 1076.

Выключение Windows XP, Server 2003, Server 2008 без прав администратора.

Данная настройка применительна к Windows XP , Windows Server 2003 , Windows Server 2008 .

Вызываем меню Выполнить: (Win + R)

набираем gpedit.msc, далее переходим Computer ConfigurationWindows SettingsLocal PoliciesUser Rights Assignment,

нас интересует параметр «Shut down the system» (по умолчанию только группе Administrators даны права на выключение системы).

Пользователь в группе Users: (т.е. с минимальными правами в системе)

net user test_shutdown | find «Local Group Memberships»

Local Group Memberships *Users

Дадим этому пользователю ( test_ shutdown) права на выключение системы.

Используйте прокси ((заблокировано роскомнадзором, используйте vpn или proxy)) при использовании Telegram клиента:

Поблагодари автора и новые статьи

будут появляться чаще 🙂

Карта МКБ: 4432-7300-2472-8059
Yandex-деньги: 41001520055047

Большое спасибо тем кто благодарит автора за практические заметки небольшими пожертвованиями. С уважением, Олло Александр aka ekzorchik.

Выключить сервер без админских прав

shutdown [-l] [-s] [-r| [-a] [-f] [-m [\\имя_компьютера]] [-t xx] [-c «сообщение»]
-lосуществляет выход текущего пользователя из системы;
-sвыключает локальный компьютер;
-rвыполняет перезагрузку;
-fпринудительно закрывает выполняющиеся приложения;
-m [\\имя_компьютера]указывает компьютер, который требуется выключить;
-t xxустанавливает таймер завершения работы системы на xx секунд. По умолчанию это время составляет 20 секунд. Если значение xx указать равным «0» то окно закрытия выводиться не будет;
-c «сообщение»задает сообщение, выводящееся в области «Сообщение» в окне «Завершение работы системы». Можно использовать до 127 знаков. Текст сообщения должен быть заключен в прямые кавычки.
При использовании командыshutdown -iбудет отображен интерфейс программы завершения работы.

Читайте также:  Windows не известное устройство

Пример (выключаем компьютер через 40 секунд с выводом сообщения):
shutdown -s -t 40 -c «Тестовое выключение компьютера»

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

Другая команда -tsshutdnслужит для завершения работы сервера. Параметры:

TSSHUTDN [wait_time] [/SERVER:servername] [/REBOOT] [/POWERDOWN][/DELAY:logoffdelay] [/V]
wait_timeзадержка в секундах после уведомления пользователей до прекращения их сеансов (по умолчанию 60 секунд);
/SERVER:servernameзавершающий работу сервер (по умолчанию текущий);
/REBOOTперезагрузка сервера после прекращения всех сеансов;
/POWERDOWNподготовка сервера к отключению питания;
/DELAY:logoffdelayзадержка в секундах после прекращения всех подключенных сеансов (по умолчанию 30 секунд);
/Vвывод сообщений о выполняемых действиях;
Командаtsshutdnбез параметров завершит работу сервера через 1 минуту.

Пример использования (выключение компьютера, таймаут =»0″ секунд)
TSSHUTDN 0 /POWERDOWN /DELAY:0

Kazun

Заметки о PowerShell.

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

30 августа, 2016 Автор: Kazun

В данной статье, рассмотрим 3 способа:

  1. Предоставление права SeRemoteShutdownPrivilege
  2. Делегирование прав WMI
  3. Использование Windows Powershell Remoting / JEA
  • 2 клиентских ОС – Windows 10
  • 1 DC – Windows Server 2012 R2
  • Администратор: Contoso\Administrator
  • Пользователь: Contoso\User1

I. Первый способ – это предоставление права SeRemoteShutdownPrivilege

Force shutdown from a remote system — Этот параметр безопасности определяет, каким пользователям разрешено завершать работу компьютера из удаленного расположения в сети. Это позволяет членам группы администраторов или конкретных пользователей для управления компьютерами (для задач, таких как перезапуск) из удаленного расположения.

Для предоставления SeRemoteShutdownPrivilege мы можем использовать: GPO, ntrights, secedit и т.д.

Утилита ntrights входит в комплект Windows Server 2003 Resource Kit Tools . После установки комплекта , выполняем:

Другая утилита, которая поставляется по умолчанию является — secedit.

При использовании secedit, потребуется подготовить шаблон.

Для предоставления права вручную:

Предоставим право SeRemoteShutdownPrivilege через PowerShell. Для этого нам потребуется отличный модуль — UserRights PowerShell Module .

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

3. Добавим право SeRemoteShutdownPrivilege для пользователя Contoso\User1

4. Добавим правило исключения в firewall

5. Выключаем удаленную машину

Какие WinApi использует утилита shutdown:

Для удаления права:

II. Второй способ — Делегирование прав WMI

Удаленный доступ к WMI по умолчанию разрешен только группе Администраторы. Т.к. право Access this computer from network по умолчанию назначено Domain Users для клиентских ос, то мы его трогать не будем.

Читайте также:  Если отформатировать диск с windows удалить

Т.к. группе Distributed COM Users выданны нужные права, то нам будет достаточно только добавить туда пользователя или группу. Если Вам потребуется ограничить права более детально:

  1. Создайте группу и добавьте заданных пользователей
  2. Проверить, что группа имеет право — Access this computer from network user right
  3. Component Services (dcomcnfg.exe) -> Computers -> My Computer –> Properties
  4. Проверить галочку Default Properties -> Enable Distributed COM
  5. COM Security tab -> Edit Limits секция Launch and Activation Permissions и добавить группу, указав Allow для Local Launch, Remote Launch, Local Activation, Remote Activation
  6. Открываем My Computer -> переходим к разделу DCOM Config находим Windows Management and Instrumentation -> Properties –> Security. В разделе Launch and Activation Permissions назначаем Allow для Local Launch, Remote Launch, Local Activation, Remote Activation
  7. Закрываем
  8. WMI Control(WmiMgmt.msc) –> Properties –> Security –> Root\Cimv2 –> Security. Добавляем права Allow для Remote Enable

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

1. Добавим пользователя «Contoso\User1» в группу «Remote Management Users»

2. Добавим правила в FireWall

3. Добавим право SeRemoteShutdownPrivilege для пользователя Contoso\User1 ,т.к. выключение происходит удаленно то требуется данное право. Для локального выключения – SeShutdownPrivilege.

4. Добавим разрешения для namespace = root\cimv2, где расположен класс Win32_OperatingSystem

С переводом проекта PowerShell — https://github.com/PowerShell/PowerShell в разряд OpenSource, у нас появилась возможность посмотреть работу командлета Stop-Computer.

Зная тип переходим на сайте github и в поиске указываем StopComputerCommad .

Данный командлет начинается в строке 3185 — #region Stop-Computer и заканчивается 3606 — #endregion .

Командлет работает,как с DCOM, так и WSMAN.

На платформе Windows Desktop , используется по умолчанию DcomProtocol. Для поддержки других платформ(например Linux,MacOs) — WsmanProtocol.

Рассматривать работу в Job не будем. Метод Win32Shutdown определен:

[in] sint32 Flags,

[in] sint32 Reserved =

Если параметр -Force не указан, то используется флаг — 0x1, иначе 0x5.

1 (0x1)

Shutdown — Shuts down the computer to a point where it is safe to turn off the power.

5 (0x5)

Forced Shutdown (1 + 4) — Shuts down the computer to a point where it is safe to turn off the power.

Для просмотра internal properties класса ComputerWMIHelper:

III. Третий способ — Windows Powershell Remoting / JEA

Перейдем сразу к реализации, т.к. вариантов много, рассмотрим один из них.

1. Включаем PowerShell Remoting

2. Зарегистрируем endpoint с учетными данными администратора

Параметр ShowSecurityDescriptorUI вызывает окно где мы указываем права доступа, достаточно Execute(Invoke).

Для автоматизации процесса, скачайте скрипт Add-PoShEndpointAccess.

И в качестве примера, приведу использование JEA (Just Enough Administration).

Just Enough Administration (JEA) — это технология безопасности, позволяющая делегировать администрирование в отношении всего, чем можно управлять через PowerShell. JEA позволяет сделать следующее:

  • Уменьшить число администраторов на компьютерах, используя виртуальные учетные записи, которые допускают выполнение привилегированных действий от имени обычных пользователей.
  • Ограничить доступные пользователям действия, указав, какие командлеты, функции и внешние команды могут выполнять пользователи.
  • Лучше понять, что делают ваши пользователи, используя детализированные записи с «подсматриванием» для команд, выполняемых пользователем за время сеанса.
Оцените статью