Некоторые картинки не загружаются из РФ и РК, используйте VPN.

понедельник, 20 ноября 2023 г.

RDP ограничение сеансов по времени

 Задача банальна - завершить сеансы пользователей через 2 минуты простоя, но это оказалось не так просто, по следующим причинам:

  1. Настройки на вкладке сеансы свойств пользователя не применяются. Я не знаю почему, они никогда не работали у меня
  2. Настройка через групповые политики работает на всех пользователях
  3. Настройка через реестр работает на всех пользователях
  4. Доменной структуры нет, поэтому разделить при помощи GPO правых и левых нельзя
Подопытный - Windows Server 2019.
Поэтому пошли по пути костылей:
  1. В реестре выставляем ограничение 120 сек 
    Set-ItemProperty "HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" -Name MaxIdleTime -Type 'DWord' -Value 120
  2. Установка работает криво. При входе сразу выходит предупреждение, сеанс отключается через 1:30-1:55 минуты, даже при 180 секундах таймаута
    Это моя ошибка, время указывается в миллисекундах, поэтому все правильно программа сделала
  3. Выставляем таймаут в 1 минуту в групповых политиках:
    Computer Configuration -> Policies -> Administrative Templates -> Windows Components -> Remote Desktop Services -> Remote Desktop Session Host -> Session Time Limits -> Set time limit for active but idle Remote Desktop Services sessions
    (Конфигурация компьютера -> Политики -> Административные шаблоны -> Компоненты Windows -> Службы удаленных рабочих столов -> Узел сеансов удаленных рабочих столов -> Ограничение сеансов по времени -> Задать ограничение времени для активных, но бездействующих сеансов служб удаленных рабочих столов)

  4. В папку C:\usr кидаем простенький батник logoff_disconnect_session.bat (в батнике исключаются активные сеансы и сеанс administrator):
  5. @ECHO OFF
    FOR /F "USEBACKQ TOKENS=2 DELIMS= " %%a IN (`quser^|findstr /b /v "^>"^|findstr /i /v " ID "^|findstr /v /i "rdp-tcp" ^| findstr /v /i "administrator"`) DO logoff %%~a
    EXIT 0
  6. Создаем в планировщике задач новую задачу, где триггером будет - выход любого пользователя. В качестве действия - запуск нашего батника


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

Комментариев нет:

Отправить комментарий