我正在尝试运行以下Web Deploy命令:
msdeploy.exe -verb:dump -source:dirPath="C:\Deploy",wmsvc=localhost,username=<user>,password=<pass>
我试图用两个用户John和Mary来运行它。 John是盒子上管理员组的成员,Mary不是;该命令适用于John,但失败了,其中包含401 for Mary。
我有以下设置:
我的administration.config条目:
<rule enabled="true" providers="dirPath" actions="*" path=".*" pathType="RegularExpression">
<runAs identityType="SpecificUser" userName="AnAdministrator" password="..." />
<permissions>
<user name="PC\John" isRole="false" accessType="Allow" />
<user name="PC\Mary" isRole="false" accessType="Allow" />
</permissions>
</rule>
当我将Mary添加到Administrators组时,该命令有效。但是,委派的全部意义是能够以非管理员身份运行部署命令。我能够运行其他命令(例如-verb:dump -source:appHostConfig =“默认网站”)对玛丽来说很好 - 这只是dirPath无法正常工作。
WMSvc.log似乎没有包含失败命令的任何错误 - 我可以看到成功的错误。我确实在失败的请求跟踪中看到了HEAD请求的401,但没有说明它为什么会发生......
任何指示赞赏。
答案 0 :(得分:1)
您的RunAs标识“AnAdministrator”需要具有访问c:\ Deploy的权限,因为Mary和John都将被模拟(如果原始标识失败,不适用于John)作为此用户。 ACL C:\为AnAdministrator用户部署,然后重试。
您还可以使用ServerValidator工具检查您的环境是否已准备好进行委派部署。
答案 1 :(得分:1)
zcrar70,你是对的:只有当用户访问网站范围时,委托才会启动。在您的示例中,如果您已经通过PC \ Mary访问该站点(通过IIS管理器权限),那么这将起作用。
你能进一步解释一下你的情景吗?您是否尝试授予非管理员用户在所有站点上运行特定提供程序的权限?