- Как разрешить (запретить) обычному пользователю перезагрузку (выключение) Windows?
- Разрешить (запретить) пользователю перезагрузку Windows с помощью политики
- Право на удаленное выключение/перезагрузку Windows
- Скрыть от пользователя Windows кнопки выключения и перезагрузки
- Как узнать, кто перезагрузил (выключил) Windows сервер?
- Ограничение пользователей в терминальной сессии Windows Server 2012 R2
- Права доступа на терминальный сервер и к RemoteApp
- Штатного решения найти не удалось, но есть обходные пути.
- Последовательность действий
- Терминальный сервер #1 Ограничение прав пользователей
- Терминальный сервер #1 Ограничение прав пользователей
Как разрешить (запретить) обычному пользователю перезагрузку (выключение) 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 Server 2012 R2
Микрософт с большим отставанием от разработчиков реализовал на терминальном сервере публикацию отдельных приложений. Технологию назвали RemoteApp. Пока речь идет о доступе к опубликованным приложениям через web-интерфейс, все выглядит красиво, но пользователям не удобно заходить в браузер (а браузер – это значит медленно), да и сам подход непривычен, а непривычное, как правило, воспринимается большинством пользователей негативно. Микрософт решил этот вопрос раздачей юзерам на рабочий стол готовых значков, настроенных на запуск конкретного приложения. Но тут все начинают понимать, что web-интерфейс – это оболочка, а под ней все тот же старый добрый DOS , пардон, RDP. И сразу хочется понять, а что там с правами доступа. Жмем Win+R, mstsc, Enter. Оп-па-на! Мы сделали для конкретного пользователя возможность запускать только одну единственную программу, а он спокойно погуливает по серверу, как у себя дома…
Права доступа на терминальный сервер и к RemoteApp
Опубликованные приложения группируются в коллекции. Для доступа к приложению у пользователя должны быть права и на запуск этого приложения и на доступ к коллекции, в которую оно входит, иначе он программу не запустит.
Назначение прав предусмотрено через права к коллекции. При этом автоматически тот же набор прав передается в привычную группу безопасности терминального сервера Пользователи удаленного рабочего стола. Если впоследствии изменить набор прав в этой группе, то действовать будут именно они, а не те, что были заданы в правах на коллекцию. И права на коллекцию будут просто игнорироваться, пока не будут заданы именно для коллекции, т.е. через интерфейс управления коллекцией (при этом обновится список доступа в группе Пользователи удаленного рабочего стола).
Таким образом, если у определенного пользователя есть право на запуск какой-то одной опубликованной программы, то он может беспрепятственно логиниться на рабочий стол этого терминального сервера традиционным способом.
Для кого-то это не имеет никакого значения, но это в любом случае ненормально, а в большинстве организаций – неприемлемо.
Штатного решения найти не удалось, но есть обходные пути.
А. Можно в AD в свойствах учетной записи на вкладке «Среда» задать запуск нужной программы при входе. Но тогда пользователь сможет работать только с одной программой на ТС.
Б. Можно там же на вкладке «Среда» задать запуск logoff.exe , а программы раздавать через настроенные значки. Тогда при входе через mstsc сеанс такого пользователя будет сразу же автоматически завершаться.
Надо понимать, что настройка из пунктов (А) и (Б) будет касаться входа на любой терминальный сервер, а их в общем случае может быть несколько, на каждом свои программы, где-то просто нужен доступ к рабочему столу сервера.
Чувствуется, что это надо разруливать через GPO, но параметры пользователя применяются только к пользователям, а не к серверам, а нам надо, чтобы параметры, заданные для пользователя (например, напуск при входе logoff.exe) применялись к конкретным пользователям на конкретных серверах. Тут на помощь приходит волшебный параметр Computer Configuration ⇒ Policies ⇒ Administrative Templates ⇒ System ⇒ Group Policy ⇒ User Group Policy loopback processing mode.
Последовательность действий
1. Создаем в AD группу безопасности, назовем её «TS1_Restrict_Obj».
2. Добавляем в группу «TS1_Restrict_Obj» пользователей, для которых нужно сделать ограничения. (Возможно, для конкретных задач потребуются более мягкие ограничения, а не logoff.exe. Или наоборот, нужно сделать что-то хорошее, скажем, отключить на терминальном сервере пароль на хранитель экрана, чтобы юзерам не приходилось вводить пароль дважды: на своей рабочей станции и на терминале.)
3. Добавляем в группу «TS1_Restrict_Obj» терминальный сервер, на котором нужно применить наши ограничения для заданных пользователей. Если нужно применить эти правила для разных серверов и одних и тех же пользователей, то добавляем сюда же и все эти терминальные серверы.
4. В групповых политиках создаем новый GPO (например, «TS1_Restrict») и связываем его с контейнером, в котором находится наш терминальный сервер(ы). Можно сделать отдельный контейнер (OU), в который вынести этот сервер(ы).
5. В SecurityFilteringдля вновь созданного GPO«TS1_Restrict» Удаляем записи, которые там создаются по умолчанию и добавляем нашу группу «TS1_Restrict_Obj».
6. Открываем на редактирование GPO «TS1_Restrict»
Computer Configuration ⇒ Policies ⇒ Administrative Templates ⇒ System ⇒ Group Policy ⇒ User Group Policy loopback processing mode = Merge (или Replace)
User Configuration ⇒ Policies ⇒ Administrative Templates ⇒ Windows Components ⇒ Remote Desktop Services ⇒ Remote Desktop Session Host ⇒ Remote Session Environment ⇒ Program path and file name = logoff.exe
Или делаем здесь другие ограничения, в зависимости от решаемой задачи.
7. Вы, наверное, будете смеяться, но для применения этой конструкции необходимо перезагрузить сервер, к которому применяется политика. Причем, отключение политики выполняется сразу, достаточно удалить сервер из группы безопасности «TS1_Restrict_Obj», а для подключения – требуется перезагрузка.
Теперь при попытке пользователей, входящих в группу «TS1_Restrict_Obj», войти на данный терминальный сервер сразу же после входа будет происходить завершение сеанса. При этом опубликованные для этих пользователей приложения RemoteApp будут работать как через web-интерфейс, так и через файлы .RDP.
Не обязательно включать параметры пользователей и параметр User Group Policy loopback processing mode в один и тот же GPO. Просто если «замыкание» (loopback) включено для какого-то сервера, то политики пользователя будут применяться к этому серверу.
Терминальный сервер #1 Ограничение прав пользователей
Терминальный сервер #1 Ограничение прав пользователей
В одном из прошлых видео мы рассматривали процесс поднятия роли сервера терминалов.
В этом же уроке предлагаю более детально рассмотреть процесс ограничения прав пользователя на терминальном сервере. Да, по умолчанию он лишен административных прав и много чего не может, однако, все равно к этому вопросу нужно отнестись более внимательно, так как пользователь все же находится на самом главном устройстве в вашей компании.
Регистрируйся на следующий вебинар по системному администрированию!
Так что стоит детально проанализировать, что пользователю делать можно, а что нет.
По сути тут может быть две ситуации, когда терминальный сервер реализован в рамках доменной сети, и все пользователи хранятся на контроллере домена. И в ситуации, когда сеть одноранговая и учетками, под которыми будут подключаться пользователи к терминальному серверу, мы управляем непосредственно на терминальном сервере.
Как правило такая схема подходит для небольших компаний, у которых какая-то служба реализована на терминальном сервере, допустим 1С.
Все это я более подробно рассказывал и показывал в видео по настройке терминального сервера! Для тех, кто его не видел, я оставлю ссылку к данному видео. И если вы не понимаете, о чем речь, то для начала посмотрите его.
И так, когда мы попадаем на сервер под учеткой обычного терминального пользователя, мы не можем установить софт, однако, нам доступно довольно много различных возможностей:
— доступ к системным дискам
— можно запускать приложения, которые могут не относиться к работе пользователя
— запустить диспетчер серверов
— доступ к элементам панели управления
— доступ к диспетчеру задач
— доступ к командной строке
Давайте приступим к устранению этих недостатков.
Скажу сразу, что все что я буду показывать, это скорее базовые ограничения пользователей, которые нужно выполнить в первую очередь. Однако, на практике бывает множество различных дополнительных ограничивающих политик, так что буду очень рад, если вы в комментариях также поделитесь своим опытом из разряда, что запретили, зачем и как. Таким образом можно будет составить более развернутую картину, ну и записать вторую, а может быть и третью часть данного видео.
Думаю, что нам это вполне по силам 😉 Так как тема действительно интересная и меня уже не один раз расспрашивали по поводу ограничивающих политик.
1) Доступ к жестким дискам сервера
Запретить доступ к данным системных дисков можно через групповую политику, но, если мы попытаемся её изменить через Выполнить \ gpedit.msc то мы изменим групповую политику для всех пользователей на данном сервере, так что изменения затронут как терминальных пользователей, так и административные учетные записи.
А нам нужно ограничить в правах именно учетные записи, которые не имеют административные права на сервере. Для этого запустим редактор групповой политики через консоль (Выполнить \ mmc \ Файл \ Добавить \ Редактор объектов групповой политики \ Обзор \ Пользователи \ Не администраторы \ ОК \ Готово \ ОК) При желании таким образом можно настроить политики для отдельных пользователей.
Конфигурация пользователя \ Административные шаблоны \ Компоненты Windows \ Проводник \ Запретить доступ к дискам через Мой компьютер \ Включена \ Выполнить \ cmd \ gpupdate /force
Входим на сервер под удаленным пользователем и при попытке получить доступ к диску выдается сообщение «Операция отменена из-за ограничений, действующих на этом компьютере»
Причем у вас не получится не просто получить доступ к корню диска, а к любой папке через проводник (Рабочий стол, Загрузки и т.д. Даже если на рабочем столе создать папку и зайти в неё) В общем, везде где есть путь к расположению файла.
Однако, через файловые менеджеры, например тотал коммандер получить доступ к файлам можно. Или через командную строку
Поэтому, более тонко можно настроить через редактирование NTFS прав на файлы и папки (Диск D \ ПКМ \ Свойства \ Безопасность \ Удалить Все и Пользователи \ Добавить к нужной папке пользователя в права, как правило это папка с базой данных и т.д.
Тут уже через файловый менеджер не получится открыть диск и файлы.
Если какая-то нужная папка, то можно разместить ярлык на рабочем столе, где будет фактический путь и поместить в папку для всех пользователей (C:\Users\Public\Desktop \ Разрешить отображение скрытых файлов и папок \ Копировать туда ярлык с папкой и у всех удаленных пользователей появится на рабочем столе эта папка)
Так же от сюда можно убрать различные приложения, которые могут мешать пользователю и засорять его рабочий стол.
2) Запрет запуска приложений (Административные шаблоны \ Система \ Не запускать указанные приложения Windows \ TOTALCMD.EXE)
3) Запретить элементы панели управления (Административные шаблоны \ Панель управления \ Запретить доступ к панели управления и параметрам компьютера)
4) Запретить диспетчер серверов (Административные шаблоны \ Система \ Не запускать указанные приложения Windows \ ServerManager.exe)
5) Запретить диспетчер задач (Административные шаблоны \ Система \ Варианты действий после нажатия CTRL+ALT+DEL \ Удалить диспетчер задач \ Включено)
6) Запрет командной строки (Административные шаблоны \ Система \ Запретить использование командной строки)
Удобная штука, чтобы убрать какие-то ограничения, можно не искать где вы их прописали, а перейти во все параметры, сортировка по состоянию и быстро узнать какие параметры включены.
Пишите в комментариях или мне в личку свои заметки по различным ограничениям, которые внедряете на практике. Как будет достаточно интересных дополнений, выпущу вторую часть 😉