我有一个TFS构建定义包含PowerShell脚本构建步骤。我想在远程计算机(DEVWS45PC)上运行以下命令,该计算机应该重新启动名为StartSeleniumGridHub的服务:
winrm s winrm/config/client '@{TrustedHosts="DEVWS45PC"}'
Restart-Service -InputObject $(Get-Service -Computer DEVWS45PC -Name StartSeleniumGridHub)
这给了我这个错误:
##[error]Get-Service : Cannot find any service with service name 'StartSeleniumGridHub'.
At E:\builds_2017\killBrowsersOnAllNodesAndRestartHub.ps1:43
char:36
+ Restart-Service -InputObject $(Get-Service -Computer DEVWS45PC -Name StartSe ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (StartSeleniumGridHub:String) [Get-Service], ServiceCommandException
+ FullyQualifiedErrorId : NoServiceFoundForGivenName,Microsoft.PowerShell.Commands.GetServiceCommand
Restart-Service : Cannot validate argument on parameter 'InputObject'. The argument is null or empty. Provide an
argument that is not null or empty, and then try the command again.
At E:\builds_2017\killBrowsersOnAllNodesAndRestartHub.ps1:43
char:34
+ Restart-Service -InputObject $(Get-Service -Computer DEVWS45PC -Name StartSe ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidData: (:) [Restart-Service], ParameterBindingValidationException
+ FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.PowerShell.Commands.RestartServiceCommand
我可以在任何计算机上运行此脚本而不会出现任何问题。请注意' DEVWS45PC'在TFS构建代理计算机上真正设置为可信主机,因此不是问题。
我不知道问题是什么。也许认证问题?
答案 0 :(得分:0)
您可以使用构建服务帐户手动RDP到远程计算机DEVWS45PC
并运行powershell脚本。
很可能缺少您的构建服务帐户的权限(由于找不到该服务)。建议您将服务帐户添加到远程计算机DEVWS45PC
上的本地管理员组,然后重试。
还要确保在构建定义中使用PowerShell on Target Machines任务而不是powershell任务。