【发布时间】:2020-03-29 22:51:04
【问题描述】:
为了运行我们的 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}");
任何帮助将不胜感激。
【问题讨论】:
-
is there a different way of getting the ps1 file to run as admin all the time?你好,直接在当前管理员账户cmd.exe中运行sn.exe命令会出现什么结果?据我所知,即使我们使用管理员帐户登录机器,这种操作也需要我们以管理员身份运行 cmd ......所以如果你想要一种方法来做到这一点,而不是在框中使用管理员帐户,我认为它不是支持... -
@LanceLi-MSFT 在服务器上以及我必须以管理员身份运行它(即使我以管理员帐户登录)。有没有办法让 cmd.exe 通过管道以管理员身份运行?
-
对不起,管道本身没有这个选项。目前,只有远程机器任务(version3)中的 PS 可以以管理员身份运行 ps。除此之外,不支持 cmd 任务...并且要在命令行中以管理员权限启动 cmd,例如 here,我们必须在运行 `runas /noprofile /user:Administrator cmd` 后手动输入密码,这不适合 CI/CD。所以恐怕答案是否定的。
标签: powershell azure-devops azure-pipelines-release-pipeline azure-devops-self-hosted-agent