Назад | Перейти на главную страницу

Win Terminal Server / RDS - динамическое сопоставление принтеров после переподключения сеанса

Я пытаюсь решить эту проблему: когда пользователь отключает свой сеанс RDS (на Windows Server 2012 R2) в Office 1 и повторно подключается в Office 2, все принтеры, относящиеся к Office 1, будут сопоставлены.

Первая идея заключалась в том, чтобы использовать планировщик задач для запуска сценария PowerShell по триггеру «Повторное подключение сеанса», который просматривает переменную «clientname» и добавляет все соответствующие принтеры в это местоположение после повторного подключения.

Проблемы с этим следующие:

Итак, я либо ищу способ, как правильно решить проблему сценариев, либо, что еще лучше, есть ли известная передовая практика обработки сопоставления принтеров, когда пользователь повторно подключает сеанс терминального сервера из другого места? Не имеет особого смысла размещать газету в удаленных офисах / местах ;-)

Огромное спасибо.

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

Есть несколько вещей, из-за которых вам сложно сделать это автоматически (некоторые из них вы уже видели):

  1. ClientName - это переменная среды на уровне пользователя (она отличается для каждого пользователя на сервере RDS).
  2. Запланированная задача не будет иметь доступа к переменным среды уровня пользователя (за исключением, возможно, определенного пользователя, от имени которого она настроена).
  3. Запланированная задача, запускаемая при входе пользователя в систему, будет работать, если пользователи вошли в систему, но не будет инициирована повторным подключением (если бы пользователи входили в систему, у вас не было бы этой проблемы).
  4. Любой процесс, который будет запущен в контексте пользователя (например, если бы у вас был сценарий PowerShell, который запускался при входе в систему и периодически проверялся), получает копию среды при запуске, и он не увидит изменений в ClientName при повторном подключении, если процесс не был перезапущен. Создание нового процесса тоже не поможет, потому что дочерний процесс унаследует копию родительской среды.