我已使用服务帐户将部署配置到Web服务器。在目标计算机上,启用了远程PowerShell,并且该帐户已添加到“远程管理用户”组。
我发起了一次发布,发生了以下错误。如果我将服务帐户添加到Web服务器上的本地Administrators组,则会成功。我可以通过远程登录到服务帐户下的Web服务器并尝试呼叫get-service
来重现相同的错误。
System.AggregateException:
Cannot open Service Control Manager on computer '.'. This operation might require other privileges.
CategoryInfo :NotSpecified: (:) [Get-Service], InvalidOperationException
FullyQualifiedErrorId :System.InvalidOperationException,Microsoft.PowerShell.Commands.GetServiceCommand
---> System.Management.Automation.RemoteException: Cannot open Service Control Manager on computer '.'. This operation might require other privileges.
--- End of inner exception stack trace ---
at Microsoft.VisualStudio.Services.DevTestLabs.Deployment.Deployment.PowershellExecutor.Invoke(String errorContextMessage, Boolean writeResultToLog, Boolean isCancellable)
at Microsoft.VisualStudio.Services.DevTestLabs.Deployment.Deployment.RemoteDeploymentHelper.AcquireMutexOwnerShip(String serviceName, String destinationPath, Int64 deploymentHeartbeatTimeoutSec)
at Microsoft.VisualStudio.Services.DevTestLabs.Deployment.Deployment.DeploymentClient.<RunAsync>d__14.MoveNext()
是否有人知道服务帐户所需的最低权限?我想避免将该帐户添加到管理员组。
答案 0 :(得分:2)
一些背景资料:
它不是仅使用PSRemoting对目标服务器执行Powershell部署脚本,而是使用PSRemoting在目标服务器上安装Windows服务(VisualStudioRemoteDeployer.exe
)。然后,此服务在本地运行您的部署脚本,并且MSRM服务器会定期轮询此Windows服务(请参阅here)以查看它是否已完成部署。
我怀疑这个奇怪的设置与避免double-hop issue有关 - 所以它允许你的脚本从目标服务器到另一个服务器进行第二跳,例如用于网络服务电话。
因此,您需要足够的权限来安装该Windows服务,according to this post,这意味着管理权限。