【问题标题】:Azure Devops Interactive agentAzure Devops 交互式代理
【发布时间】: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


【解决方案1】:

有没有办法让 cmd.exe 通过 管道?

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

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

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

希望对你有帮助:)

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2021-05-25
  • 1970-01-01
  • 1970-01-01
  • 2012-03-23
  • 1970-01-01
  • 2021-11-14
  • 2021-01-03
  • 1970-01-01
相关资源
最近更新 更多