Мне нужно получить ResourceGroup и ResourceID связанной виртуальной машины Azure моего узла DSC

Когда я запускаю Get-AzAutomationDSCNode, у меня есть два узла, зарегистрированные в группе ресурсов 1.

Оба узла имеют одинаковое имя «Node1», но принадлежат разным группам ресурсов.

Node1 - resourcegroup1
Node1 - resourcegroup2

поскольку они оба зарегистрированы в одной и той же группе ресурсов, как я могу получить связанную виртуальную машину узлов с помощью powershell, чтобы я мог знать, какой из них нужно удалить.

Свойства Get-AzAutomationDscNode не содержат VmResourceID.

Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
0
0
144
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

как я могу получить связанную виртуальную машину узлов с помощью 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 ""
        }
    }

Выход:

Это не работает. Существует только одна учетная запись автоматизации. и dscnode возвращает одинаковую информацию для обоих, поскольку они имеют одинаковые имена и зарегистрированы в одной группе ресурсов. Даже если связанные виртуальные машины находятся в разных группах ресурсов. Имя группы ресурсов одинаково для всех узлов, поэтому итерация не влияет на выходные данные. Спасибо, что изучили это.

Ayanda ezekiel 16.04.2024 13:46

Вы имеете в виду, что имена виртуальных машин совпадают с именами в выходных данных узла DSC?

Venkat V 16.04.2024 14:12

правильный. одинаковые имена виртуальных машин

Ayanda ezekiel 16.04.2024 14:41

Привет @Ayandaezekiel, я обновил ответ согласно вашему требованию, проверьте и дайте мне знать статус.

Venkat V 17.04.2024 06:12

Приятно знать, что это сработало для вас.

Venkat V 17.04.2024 14:09

Другие вопросы по теме