从Azure Pipeline和PowerShell脚本中以管理员身份运行.exe文件

4

我正在处理一个 .exe 文件的问题。我想使用 PowerShell 启动这个 .exe 文件,所以我有一个如下的命令:Start-Process "F:\Home\mydotteller.exe" -Verb runAs。 奇怪的是,如果我从服务器上运行上述命令,我可以以管理员权限启动 .exe 文件,并获得预期的输出结果。但是如果我尝试从 Azure Pipeline 或 .ps1 脚本运行,则无法按预期工作。 并且服务器已启用 UAC。是否有人可以帮助我解决这个问题?


1
您使用托管代理还是自托管代理?因为在托管代理中,这样做将不起作用。它们运行在沙盒中,您无法获得管理员访问权限。 - rickvdbosch
3
你是在使用(微软)托管代理还是自行托管构建代理?请再次确认。 - rickvdbosch
@rickvdbosch 第二个选项..自托管。 - Prasanth K S
3
如果您使用自托管代理,那么在安装构建代理时选择了哪个帐户?只要代理作为 Windows 服务运行且该帐户位于本地管理员组中,则您的脚本应该按预期运行。 - Lex Li
不用担心,@LexLi,我们正在使用具有所有管理员访问权限的服务帐户。 - Prasanth K S
显示剩余4条评论
1个回答

0

我们专门为此制作了AzureAdmin。在UI测试之前,在自托管构建中删除Appx软件包存在问题,即使通过代理以管理员帐户运行,Powershell任务也没有被提升。我们构建了一个轻量级的.Netcore Worker服务,具有http请求功能。只要您以管理员权限安装服务,就可以从常规Powershell YML任务发送Invoke-RestMethod命令,并在ASP控制器的另一端触发您的自定义逻辑,需要提升特权。项目上的示例控制器已经实现了使用Powershell命令的工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接