【问题标题】:stop and start IIS server for TFS build Access denied停止并启动 IIS 服务器以进行 TFS 构建访问被拒绝
【发布时间】:2019-12-07 13:39:40
【问题描述】:

我需要停止并启动 IIS 服务器以进行 TFS 构建。何时使用 .bat 文件 iisreset /stop 执行此操作,启动时类似。

当我这样做时,我得到了

访问被拒绝,您必须是远程计算机的管理员才能使用此命令。将您的帐户添加到远程计算机的管理员本地组或域管理员全局组。

请注意:这是 Windows server 2019

  1. 我已经是这台机器的管理员了。
  2. 我已向此文件夹中的每个人授予读/写权限。
  3. link for site 中所述,我已在注册表中将 EnableLUA 取消设置为“0”
  4. 除此之外,我重新启动了机器。

我仍然在 TFS 构建中遇到错误。

【问题讨论】:

  • 本地运行时可以吗?
  • 可以,本地没有问题
  • 您的构建代理在哪个帐户上运行?如果它是一个特定的功能 ID,那么您可能需要将该帐户添加到框上的管理员组中。
  • TFS 作为网络服务运行,为此我已授予读/写权限
  • 将“网络服务”帐户添加到管理员组应该可以解决问题……但这不是一个理想的方法。如果解决了,您需要找到限制用户在提升权限上运行文件的策略模式并分配该权限。

标签: windows iis tfs windows-server


【解决方案1】:

您正在尝试在批处理脚本中执行 IISRESET。您需要成为管理员作为执行 IISRESET 命令的基本权限。因此,正在运行构建的帐户需要是框上 Admin 组的一部分。

其他方法是使用 sc config 命令或 NET STOP WAS /Y 和 NET START W3SVC 停止和启动 w3svc

【讨论】:

    【解决方案2】:

    当您在 TFS 中启动构建时,该构建的执行实际上是由构建代理完成的。构建代理只是在任何特定机器上运行的服务。因此,将启动/停止 IIS 服务的批处理文件将由运行特定构建的任何构建代理执行。

    这意味着您的批处理文件由用于运行构建服务的用户执行。如果该用户没有必要的管理员权限,您将面临此特定错误消息。

    您需要做的是确保您用于运行构建代理的所有帐户在您要启动/停止 IIS 的任何机器上都具有管理权限。

    【讨论】:

      【解决方案3】:

      您的两个答案都是正确的,我将 TFS 的“网络服务”添加到机器管理员组。然后构建成功。管理工具>计算机管理>本地用户和组>组>

      在管理员和用户内部添加“网络服务”。如果您没有找到“网络服务”,则将位置更改为您的计算机节点并添加它们。

      【讨论】:

      • 不建议将网络服务添加到管理员组。您可能希望使用 NET 或 SC 命令来重新启动 IIS。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-08
      • 1970-01-01
      相关资源
      最近更新 更多