当我运行
Get-AzAutomationDSCNode
时,我在resourcegroup1中注册了两个节点。
两个节点具有相同的名称“Node1”,但属于不同的资源组。
Node1 - resourcegroup1
Node1 - resourcegroup2
由于它们都注册在同一资源组下,我如何使用 powershell 获取节点的关联虚拟机,以便我知道要删除的正确节点。
Get-AzAutomationDscNode 的属性不包含 VmResourceID
如何使用powershell获取节点的关联虚拟机
这是使用自动化帐户节点获取
VM名称的
PowerShell
脚本。
$resourceGroupNames = @("RG1", "RG2")
$automationAccountNames = @("Automate-WUS2", "MM")
for ($i = 0; $i -lt $resourceGroupNames.Length; $i++) {
$resourceGroupName = $resourceGroupNames[$i]
$automationAccountName = $automationAccountNames[$i]
$dscNodes = Get-AzAutomationDscNode -ResourceGroupName $resourceGroupName -AutomationAccountName $automationAccountName
foreach ($dscNode in $dscNodes) {
Write-Host "DSC Node Name: $($dscNode.Name), Resource Group: $resourceGroupName, Automation Account: $automationAccountName"
}
}
输出:
这是获取
VM
资源 ID 的脚本。
foreach ($dscNode in $dscNodes) {
$vmname= $dscNode.Name
$vm = Get-AzVM -ResourceGroupName $resourceGroupName -Name $vmname
Write-Host "DSC Node Name: $($dscNode.Name), Resource Group: $resourceGroupName, Automation Account: $automationAccountName"
Write-Host "VM Name: $($vm.Name), VM Resource ID: $($vm.Id), DSC Node Name: $($dscNode.Name), Resource Group: $resourceGroupName, Automation Account: $automationAccountName"
}