【问题标题】:Azure devops interactive agent as adminAzure devops 交互式代理作为管理员
【发布时间】:2021-01-28 03:06:54
【问题描述】:

我有一个在交互模式下运行 Azure Devops 代理的 Windows 10 Enterprise VM。代理使用机器拥有的唯一用户运行,并且它是禁用 UAC 的管理员。但是,当执行需要提升的命令提示符的任务时,如注册 dll,命令会失败并显示以下错误消息:

##[error]Cmd.exe exited with code '5'.

当我尝试将文件复制到 Windows\SysWow64 时,会出现此消息

##[error]Error: Failed cp: cp: copyFileSync: could not write to dest file (code=EPERM):C:\windows\SysWow64\test.txt

我的睾丸也因以下错误消息而失败:

Test method TestesRegressaoPGB.Autenticacao.AutenticarNoPGBL02 threw exception:
System.AggregateException: One or more errors occurred. (The requested operation requires elevation.) ---> System.ComponentModel.Win32Exception: The requested operation requires elevation.
TestCleanup method TestesRegressaoPGB.Autenticacao.Cleanup threw exception. System.NullReferenceException: System.NullReferenceException: Object reference not set to an instance of an object..

如何在提升时运行所有命令?

【问题讨论】:

    标签: azure-devops windows-10 azure-pipelines azure-devops-self-hosted-agent


    【解决方案1】:

    在 Azure DevOps 中,如果你想通过自托管代理访问 azure devops 管道中的本地文件,它通过 service account 而不是 Personal account 访问文件。

    解决方法

    我们可以打开检查文件权限并配置服务帐户权限。服务帐号格式 User/Administrator/Administrators({Agent.ComputerName}\User/Administrator/Administrators)

    此外,我们可以将代理服务帐户更改为您的所有者帐户。

    步骤:在代理机器上打开服务,搜索代理服务账号,查看下图,将账号名和密码改成你的,就会使用这个账号进行操作。

    【讨论】:

    • 这样做对我来说不起作用,印刷品中甚至没有与您的同名的服务。正如我所说,代理已经使用管理员帐户运行,但是,当尝试通过管道执行操作时,它总是要求提升。如果我登录到虚拟机并尝试执行相同的操作,它运行正常。它只是在管道运行上下文中不起作用。
    • 另外,当我配置代理时,我没有使用服务帐户,我使用的是管理员个人帐户。
    • “如果我登录到虚拟机并尝试执行相同的操作,它运行正常”,这是您的个人帐户,我们通过个人令牌创建自托管代理,如果我们想要通过自托管代理写入本地文件,它通过服务帐户而不是个人帐户执行此操作。
    【解决方案2】:

    我刚刚为管道代理需要打开的每个文件夹添加了权限。正如我对 Vito 所说,代理没有使用服务帐户运行。

    【讨论】:

      猜你喜欢
      • 2020-03-29
      • 2021-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-20
      • 2020-08-12
      • 1970-01-01
      相关资源
      最近更新 更多