如何通过PowerShell从虚拟机名称获取Azure自动化账户名称?
如何通过PowerShell识别VM关联的Azure自动化账户(已知Log Analytics工作区)
可以通过PowerShell结合Azure资源的关联关系实现,核心逻辑是先找到与目标Log Analytics工作区绑定的自动化账户,再查询这些账户下注册的Hybrid Runbook Worker(即对应的VM)。具体步骤如下:
- 登录Azure账号(未登录时执行)
Connect-AzAccount
- 获取目标Log Analytics工作区的资源信息
$targetWorkspaceId = "<你的Log Analytics工作区ID>" $workspace = Get-AzOperationalInsightsWorkspace -WorkspaceId $targetWorkspaceId
- 筛选关联该工作区的所有自动化账户
$linkedAutomationAccounts = Get-AzAutomationAccount | Where-Object { $_.LinkedWorkspaceId -eq $workspace.ResourceId }
- 查询自动化账户下注册的VM(Hybrid Runbook Worker)
遍历找到的自动化账户,获取每个账户下的Hybrid Runbook Worker,即可得到VM与自动化账户的对应关系:
foreach ($account in $linkedAutomationAccounts) { $hybridWorkers = Get-AzAutomationHybridRunbookWorker ` -ResourceGroupName $account.ResourceGroupName ` -AutomationAccountName $account.AutomationAccountName foreach ($worker in $hybridWorkers) { Write-Output "虚拟机名称: $($worker.Name) | 关联的自动化账户: $($account.AutomationAccountName)" } }
注意事项
- 该方法仅适用于已注册为Hybrid Runbook Worker的VM,这类VM会与自动化账户建立直接关联,且自动化账户需绑定目标Log Analytics工作区。
- 如果VM仅向Log Analytics工作区推送日志,但未注册为Hybrid Worker,那么两者没有直接资源关联,无法通过这种方式找到对应的自动化账户。
内容的提问来源于stack exchange,提问作者lexii0505
相关产品推荐
相关产品推荐

