Azure Devops Interactive代理

时间:2019-12-05 03:30:13

标签: powershell azure-devops azure-pipelines-release-pipeline azure-devops-self-hosted-agent

要运行我们的UI测试,请使用任务“ Visual Studio测试代理部署”,该任务现已弃用。因此,我将任务移至使用“ Visual Studio测试”任务。

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

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

我试图运行ps1文件来重新安装证书,但没有成功。在id下面,我具有用于重新安装证书的代码,并且我使用任务“目标计算机上的PowerShell”运行脚本。运行此脚本的用户在盒子上是admin,是否有其他方法可以使ps1文件始终以admin身份运行?

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}");

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

  

是否有一种方法可以使cmd.exe以管理员身份通过   管道?

据我所知,目前仅Powershell on Target Machine任务的3.0版支持我们以admin身份运行它。除此之外,Command-line任务和PowerShell任务尚不支持此功能。

因此,恐怕答案是否定的,Azure Devops管道无法选择以管理员权限运行这些任务(CMD任务,PS任务...)。 (根据您的描述,您正在尝试以其他方式在目标机任务上使用PS。)

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

希望有帮助:)