Когда я запускаю Get-AzAutomationDSCNode
, у меня есть два узла, зарегистрированные в группе ресурсов 1.
Оба узла имеют одинаковое имя «Node1», но принадлежат разным группам ресурсов.
Node1 - resourcegroup1
Node1 - resourcegroup2
поскольку они оба зарегистрированы в одной и той же группе ресурсов, как я могу получить связанную виртуальную машину узлов с помощью powershell, чтобы я мог знать, какой из них нужно удалить.
Свойства Get-AzAutomationDscNode не содержат VmResourceID.
как я могу получить связанную виртуальную машину узлов с помощью powershell
Вот скрипт 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"
}
}
Выход:
Обновленный скрипт:
Вы можете использовать приведенный ниже скрипт PowerShell для получения VM resource ID
из конфигурации узлов DSC.
$resourceGroupName = "RG_Name"
$automationAccountName = "Automation_Account"
$dscNodes = Get-AzAutomationDscNode -ResourceGroupName $resourceGroupName -AutomationAccountName $automationAccountName | Select-Object -Unique
foreach ($dscNode in $dscNodes) {
Write-Host "DSC Node Name in Automation Account : $($dscNode.Name)"
$VMs = Get-AzResource -ResourceType "Microsoft.Compute/virtualMachines" -Name $dscNode.Name
foreach ($VM in $VMs) {
Write-Host "Name : $($VM.Name)"
Write-Host "ResourceGroupName : $($VM.ResourceGroupName)"
Write-Host "ResourceId : $($VM.ResourceId)"
Write-Host "Location : $($VM.Location)"
Write-Host ""
}
}
Выход:
Вы имеете в виду, что имена виртуальных машин совпадают с именами в выходных данных узла DSC?
правильный. одинаковые имена виртуальных машин
Привет @Ayandaezekiel, я обновил ответ согласно вашему требованию, проверьте и дайте мне знать статус.
Приятно знать, что это сработало для вас.
Это не работает. Существует только одна учетная запись автоматизации. и dscnode возвращает одинаковую информацию для обоих, поскольку они имеют одинаковые имена и зарегистрированы в одной группе ресурсов. Даже если связанные виртуальные машины находятся в разных группах ресурсов. Имя группы ресурсов одинаково для всех узлов, поэтому итерация не влияет на выходные данные. Спасибо, что изучили это.