Разрешаем пользователям подключение к серверу только через RemoteApp

  • 02.10.2021
  • 2 065
  • 0
  • 13.12.2021
  • 2
  • 2
  • 0
Разрешаем пользователям подключение к серверу только через RemoteApp

Настраивая терминальный сервер с опубликованными приложениями RemoteApp, может возникнуть желание закрыть возможность прямого подключения пользователей к удаленному рабочему столу. К сожалению, Microsoft не предусмотрели подобной возможности в настройках сервера, по этому, для реализации придется воспользоваться костылями из bat и vbs скриптов.

Использование bat и vbs скриптов

Для решения данной задачи, воспользуемся работой автозагрузки в системе Windows. Дело в том, что когда пользователь входит в систему Windows - локально или удаленно - то срабатывают все задачи автозагрузки, в том числе из директории "Автозагрузка" ("Startup"). Когда же пользователь подключается к серверу с запуском RemoteApp, система пропускает все задачи автозагрузки, запуская только указанное приложение.

Таким образом, для решения этой задачи, нужно поместить в автозагрузку скрипт, который будет проверять наличие пользователя в группе "Администраторы", и если пользователь администратором не является - отключать пользователя. Пожалуй самым простым будет использовать bat скрипт, следующего содержания:

@echo off
whoami /groups | find /i "S-1-5-32-544" >nul 2>&1
if not %errorlevel% == 0 (logoff)

После этого, сохраняем данный файл с любым удобным названием (например, DenyRDP.bat) в директорию C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp, тем самым поместив его в автозагрузку для любого пользователя. Отныне, если обычный пользователь попробует подключиться напрямую к удаленному рабочему столу, его принудительно разлогинит.

В качестве финального штриха, можно убрать окошко командной строки, которое будет кратковременно появляться при входе пользователя в систему. Для этого, переместим ранее созданный bat файл в удобное место (например на диск C:), и создадим следующий vbs скрипт:

Set objShell = CreateObject("WScript.Shell")
objShell.Run "cmd /k C:\DenyRDP.bat", 0

И сохраним его в директорию C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp заместо bat файла. Теперь, при подключении пользователя, произойдет запуск vbs скрипта, который в скрытом режиме выполнит bat файл, с проверкой пользователя на принадлежность к группе администраторов, и при её неудачном прохождении - отключить пользователя.

Была ли эта статья Вам полезна?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Напоминаем Вам, что Ваше сообщение будет опубликовано только после проверки администратором сайта. Обычно это занимает 1-2 рабочих дня.