Поиск по сайту:

Разрешить или запретить пользователям, не являющимся администраторами, перезагружать/завершать работу Windows


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

Как разрешить или запретить опцию выключения/перезагрузки в Windows через объект групповой политики?

Вы можете установить разрешения на перезапуск или завершение работы Windows с помощью параметра Завершение работы системы в разделе GPO Конфигурация компьютера -> Политики -> Настройки Windows -> Настройки безопасности -> Локальные политики -> Назначение прав пользователя. Этот параметр объекта групповой политики позволяет указать, какие локально вошедшие в систему пользователи могут завершить работу операционной системы.

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

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

В Windows Server 2022/2019/2016 только администраторы или операторы резервного копирования могут выключить или перезапустить сервер. Это разумно, поскольку в большинстве случаев пользователь, не являющийся администратором, не должен иметь прав на выключение сервера (даже случайно). Представьте себе хост фермы RDS, который часто отключается из-за того, что пользователи случайно нажимают кнопку «Завершение работы» в меню «Пуск»…

На контроллерах домена Active Directory права на завершение работы Windows делегируются:

  • Администраторы

  • Операторы резервного копирования

  • Операторы сервера

  • Операторы печати

Если у пользователя нет прав на перезапуск/завершение работы операционной системы, то при выполнении следующей команды появится ошибка:

shutdown -r -t 0
Access is denied.(5)

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

Вы можете вручную предоставить разрешения на локальное выключение компьютера с помощью устаревшего инструмента ntrights из Windows Server 2003 Resource Kit:

ntrights +r SeShutdownPrivilege -u active-directory\j.smith

Чтобы запретить пользователю выключать или перезагружать Windows:

ntrights -r SeShutdownPrivilege -u active-directory\j.smith

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

Таким же образом вы можете запретить (или разрешить) операции выключения/перезагрузки для пользователей, не являющихся администраторами, на всех компьютерах в определенной организационной единице (OU) домена Active Directory, используя объект групповой политики домена.

  1. Создайте группу пользователей grpAllowRestartComputers в AD, которой вы хотите предоставить разрешения на перезагрузку компьютеров. Создать новую группу можно с помощью оснастки ADUC (

    dsa.msc

    ) или командлет New-ADGroup PowerShell. Добавить пользователей в группу;

  2. Откройте консоль управления групповой политикой домена (

    gpmc.msc

    ). Выберите подразделение с компьютерами, к которым вы хотите применить политику, и выберите Создать объект групповой политики в этом домене и связать его здесь;

  3. Задайте имя объекта групповой политики (gpoAllowReboot) и отредактируйте его;

  4. Перейдите в «Конфигурация компьютера» -> «Политики» -> «Настройки Windows» -> «Настройки безопасности» -> «Назначение прав пользователя»;

  5. Откройте параметр Завершить работу, включите политику и добавьте целевую группу (

    grpAllowRestartComputers

    ) и встроенный

    Administrators

    группа;

  6. Обновите настройки объекта групповой политики на целевых компьютерах и проверьте полученные настройки объекта групповой политики с помощью команды

    rsop.msc

    оснастка. Пользователи в вашей группе теперь могут выключить или перезагрузить этот хост;

  7. Параметры выключения и перезапуска операционной системы появятся в меню «Пуск» пользователя.

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

Разрешить удаленное выключение/перезапуск без разрешений администратора

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

shutdown

команду без предоставления им прав локального администратора, разрешения на вход в систему через удаленный рабочий стол (RDP) или разрешений на локальный вход (если этот метод входа не разрешен)

Для этого добавьте учетную запись пользователя в параметр групповой политики Принудительное завершение работы из удаленной системы в том же разделе GPO (Назначение прав пользователя).

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

Вы также можете предоставить SeRemoteShutdownPrivilege с помощью инструмента командной строки ntrights:

ntrights +r SeRemoteShutdownPrivilege -u active-directory\j.smith

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

shutdown -m \\hamb-rds01 -r -f -t 0

Или с помощью командлета Restart-Computer PowerShell:

Restart-Computer -ComputerName hamb-rds01 -Force
VERBOSE: Performing the operation "Enable the Remote shutdown access rights and restart the computer." on target ...

Если на удаленном компьютере включена WinRM (удаленное управление Windows), для подключения можно использовать WSman вместо WMI:

Restart-Computer -ComputerName hamb-rds01 -Protocol WSMan

Если у пользователя нет разрешения на подключение к пространству имен WMI, появится ошибка:

Restart-Computer : Failed to restart the computer srv-rds1 with the following error message: The WS-Management servicecannot process the request. The WMI service returned an 'access denied' error. .

Кроме того, вы можете использовать Windows PowerShell Just Enough Administration (JEA), чтобы разрешить пользователю запускать только определенные команды на удаленном узле.

Отключить (скрыть) параметры выключения или перезагрузки из Windows?

Вы можете использовать групповую политику, чтобы скрыть параметры «Выключение», «Перезагрузка», «Сон» и «Гибернация» на экране входа и в меню «Пуск». Этот параметр объекта групповой политики называется Удалить и запретить доступ к командам выключения, перезагрузки, сна и гибернации и находится в разделе Конфигурация пользователя -> Административные шаблоны -> Меню «Пуск» и панель задач. >

После включения этой политики пользователь сможет только отключить текущий сеанс или использовать

logoff

команда. Кнопки «Выключение», «Сон» и «Перезагрузка» станут недоступны.

Вы можете использовать некоторые настройки реестра, чтобы скрыть только определенный элемент в меню «Питание/Выключение» в Windows. Например, вы хотите скрыть только пункт «Завершение работы» в меню «Пуск», но оставить «Перезагрузить».

  1. Откройте редактор реестра (

    regedit.exe

    );

  2. Перейдите в HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PolicyManager\default\Start\HideShutDown;

  3. Измените параметр Значение на 1;

  4. Это скроет только опцию «Завершение работы» в меню «Пуск» Windows.

Вы можете установить этот параметр реестра из командной строки:

REG ADD "HKLM\SOFTWARE\Microsoft\PolicyManager\default\Start\HideShutDown" /v "value" /t REG_DWORD /d 1 /f

Или используя PowerShell:

Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\PolicyManager\default\Start\HideShutDown" -Name "value" -Value 1

Кроме того, вы можете скрыть другие параметры в меню «Пуск» и на экране входа в Windows:

  • Скрыть только параметр Перезагрузка в Windows:

    REG ADD "HKLM\SOFTWARE\Microsoft\PolicyManager\default\Start\HideRestart " /v "value" /t REG_DWORD /d 1 /f
  • Скрыть параметр Спящий режим в меню «Пуск» в Windows: R

    EG 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
  • Чтобы полностью отключить кнопку Питание и удалить опцию «Завершение работы или выход» из меню WinX:

    REG ADD "HKLM\SOFTWARE\Microsoft\PolicyManager\default\Start\HidePowerButton" /v "value" /t REG_DWORD /d 1 /f

Если эти параметры не работают на вашем компьютере, проверьте аналогичные разделы реестра в разделе HKLM\SOFTWARE\Microsoft\PolicyManager\current\device\Start\.

Обратите внимание, что в Windows Server 2019/2022 после назначения пользователю разрешения на перезагрузку может появиться ошибка:

You don’t have permission to shutdown or restart this computer.

В этом случае вам необходимо включить параметр UAC «Контроль учетных записей: запускать всех администраторов в режиме одобрения администратором» в GPO:

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

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

Используйте средство просмотра событий (

eventvwr.msc

) для поиска журналов завершения работы в Windows. Перейдите в Журналы Windows -> Система и отфильтруйте текущий журнал по идентификатору события 1074.

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

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

Log Name:SystemSource: User32
EventID: 1074
The process C:\Windows\system32\shutdown.exe (BE-BAK01) has initiated the restart of computer MUN-BAK01 on behalf of user corp\jsmith for the following reason: No title for this reason could be foundReason Code: 0x800000ff
Reason Code:  0x500ff
Shutdown Type: restart
Comment:

Вы можете получить информацию о недавних событиях завершения работы Windows, используя тот же идентификатор события 1076:

The process C:\Program Files\VMware\VMware Tools\vmtoolsd.exe (MUN-BAK1) has initiated the shutdown of computer MUN-BAK1 on behalf of user NT AUTHORITY\SYSTEM for the following reason: Legacy API shutdown
Reason Code: 0x80070000
Shutdown Type: shutdown
Comment:

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

Get-EventLog -LogName System |
where {$_.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
}
} | Select-Object Date, Action, Reason, User, Process |ft

Статьи по данной тематике