Мне нужно, чтобы приложение всегда работало на сервере, как и служба, но для некоторая причина Я не могу создать настоящую оконную службу. Я хотел бы, чтобы это приложение работало как пользователь с собственным рабочим столом (не в Session0). Я знаю, что это худшая практика, но у меня нет другого решения. Как лучше всего этого добиться?
Вот уродливый, резкий и грязный, небезопасный (и, вероятно, нецелесообразное) решение:
Настройте серверный компьютер с AutoAdminLogon
как пользователь с возможностью интерактивного входа в систему. Назовем этого пользователя «user1».
Войдя в систему как этот пользователь, создайте файл .RDP для входа на серверный компьютер и сохраните учетные данные для учетной записи пользователя, в которой будет размещено приложение, которое вы хотите запустить в службах терминалов. Назовем этого пользователя «user2».
Сохраните файл .RDP в программной группе «user1» «Запуск».
Сохраните ярлык приложения, которое необходимо запустить, в группе программ «user2» «Автозагрузка».
Добавьте ярлык к программным группам "user1" и "user2" "Startup" для выполнения rundll32.exe user32.dll,LockWorkStation
чтобы заблокировать рабочую станцию сразу после входа в систему.
Когда сервер загружается, он входит в систему как «user1», запускает клиент служб терминалов с сохраненными учетными данными для «user2» и блокирует рабочую станцию. Клиент служб терминалов войдет в систему «user2», запустит приложение, которое вы собираетесь запускать в собственном сеансе, а затем заблокирует рабочую станцию.
От этого я чувствую себя грязным.