如何使用 powershell 获取 Azure 虚拟机规模集实例列表

How to get a list of Azure Virtual Machine Scale Set Instances using powershell

我正在尝试使用 powershell 获取订阅的所有规模集中所有虚拟机实例的列表。

我已经能够使用下面的代码列出所有规模集,但我想显示每个规模集内的所有虚拟机实例。

$azureSubs = Get-AzSubscription -TenantID xxxxxxxxxxxxxxxxx

$azureSubs | ForEach-Object {Select-AzSubscription $_ |出空; Get-AzVMss -WarningAction SilentlyContinue} | Export-Csv -Path "c:\Azure\VirtualMachinesScaleSet.csv" -NoTypeInformation

任何人都可以提出任何帮助。

您可以使用 Get-AzureRmVM 获取主机名和实例 ID:

PS > Get-AzureRmVM -ResourceGroupName "vmss" -VMScaleSetName "vmss"

您可以使用 Get-AzVmss(利用 Az 库)获取规模集信息。

PS Get-AzVmss 

您可以使用 Get-AzVmssVM 命令,在每个订阅中尝试下面的脚本。

$vmss = Get-AzVmss
$instances = foreach($item in $vmss){
    Get-AzVmssVM -ResourceGroupName $item.ResourceGroupName -VMScaleSetName $item.Name
}
$instances | Export-Csv -Path "C:\Users\joyw\Desktop\ins.csv" 

更新:

对于一个租户中的多个订阅,请尝试下面的脚本。

$subs = Get-AzSubscription -TenantId "<tenant-id>"
$instances = @()
foreach($sub in $subs){
    Set-AzContext -SubscriptionId $sub.Id
    $vmss = Get-AzVmss
    foreach($item in $vmss){
        $vms = Get-AzVmssVM -ResourceGroupName $item.ResourceGroupName -VMScaleSetName $item.Name
        $instances += $vms
    }
}
$instances | Export-Csv -Path "C:\Users\Administrator\Desktop\ins.csv"