1

为了运行我们的 UI 测试,我们使用了“Visual Studio 测试代理部署”任务,该任务现在已被弃用。所以我已将任务移至使用“Visual Studio 测试”任务。

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

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

我试图运行一个 ps1 文件来重新安装证书,但没有成功。下面是我用于重新安装证书的代码,我正在使用任务“目标机器上的 PowerShell”来运行脚本。运行此脚本的用户是机器上的管理员,是否有其他方法可以让 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}");

任何帮助将不胜感激。

4

1 回答 1

0

有没有办法让 cmd.exe 通过管道以管理员身份运行?

据我所知,目前只有 3.0 版Powershell on Target Machine任务支持我们以管理员身份运行它。除此之外,Command-linetask 和PowerShellTask 尚不支持此功能。

所以恐怕答案是否定的,Azure Devops 管道无法让我们以管理员权限运行这些任务(CMD 任务、PS 任务...)。(根据您的描述,您正在尝试以不同的方式在目标机任务上使用 PS。)

带来不便敬请谅解。实际上,我认为这可能是一个好主意,因此您可以随时在我们的UserVoice 网站上添加您的请求(管理员的 CMD 任务......) ,这是我们产品建议的主要论坛。但是如果没有获得足够的选票,它可能不会被 MS 接受。

希望能帮助到你:)

于 2019-12-10T07:21:22.007 回答