MSDeploy RunCommand 权限

27

我试图使用MSDeploy中的-presync:runCommand选项,但无论我尝试运行什么,都会收到相同的错误:

错误:客户端未持有所需权限。

我试过几个要执行的命令,但没有一个起作用。理想情况下,我希望在服务器上执行.exe文件,如下所示:

-presync:runCommand=C:\MyExecutable.exe,dontUseCommandExe=true

我也尝试过

-presync:runCommand=C:\TestScript.bat

这是来自他们文档的示例。

-presync:runCommand="net stop w3svc"

提前感谢。

2个回答

58

我找到了答案,原来我已经完成了其中一半。在我提出的问题中提供的链接中,他们提到了如何添加特权到WMSvc账户:

sc privs wmsvc SeChangeNotifyPrivilege/SeImpersonatePrivilege/SeAssignPrimaryTokenPrivilege/SeIncreaseQuotaPrivilege

它没有提到的是,您必须重新启动WMSvc才能使其生效。


4
谢谢@Luke!这节省了我很多时间! - kiteloop
4
我已更新runCommand提供程序文档,反映出在运行sc privs后需要重新启动WMSvc - 感谢您的捕捉。 - timamm
+1 对于正确答案,以及微软的某位关注 Stack Overflow 并更新 MS 文档的人的双倍奖励。这太好了! - Michael12345

0
  1. 在Microsoft Service Delegation中配置规则,用于执行WWWROOT之外的任何操作,例如自定义文件夹 例如: Provider = "runCommand"

State = Enabled

Path =

Path Type = PathPrefix

Actions = *

Identity Type = SpecificUser

UserName = WDeployAdmin

(您需要知道此用户的密码,我不知道所以我更改了密码)

然后将“Add User To Rule”设置为“*”,并勾选IsRole

  1. 对于provider = "contentPath"也要执行相同的操作。

  2. 按如下方式提升'WMSvc'特权...

sc privs wmsvc SeChangeNotifyPrivilege/SeImpersonatePrivilege/SeAssignPrimaryTokenPrivilege/SeIncreaseQuotaPrivilege

  1. 重新启动'WMSvc'

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接