You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用PowerShell创建Azure Hybrid Worker报错,求解决及Graph替代方案

问题解决:Azure VM添加为Hybrid Worker失败(GUID格式错误)

PowerShell代码修正

报错原因是New-AzAutomationHybridRunbookWorker的Name参数要求传入GUID格式的Hybrid Worker ID,但你传入了VM名称。当通过VmResourceId指定Azure VM时,无需手动设置Name参数,系统会自动关联VM并生成合法标识。

修正后的代码:

$rgDRname = 'rgjt4061rbdr'
$rgname = 'rgjt4061rb'
$aaname = 'aajt4061rb'
$hybridWorkerGroupName = 'hwrvmjt4061rbDNS1'

# 定位目标VM并验证存在性
$vmDNS1resource = Get-AzVM -ResourceGroupName $rgDRname | Where-Object { $_.Name -like "vm*DNS1" }
if (-not $vmDNS1resource) {
    Write-Error "未找到符合命名规则的灾备VM"
    exit 1
}
$vmDNS1resourceid = $vmDNS1resource.Id

# 构造Hybrid Worker配置(移除错误的Name参数)
$hybridWorkerConfiguration = @{
    ResourceGroupName = $rgname
    AutomationAccountName = $aaname
    VmResourceId = $vmDNS1resourceid 
    HybridRunbookWorkerGroupName = $hybridWorkerGroupName
}

# 执行添加操作
New-AzAutomationHybridRunbookWorker @hybridWorkerConfiguration 

前置条件

  • 当前执行账号需具备Automation Contributor和Virtual Machine Contributor权限
  • 目标VM需处于运行状态,且网络可连接到Azure Automation服务

Microsoft Graph实现方案

通过Microsoft Graph Beta API可以完成相同操作,以下是PowerShell调用示例:

步骤1:连接Graph并获取权限

# 连接到Microsoft Graph,需申请AutomationHybridRunbookWorkers.ReadWrite.All权限
Connect-MgGraph -Scopes "AutomationHybridRunbookWorkers.ReadWrite.All","Directory.Read.All"
# 若未安装Beta模块,先执行:Install-Module Microsoft.Graph.Beta.Automation

步骤2:执行添加操作

$rgDRname = 'rgjt4061rbdr'
$rgname = 'rgjt4061rb'
$aaname = 'aajt4061rb'
$hybridWorkerGroupName = 'hwrvmjt4061rbDNS1'

# 获取当前订阅ID
$subscriptionId = (Get-AzContext).Subscription.Id

# 构造Automation Account的Graph资源ID
$automationAccountId = "/subscriptions/$subscriptionId/resourceGroups/$rgname/providers/Microsoft.Automation/automationAccounts/$aaname"

# 查找目标Hybrid Worker Group
$hybridWorkerGroup = Get-MgBetaAutomationAutomationAccountHybridRunbookWorkerGroup -AutomationAccountId $automationAccountId -Filter "name eq '$hybridWorkerGroupName'"
if (-not $hybridWorkerGroup) {
    Write-Error "未找到指定的Hybrid Worker Group"
    exit 1
}

# 获取灾备VM资源ID
$vmDNS1resource = Get-AzVM -ResourceGroupName $rgDRname | Where-Object { $_.Name -like "vm*DNS1" }
if (-not $vmDNS1resource) {
    Write-Error "未找到符合命名规则的灾备VM"
    exit 1
}

# 调用Graph API添加Hybrid Worker
New-MgBetaAutomationAutomationAccountHybridRunbookWorkerGroupHybridRunbookWorker `
    -AutomationAccountId $automationAccountId `
    -HybridRunbookWorkerGroupId $hybridWorkerGroup.Id `
    -BodyParameter @{
        properties = @{ vmResourceId = $vmDNS1resource.Id }
        name = $vmDNS1resource.Name
    }

内容的提问来源于stack exchange,提问作者Ayanda ezekiel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 17:07:55