msbuild - unauthorizedAccessException: 正在为 CLSID 为 {2B72133B-3F5B-4602-8952-803546CE3344 的远程组件检索 COM class 工厂

msbuild - unauthorizedAccessException: Retrieving the COM class factory for remote component with CLSID {2B72133B-3F5B-4602-8952-803546CE3344

我正在使用 MSBuld 任务更改 windows 2012 服务器上托管的 IIS 站点的虚拟目录。我正在使用以下代码:

<MSBuild.ExtensionPack.Web.Iis7Website TaskAction="Stop"
                                               Name="TestSite"
                                               MachineName="$(MachineName)"/>
        <MSBuild.ExtensionPack.Web.Iis7Website TaskAction="ModifyPath"
                                               Name="TestSite"
                                               Path="$(PublishDir)"
                                               MachineName="$(MachineName)"/>
        <MSBuild.ExtensionPack.Web.Iis7Website TaskAction="Start"
                                                                     Name="TestSite"
                                               MachineName="$(MachineName)"/>

我正在执行两项任务:

  1. 将文件从我的机器复制到远程机器,工作正常。意思是我在远程机器上有读写权限。
  2. 在第二步中,我尝试使用 ms 构建任务更改虚拟目录,但失败了。

当我尝试在同一台机器或不同机器上更改 IIS 站点的虚拟目录时出现以下错误。

UnauthorizedAccessException:从机器 XXXX 检索 CLSID 为 {2B72133B-3F5B-4602-8952-803546CE3344} 的远程组件的 COM class 工厂由于以下错误而失败:80070005

我在 windows 2008 服务器上使用相同的代码来更改托管在不同机器上的另一个网站的虚拟目录路径,它工作正常。

我四处寻找类似的问题,大多数人都在谈论起诉拥有其他机器管理员权限的人的用户名和密码,或者在注册表中进行一些更改。我不想使用这两种方法。

还有其他解决方法吗?

事实证明,我是 运行 使用 Team City(持续集成服务器)的任务,它又使用 ms-build 任务来更改虚拟目录。团队城市 运行 在服务帐户下。我不得不 在远程计算机的管理员组下添加该服务帐户