Azure VM 上的 PowerShell 中没有管理员/提升权限

Azure VM 上的 PowerShell 中没有管理员/提升权限

我已经为我们的自定义 DevOps 构建代理设置了带有 Windows 10 Pro 的 Azure VM。我创建的用户是管理员,并且也属于管理员组。

但是,如果我这样做:

  1. 通过具有管理员权限的用户通过 RDP 连接到虚拟机
  2. 运行 PowerShell(无需管理员权限)
  3. 尝试运行例如Import-Certificate命令

在 PowerShell 中,我收到一个Access Denied错误。

我的所有 PowerShell 实例是否有可能自动拥有管理员权限?

该解决方案将适用于托管的 DevOps 代理。现在我无法在我们的 DevOps 管道中运行任何最终需要管理员权限的脚本。

答案1

因此,我在不使用任何第三方工具的情况下解决了这个问题。

启动自定义构建代理的原始命令是:

C:\windows\system32\cmd.exe /D /S /C start "Agent with AutoLogon" "C:\agent\run.cmd" --startuptype autostartup

以上产生的非管理员命令提示符,DevOps 没有管理员/提升权限。

您可以使用Start-ProcessPowerShell 命令启动上述操作以-Verb RunAs获取提升的权限:

powershell -Command "Start-Process powershell -ArgumentList 'C:\windows\system32\cmd.exe /D /S /C start C:\agent\run.cmd --startuptype autostartup' -Verb RunAs"

但是,这种方法牺牲了命令提示符的标题,因为我没有弄清楚如何正确地转义它所需的双引号。

答案2

如果您想在管道中运行需要管理员权限提升的任务,则需要确保您的代理服务使用管理员帐户运行。这仅适用于自托管代理。如果您使用的是 Microsoft 托管代理,则无法提升为管理员。

相关内容