带有Interactive Process的Microsoft Release Manager模板

时间:2014-11-26 15:51:41

标签: .net windows-services interactive release-management ms-release-management

我们目前正在使用Release Management 2013(Update 2)来执行我们的部署。

我们遇到了一个问题,其中一个步骤要求在目标计算机上执行第三方GUI应用程序以执行配置。我们已经能够自动化UI,但是它无法从发布管理运行,因为它需要是交互式的,当从作为我们的RMSERVICE域用户运行的Microsoft Deployment Agent服务启动时,这是不可能的。

启动GUI应用程序是通过我们编写的自定义.NET控制台应用程序间接执行的:

发布管理 - > [控制台应用程序] - > [UI应用]

控制台应用程序使用典型的Process.Start()启动UI应用程序,但是我们遇到错误:

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 但是,有问题的服务作为系统帐户运行。

然而,我仍然不明白我们想要的是否可行,如果可行,如何实现它们:

  

使用相同的域用户从服务启动GUI应用程序作为交互式进程(并在需要时自动登录)

1 个答案:

答案 0 :(得分:1)

我以前尝试过各种方法来解决这类问题,而且我从来没有找到真正有效的方法。

最重要的是,这不是为了运行交互式进程。

如果你想做一些令人费解和疯狂的事情,你可以在机器上安装一个测试代理,创建一个自动化的测试"启动您的应用程序,然后让RM启动在交互式过程中运行的自动化测试。但这就是Rube Goldberg级别的精神错乱。