- Как разрешить (запретить) обычному пользователю перезагрузку (выключение) Windows?
- Разрешить (запретить) пользователю перезагрузку Windows с помощью политики
- Право на удаленное выключение/перезагрузку Windows
- Скрыть от пользователя Windows кнопки выключения и перезагрузки
- Как узнать, кто перезагрузил (выключил) Windows сервер?
- Выключение Windows XP, Server 2003, Server 2008 без прав администратора.
- Выключить сервер без админских прав
- Kazun
- Заметки о PowerShell.
- Делегирование пользователю права на выключение удаленного компьютера
Как разрешить (запретить) обычному пользователю перезагрузку (выключение) 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).
По умолчанию выключить сервер удаленном могут только администарторы. Добавьте в политику нужную учетную запись пользователя.
В результате пользователю будет назначена привилегия 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 Configuration – Windows Settings – Local Policies – User 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будет отображен интерфейс программы завершения работы.
Пример (выключаем компьютер через 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 способа:
- Предоставление права SeRemoteShutdownPrivilege
- Делегирование прав WMI
- Использование 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 для клиентских ос, то мы его трогать не будем.
Т.к. группе Distributed COM Users выданны нужные права, то нам будет достаточно только добавить туда пользователя или группу. Если Вам потребуется ограничить права более детально:
- Создайте группу и добавьте заданных пользователей
- Проверить, что группа имеет право — Access this computer from network user right
- Component Services (dcomcnfg.exe) -> Computers -> My Computer –> Properties
- Проверить галочку Default Properties -> Enable Distributed COM
- COM Security tab -> Edit Limits секция Launch and Activation Permissions и добавить группу, указав Allow для Local Launch, Remote Launch, Local Activation, Remote Activation
- Открываем My Computer -> переходим к разделу DCOM Config находим Windows Management and Instrumentation -> Properties –> Security. В разделе Launch and Activation Permissions назначаем Allow для Local Launch, Remote Launch, Local Activation, Remote Activation
- Закрываем
- 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 позволяет сделать следующее:
- Уменьшить число администраторов на компьютерах, используя виртуальные учетные записи, которые допускают выполнение привилегированных действий от имени обычных пользователей.
- Ограничить доступные пользователям действия, указав, какие командлеты, функции и внешние команды могут выполнять пользователи.
- Лучше понять, что делают ваши пользователи, используя детализированные записи с «подсматриванием» для команд, выполняемых пользователем за время сеанса.