Azure Devops 交互式代理

Azure Devops Interactive agent

对于 运行,我们的 UI 测试使用的任务 "Visual Studio test agent deployment",现已弃用。所以我已经将任务移动到使用 "Visual Studio Test" 任务。

这需要将代理配置为交互式进程而不是服务。所以我用交互式进程代理创建了一个新的构建服务器 运行 管理员权限用户。

对于签名或代码,我们使用安装在构建服务器上的签名证书。但是由于某种原因,这个新构建的服务器似乎每次管道 运行s.

时都会丢失证书信用。

我曾尝试 运行 一个 ps1 文件来重新安装证书,但没有成功。下面是我重新安装证书的代码,我正在使用任务 "PowerShell on target machines" 到 运行 脚本。使用此脚本的用户 运行 是盒子上的管理员,是否有不同的方式将 ps1 文件始终作为管理员 运行 获取?

Set-Location "C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools"
Start-Process cmd.exe
Sleep 2
$WshShell = New-Object -ComObject WScript.Shell
Sleep 2
$WshShell.sendkeys(".\sn.exe -d  $KeyContainer{Enter}");
Sleep 2
$WshShell.sendkeys(".\sn.exe -i $PfxCertificatePath  $KeyContainer{Enter}");
Sleep 2;
$WshShell.sendkeys("$passWord{Enter}");
Sleep 2;
$WshShell.sendkeys("{Enter}");

如有任何帮助,我们将不胜感激。

Is there a way to get the cmd.exe to run as admin through the pipeline?

据我所知,目前只有 Powershell on Target Machine 任务的 3.0 版本支持我们 运行 将其作为管理员。除此之外,Command-line任务和PowerShell任务还不支持此功能。

所以恐怕答案是否定的,Azure Devops 管道没有选项让我们 运行 那些任务(CMD 任务,PS 任务...)与管理员权利。 (根据您的描述,您正在尝试以不同的方式在 Target Machine 任务上使用 PS。)

对于给您带来的不便,我们深表歉意。事实上,我认为这可能是一个好主意,因此您可以随时在我们的 UserVoice site 上添加您对此功能的请求(CMD 任务与管理员...),这是我们提供产品建议的主要论坛。但是如果没有得到足够的票数,它可能不会被 MS 接受。

希望对您有所帮助:)