Visual Studio Team Services - 发布定义 - 以admin身份运行任务(PowerShell)

时间:2016-02-04 10:02:08

标签: powershell continuous-integration uac continuous-deployment azure-devops

在VSTS中,我有一个发布定义,需要以管理员身份运行PowerShell脚本。

发布代理程序配置为以帐户身份运行,该帐户是本地管理员并具有所需权限,但UAC限制这些权限,除非执行PowerShell"作为管理员"。

我是否可以在VSTS上以管理员身份运行PS,而无需在服务器上完全禁用UAC?

4 个答案:

答案 0 :(得分:1)

我不认为使用PS任务有办法做到这一点。你可以试试"在目标服务器上运行PS"并提供管理员信誉。您需要提供代理的计算机名称(因此这不是理想的)作为任务的输入。这可能不需要UAC。我们会将此作为功能请求提交。

答案 1 :(得分:0)

我认为“内联”或“路径”选项不是问题。也许在部署环境计算机中安装代理,在安装过程中分配您确定对SharePoint场具有管理特权的用户凭据可以为您提供帮助。然后在VSTS中,验证代理是否处于联机状态并在“部署组”部分中工作。

答案 2 :(得分:0)

我遇到了同样的问题。为了解决这个问题,我做了这个(YMMV):

  1. 我卸载了Azure DevOps代理
  2. 验证代理用户是管理员
  3. 重新安装Azure DevOps代理

最初安装代理程序时,该代理程序所运行的用户不是管理员(在安装代理程序后,将该用户添加到Builtin \ Administrators组中)。我不确定这是否引起了问题,但是卸载/重新安装为我解决了这个问题。

答案 3 :(得分:0)

我们通过创建一个轻量级的 .Netcore Worker 服务来解决无法使用提升的 Powershell 命令的问题,该服务具有在提升的服务特权状态下运行的 http 请求功能。您可以从常规 Powershell YML 任务发送 Invoke-RestMethod 命令,它会在 ASP 控制器的另一端触发您的自定义逻辑。在为我们的单元测试重新安装之前,我们使用它来删除 Appx 包。存储库位于 AzureAdmin