Azure DevOps 管道中的访问被拒绝问题

问题描述 投票:0回答:2

我们创建了一个 Azure 虚拟机规模集代理池,并在代理池中启动了管道。由于任务未在 VMSS 实例上的管理模式(CMD、PowerShell 和 Final builder)下运行,我们在作业中遇到了“访问被拒绝”问题。我们需要在代理池中以管理模式运行这些任务。 我们也无法使用虚拟机中的管理员权限运行控制台应用程序。

请提供解决此问题的任何建议。

VMSS 代理池:

管道:

访问被拒绝问题:

azure azure-devops
2个回答
0
投票
machinename\azdevops

运行管道任务(可以在任务中使用“whoami”进行验证,如下所示):

远程到目标规模集虚拟机,默认用户为“Administrator”,帐户具有管理员权限。

我可以使用管道中的帐户创建一个文件。

我们也无法使用虚拟机中的管理员权限运行控制台应用程序。

如果您无法在 VM 上以管理员权限
directly

运行应用程序,怀疑它可能被阻止了应来自 VMSS 策略而不是 DevOps 的策略。

建议创建一个新的VMSS,并将其用于DevOps代理进行检查。


0
投票

Function Check-RunAsAdministrator() { #Get current user context $CurrentUser = New-Object Security.Principal.WindowsPrincipal $([Security.Principal.WindowsIdentity]::GetCurrent()) #Check user is running the script is member of Administrator Group if($CurrentUser.IsInRole([Security.Principal.WindowsBuiltinRole]::Administrator)) { Write-host "Script is running with Administrator privileges!" } else { #Create a new Elevated process to Start PowerShell $ElevatedProcess = New-Object System.Diagnostics.ProcessStartInfo "PowerShell"; # Specify the current script path and name as a parameter $ElevatedProcess.Arguments = "& '" + $script:MyInvocation.MyCommand.Path + "'" #Set the Process to elevated $ElevatedProcess.Verb = "runas" #Start the new elevated process $process = [System.Diagnostics.Process]::Start($ElevatedProcess) $process.WaitForExit() #Exit from the current, unelevated, process Exit } } #Check Script is running with Elevated Privileges $process = Check-RunAsAdministrator Write-Host "Hi, I am admin" #Your other commands to open a txt, etc

或者尝试在虚拟机上禁用 UAC,它可能会干扰使用“AzDevOps”帐户时任务中的意外操作。

$RegistryUAC="HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" New-ItemProperty -路径 $RegistryUAC -名称“EnableLUA”-值 0 -PropertyType“DWord”-Force

© www.soinside.com 2019 - 2024. All rights reserved.