У меня есть служба Windows, которая контролирует локальный сервер RDP и гарантирует, что сеансы определенных локальных пользователей вошли в систему и активны.
Он делает это, ожидая WTSWaitSystemEvent и проверяя список сеансов RDP, когда события происходят, и генерирует файл .rdp, который затем запускается mstsc (mstsc [tmprdpfile].rdp
).
Служба работает как СИСТЕМА.
Это отлично работает на Server 2003 R2 и, похоже, почти работает (:)) на 2008 R2. Файлы .rdp создаются правильно - при запуске вручную они входят в систему без запроса пароля - и mstsc
запускается правильно, но сеансы никогда не подключаются. Это приводит к постоянно растущему количеству mstsc
запущенные процессы.
Это возможно:
mstsc
экземпляр, чтобы увидеть, что он делает? Я подозреваю, что появится запрос пароля или предупреждение об аутентификации сервера (хотя authentication level:i:0
установлено).(Если у кого-то есть предложения по лучшему способу удовлетворения моих требований (несколько пользовательских сеансов должны быть зарегистрированы в и активный автоматически) Я тоже открыт для этого).
Решение, к которому я пришел, заключалось в запуске службы от имени локального пользователя.
Это означало, что я мог войти на рабочий стол этого пользователя и вручную запустить mstsc
, где действительно появлялось сообщение "вы уверены".
После того, как я поставил галочку в поле «больше не спрашивать меня о подключениях к этому компьютеру», мой сервис под этой учетной записью работал правильно.
Также возможно добавить правильную запись в SYSTEM HKCU\Software\Microsoft\Terminal Server\Client\LocalDevices\
чтобы избежать создания новой учетной записи, но мне в целом кажется, что непривилегированная учетная запись лучше.