Я использую сервер Jenkins на компьютере под управлением Windows 10 в качестве службы.В одном из заданий Jenkins я должен выполнить тесты, используя приложение COM.Этот же компьютер также используется разработчиками в их повседневной работе над RDP, и рассматриваемое задание Jenkins выполняется ночью, когда ни один обычный разработчик не использует его.Но если ни один пользователь не вошел в систему на компьютере или не использует RDP, сценарию в задании не удается запустить приложение COM со следующим сообщением:
Процесс сервера не может быть запущен из-за настроенного удостоверенияэто неверно.Проверьте имя пользователя и пароль.
Я обнаружил, что проблема заключается в том, что идентификация для приложения COM берется у текущего интерактивного пользователя, и если его нет, происходит сбой, см.
https://support.microsoft.com/en-my/help/305761/com-server-application-that-uses-interactive-user-identity-fails-to-lo
Кажется, я не могу решить мою проблему.Я вижу два варианта:
- Убедитесь, что пользователь вошел в систему при выполнении задания
- Узнайте, как запустить приложение COM без интерактивного пользователя
Для 1 я вижу следующие решения и почему они не работают:
- Автозапуск при запуске Windows и оставлении входа в систему :Не будет работать, так как мы используем компьютер в нашей повседневной работе через RDP, что означает, что локальный вошедший в систему пользователь будет исключен, поскольку нам разрешен только один сеанс за раз.
- Вход в систему с использованиемRDP и затем выйдите, используя скрипт
tscon.exe 0 /dest:console
, который оставит сеанс открытым .Не будет работать, так как в команде 15 человек, использующих эту машину через RDP, и люди забудут использовать эту команду, когда войдут в систему к концу дня.
Для 2, я не могу найти способ сделать это.
Можно ли в Windows запланировать автоматический вход пользователя в систему до начала работы?Могу ли я использовать второй компьютер и запланировать сеанс RDP с первым компьютером до выполнения задания?