Azure devops 交互式代理作为管理员

Azure devops interactive agent as admin

我有一个 Windows 10 Enterprise VM 运行 在交互模式下连接 Azure Devops 代理。代理 运行 使用机器拥有的唯一用户,它是禁用了 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 中,如果你想通过自托管代理访问 azure devops 管道中的本地文件,它通过 service account 而不是 Personal account 访问文件。

解决方法

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

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

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

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