Управление правами на перезагрузку и выключение компьютеров или серверов в Windows позволяет повысить безопасность и ограничить действия пользователей. По умолчанию в десктопных версиях Windows 10/11 пользователи могут перезагружать систему, тогда как в Windows Server (2016/2019/2022) это право доступно только администраторам. В этой статье описаны способы разрешения или запрета перезагрузки/выключения через групповые политики (GPO), реестр, PowerShell и утилиты, а также методы скрытия соответствующих кнопок в меню Пуск и отслеживания событий перезагрузки.
Разрешение или запрет перезагрузки через групповые политики
Права на перезагрузку и выключение системы настраиваются через политику Завершение работы системы (Shut down the system) в разделе:
Конфигурация компьютера → Политики → Конфигурация Windows → Параметры безопасности → Назначение прав пользователя
(Computer Configuration → Policies → Windows Settings → Security Settings → User Rights Assignment).
Эта политика определяет, какие пользователи или группы, выполнившие локальный вход, могут выключать или перезагружать систему.
Права по умолчанию
– Windows 10/11 (десктопные версии):
Право на выключение/перезагрузку имеют группы:
– Администраторы
– Пользователи
– Операторы архива
– Windows Server 2016/2019/2022:
Право имеют:
– Администраторы
– Операторы архива (Backup Operators)
– Контроллеры домена Active Directory:
Право делегировано:
– Администраторы
– Операторы архива
– Операторы сервера (Server Operators)
– Операторы печати (Print Operators)
Если у пользователя нет прав, команда перезагрузки:
shutdown -r -t 0
выдаст ошибку:
Access is denied (5).
Настройка прав через локальную политику
1. Откройте редактор локальных политик (gpedit.msc).
2. Перейдите в:
Конфигурация компьютера → Конфигурация Windows → Параметры безопасности → Локальные политики → Назначение прав пользователя
3. Найдите политику Завершение работы системы (Shut down the system).
4. Для разрешения перезагрузки:
– Добавьте учетную запись пользователя или группу (например, softcomputers\avivanov).
5. Для запрета перезагрузки:
– Удалите группу Пользователи (Users) или конкретного пользователя (например, для киосков или диспетчерских пультов).
6. Примените изменения и обновите политику:
gpupdate /force
Настройка прав через доменную GPO
Для управления правами на компьютерах в домене Active Directory:
1. Создайте группу, например grpAllowRestartComputers:
– Используйте консоль Active Directory — пользователи и компьютеры (dsa.msc) или PowerShell:
New-ADGroup -Name "grpAllowRestartComputers" -GroupScope Global -Path "OU=Groups,DC=example,DC=com"
– Добавьте пользователей в группу:
Add-ADGroupMember -Identity "grpAllowRestartComputers" -Members "avivanov"
2. Откройте редактор GPO (gpmc.msc).
3. Создайте новую политику (например, gpoAllowReboot) и свяжите ее с нужной OU:
– Щелкните правой кнопкой мыши по OU → Create a GPO in this domain and Link it here.
4. Отредактируйте политику:
– Перейдите в:
Конфигурация компьютера → Политики → Конфигурация Windows → Параметры безопасности → Назначение прав пользователя
– Откройте Завершение работы системы (Shut down the system).
– Добавьте группу grpAllowRestartComputers и Администраторы.
5. Примените политику на клиентах:
gpupdate /force
6. Проверьте результирующую политику через rsop.msc или:
gpresult /r
Пользователи из группы grpAllowRestartComputers получат доступ к кнопкам выключения и перезагрузки в меню Пуск.
Использование утилиты ntrights
Для управления правами без GPO используйте утилиту ntrights (из Windows Server 2003 Resource Kit):
– Разрешить перезагрузку:
ntrights +r SeShutdownPrivilege -u softcomputers\avivanov
– Запретить перезагрузку:
ntrights -r SeShutdownPrivilege -u softcomputers\avivanov
Разрешение удаленной перезагрузки
Для разрешения перезагрузки сервера удаленно без прав администратора настройте политику Принудительное удаленное завершение работы (Force shutdown from a remote system) в том же разделе Назначение прав пользователя:
1. Откройте gpedit.msc или gpmc.msc.
2. Перейдите в:
Конфигурация компьютера → Политики → Конфигурация Windows → Параметры безопасности → Назначение прав пользователя
3. Откройте Принудительное удаленное завершение работы.
4. Добавьте учетную запись пользователя или группу (например, softcomputers\avivanov).
5. Примените политику:
gpupdate /force
Или используйте ntrights:
ntrights +r SeRemoteShutdownPrivilege -u softcomputers\avivanov
Теперь пользователь сможет перезагружать сервер удаленно:
– Через команду:
shutdown -m \\msk-repo01 -r -f -t 0
– Или через PowerShell:
Restart-Computer -ComputerName msk-repo01 -Force
Для использования WinRM (Windows Remote Management):
Restart-Computer -ComputerName msk-repo01 -Protocol WSMan
Если возникает ошибка Access denied, проверьте права на подключение к WMI или WinRM.
Скрытие кнопок выключения и перезагрузки
Чтобы скрыть кнопки Завершение работы, Перезагрузка, Сон и Гибернация в меню Пуск:
1. Откройте gpedit.msc или gpmc.msc.
2. Перейдите в:
Конфигурация компьютера → Политики → Административные шаблоны → Меню «Пуск» и панель задач
(Computer Configuration → Administrative Templates → Start Menu and Taskbar)
3. Включите политику Удалить команды Завершение работы, Перезагрузка, Сон, Гибернация и запретить доступ к ним (Remove and Prevent Access to the Shut Down, Restart, Sleep, and Hibernate commands).
4. Примените политику:
gpupdate /force
После этого пользователи смогут только выполнить выход из системы (logoff), а кнопки выключения и перезагрузки исчезнут.
Скрытие через реестр
Для выборочного скрытия кнопок используйте реестр:
1. Откройте редактор реестра (regedit.exe).
2. Перейдите в ветку:
HKLM\SOFTWARE\Microsoft\PolicyManager\default\Start
3. Измените или создайте параметры DWORD со значением 1:
– Скрыть Завершение работы:
reg add "HKLM\SOFTWARE\Microsoft\PolicyManager\default\Start\HideShutDown" /v value /t REG_DWORD /d 1 /f
– Скрыть Перезагрузка:
reg add "HKLM\SOFTWARE\Microsoft\PolicyManager\default\Start\HideRestart" /v value /t REG_DWORD /d 1 /f
– Скрыть Гибернация:
reg add "HKLM\SOFTWARE\Microsoft\PolicyManager\default\Start\HideHibernate" /v value /t REG_DWORD /d 1 /f
– Скрыть Сон:
reg add "HKLM\SOFTWARE\Microsoft\PolicyManager\default\Start\HideSleep" /v value /t REG_DWORD /d 1 /f
– Скрыть весь раздел Завершение работы или выход:
reg add "HKLM\SOFTWARE\Microsoft\PolicyManager\default\Start\HidePowerButton" /v value /t REG_DWORD /d 1 /f
4. Если параметры не работают, проверьте ветку:
HKLM\SOFTWARE\Microsoft\PolicyManager\current\device\Start
Или используйте PowerShell:
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\PolicyManager\default\Start\HideShutDown" -Name value -Value 1
Устранение ошибок в Windows Server
В Windows Server 2019/2022 пользователи с правами на перезагрузку могут столкнуться с ошибкой:
You don’t have permission to shutdown or restart this computer.
Решение:
1. Откройте gpedit.msc или gpmc.msc.
2. Перейдите в:
Конфигурация компьютера → Политики → Административные шаблоны → Система
3. Включите политику Контроль учетных записей: запуск всех администраторов в режиме одобрения администратором (User Account Control: Run all administrators in Admin Approval Mode).
4. Примените политику:
gpupdate /force
Отслеживание событий перезагрузки/выключения
Чтобы определить, кто инициировал перезагрузку или выключение сервера:
1. Откройте Просмотр событий (eventvwr.msc).
2. Перейдите в:
Журналы Windows → Система (Windows Logs → System).
3. Отфильтруйте события по Event ID 1074.
4. В описании события указаны:
– Время перезагрузки/выключения.
– Учетная запись пользователя.
– Процесс, инициировавший действие.
– Причина и код причины.
Пример события перезагрузки:
Log Name: System
Source: User32
EventID: 1074
The process softcomputers.exe (192.168.13.153) has initiated the restart of computer SRV-RDS1 on behalf of user Softcomputers\username for the following reason: No title for this reason could be found
Reason Code: 0x800000ff
Shutdown Type: restart
Пример события выключения:
The process C:\Program Files\VMware\VMware Tools\vmtoolsd.exe (SRV-RDS1) has initiated the shutdown of computer SRV-RDS1 on behalf of user NT AUTHORITY\SYSTEM for the following reason: Legacy API shutdown
Reason Code: 0x80070000
Shutdown Type: shutdown
PowerShell для анализа событий
Получите список последних 10 событий перезагрузки/выключения:
Get-EventLog -LogName System | Where-Object {$_.EventId -eq 1074} | Select-Object -First 10 | ForEach-Object {
$rv = New-Object PSObject | Select-Object Date, User, Action, Process, Reason, ReasonCode
if ($_.ReplacementStrings[4]) {
$rv.Date = $_.TimeGenerated
$rv.User = $_.ReplacementStrings[6] $rv.Process = $_.ReplacementStrings[0] $rv.Action = $_.ReplacementStrings[4] $rv.Reason = $_.ReplacementStrings[2] $rv.ReasonCode = $_.ReplacementStrings[3] $rv
}
} | Select-Object Date, Action, Reason, User, Process | Format-Table -AutoSize
Рекомендации
– Ограничивайте права на перезагрузку/выключение для обычных пользователей на серверах и киосках.
– Используйте доменные GPO для централизованного управления в Active Directory.
– Скрывайте кнопки в меню Пуск для предотвращения случайных действий.
– Регулярно проверяйте журнал событий для мониторинга перезагрузок.
– Для Windows Server включайте UAC в режиме одобрения администратором, чтобы избежать ошибок.
– Тестируйте изменения на одном устройстве перед развертыванием через GPO.
Эти методы позволят гибко управлять правами на перезагрузку и выключение, обеспечивая безопасность и контроль в вашей инфраструктуре Windows.