0

我正在尝试运行以下 Web 部署命令:

msdeploy.exe -verb:dump -source:dirPath="C:\Deploy",wmsvc=localhost,username=<user>,password=<pass>

我曾尝试与两个用户 John 和 Mary 一起运行它。约翰是盒子管理员组的成员,玛丽不是;该命令适用于 John,但适用于 Mary 的 401 失败。

我有以下设置:

  • Mary 通过 ACL 拥有对 C:\Deploy 的完全访问权限(管理员组也是如此)
  • John 和 Mary 都被授予使用委托功能访问 IIS 中的 C:\Deploy dirPath 的权限(见下文)

我的 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 组时,该命令有效。但委托的全部意义在于能够以非管理员身份运行部署命令。我可以为 Mary 运行其他命令(例如 -verb:dump -source:appHostConfig="Default Web Site") - 它只是 dirPath 不起作用。

WMSvc.log 似乎不包含失败命令的任何错误——不过我可以看到成功的命令。我确实在失败的请求跟踪中看到了 HEAD 请求的 401,但没有任何迹象表明它为什么会发生......

任何指针表示赞赏。

4

2 回答 2

1

zcrar70,您是对的:只有在用户有权访问站点范围时,委托才会生效。在您的示例中,如果您已授予 PC\Mary 对该站点的访问权限(通过 IIS 管理器权限),那么这将起作用。

您能进一步解释一下您的情况吗?您是否尝试授予非管理员用户在所有站点上运行特定提供程序的权限?

于 2011-02-08T18:48:17.473 回答
1

您的 RunAs 身份“AnAdministrator”需要具有访问 c:\Deploy 的权限,因为 Mary 和 John 都将被模拟为该用户(如果原始身份失败,John 不会)。ACL C:\Deploy 用于 AnAdministrator 用户,然后重试。

您还可以使用ServerValidator工具检查您的环境是否已准备好进行委派部署。

于 2011-02-02T20:38:49.337 回答