具有提升权限的TFS集成构建Powershell

时间:2016-02-23 13:08:55

标签: powershell tfs

我正在设置集成测试版本,我只是想尝试启动Windows服务。

我已经使用InvokeProcess命令来运行powershell脚本,它只执行以下操作

Start-Service ServiceName

当我运行构建过程时脚本失败但是当我在TFS外部执行相同的脚本时,它可以工作。我在TFS日志中收到以下错误

Start-Service:由于以下错误,无法启动服务'ServiceName(ServiceName)':无法打开ServiceName 计算机服务'。'。

然后我尝试更改启动服务的方式,并在InvokeProcess中使用参数“Start ServiceName”的SC.exe,并在TFS中获得Access Denied错误,如下所示: -

SC启动ServiceName。 [SC] StartService:OpenService FAILED 5: 访问被拒绝。

我正在使用网络服务帐户来运行构建。

经过一段时间的搜索,我得出的结论是,我必须使用提升的权限运行InvokeProcess,但我不知道如何在TFS中执行此操作。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:2)

我们将构建代理作为自定义服务帐户运行,并在我们部署到的服务器上为该域帐户授予管理员访问权限。

答案 1 :(得分:0)

我已通过将网络服务帐户添加到管理员组来解决此问题。我可能不会使用此解决方案,因为将管理权限分配给网络服务帐户似乎是错误的,但我不知道如何在不将此帐户添加到管理员组的情况下将服务启动/停止权限分配给网络服务。

简而言之,我同意必须使用自定义服务帐户以适当的权限运行构建的答案。