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

2008R2 mstsc RDP вход через системную службу

У меня есть служба Windows, которая контролирует локальный сервер RDP и гарантирует, что сеансы определенных локальных пользователей вошли в систему и активны.

Он делает это, ожидая WTSWaitSystemEvent и проверяя список сеансов RDP, когда события происходят, и генерирует файл .rdp, который затем запускается mstsc (mstsc [tmprdpfile].rdp).

Служба работает как СИСТЕМА.

Это отлично работает на Server 2003 R2 и, похоже, почти работает (:)) на 2008 R2. Файлы .rdp создаются правильно - при запуске вручную они входят в систему без запроса пароля - и mstsc запускается правильно, но сеансы никогда не подключаются. Это приводит к постоянно растущему количеству mstsc запущенные процессы.

Это возможно:

  1. Осмотрите работающий mstsc экземпляр, чтобы увидеть, что он делает? Я подозреваю, что появится запрос пароля или предупреждение об аутентификации сервера (хотя authentication level:i:0 установлено).
  2. Как-нибудь получить снимок экрана приложения с графическим интерфейсом, работающего под системной службой (я знаю, это вообще странная ситуация)?

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

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

Это означало, что я мог войти на рабочий стол этого пользователя и вручную запустить mstsc, где действительно появлялось сообщение "вы уверены".

После того, как я поставил галочку в поле «больше не спрашивать меня о подключениях к этому компьютеру», мой сервис под этой учетной записью работал правильно.

Также возможно добавить правильную запись в SYSTEM HKCU\Software\Microsoft\Terminal Server\Client\LocalDevices\ чтобы избежать создания новой учетной записи, но мне в целом кажется, что непривилегированная учетная запись лучше.