Шаблон Microsoft Release Manager с интерактивным процессом

В настоящее время мы используем Release Management 2013 (обновление 2) для выполнения нашего развертывания.

Мы столкнулись с проблемой, когда для выполнения одного из шагов требуется, чтобы на целевой машине было запущено стороннее приложение с графическим интерфейсом пользователя для выполнения настройки. У нас уже есть возможность автоматизировать пользовательский интерфейс, однако он не запускается с помощью Release Management, потому что он должен быть интерактивным, что невозможно при запуске из службы Microsoft Deployment Agent, которая работает как пользователь нашего домена RMSERVICE.

Запуск приложения с графическим интерфейсом выполняется косвенно через пользовательское консольное приложение .NET, которое мы написали:

Управление выпуском -> [консольное приложение] -> [Приложение пользовательского интерфейса]

Консольное приложение запускает UI-приложение с типичным Process.Start (), однако мы сталкиваемся с ошибкой:

System.InvalidOperationException: 
Showing a modal dialog box or form when the application is not running in UserInteractive mode is 
not a valid operation. Specify the ServiceNotification or DefaultDesktopOnly style to display a 
notification from a service application.

Прочитав множество сообщений об услугах и сеансах, я теперь понимаю проблему, такую ​​как http://www.codeproject.com/Articles/35773/Subverting-Vista-UAC-in-Both-and-bit-Archite Однако рассматриваемая служба работает как системная учетная запись.

Однако я до сих пор не понимаю, возможно ли то, что мы хотим, и если да, то как этого добиться:

Запустить приложение с графическим интерфейсом пользователя как интерактивный процесс из службы с использованием того же пользователя домена (и при необходимости автоматически войти в систему)


person Jason Morse    schedule 26.11.2014    source источник


Ответы (1)


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

Суть в том, что он не предназначен для запуска интерактивных процессов.

Если вы хотите сделать что-то невероятно запутанное и безумное, вы можете установить агент тестирования на машину, создать автоматический «тест», запускающий ваше приложение, а затем заставить RM запускать автоматический тест, который выполняется в интерактивном процессе. Но это безумие уровня Руба Голдберга.

person Daniel Mann    schedule 04.12.2014