如何将虚拟机名称和IP地址导出多个蔚蓝的订阅中

问题描述 投票:0回答:1

我已经能够使用下面的脚本一个Azure订阅内出口摆脱VM名和IP地址。

$report = @()
$vms = get-azvm
$nics = get-aznetworkinterface | ?{ $_.VirtualMachine -NE $null}

foreach($nic in $nics)
{
    $info = "" | Select VmName, ResourceGroupName, HostName, IpAddress
    $vm = $vms | ? -Property Id -eq $nic.VirtualMachine.id
    $info.VMName = $vm.Name
    $info.ResourceGroupName = $vm.ResourceGroupName
    $info.IpAddress = $nic.IpConfigurations.PrivateIpAddress
    $info.HostName = $vm.OSProfile.ComputerName
    $report+=$info
}
$report | Export-Csv -Path "c:\Azure\VMIPs.csv"

不过,我已经使用下面的从具有多种签约的蔚蓝帐户导出同样的数据尝试,但我得到的是一个空白的CSV文件。

$report = @()
$vms = get-azvm
$azureSubs = get-azsubscription
$azureSubs.foreach{
    Select-AzSubscription $_ # << change active subscription
$nics = get-aznetworkinterface | ?{ $_.VirtualMachine -NE $null}

foreach($nic in $nics)
{
    $info = "" | Select VmName, ResourceGroupName, HostName, IpAddress
    $vm = $vms | ? -Property Id -eq $nic.VirtualMachine.id
    $info.VMName = $vm.Name
    $info.ResourceGroupName = $vm.ResourceGroupName
    $info.IpAddress = $nic.IpConfigurations.PrivateIpAddress
    $info.HostName = $vm.OSProfile.ComputerName
    $report+=$info
    }
}
$report | Export-Csv -Path "c:\Azure\VMIPs.csv"

任何人都可以帮助?

azure virtual-machine ip-address subscription
1个回答
0
投票

我认为你需要移动获取-AzVm选择-AzSubscription右后?因为现在你只能得到一次的虚拟机(在默认订阅)

$azureSubs.foreach{
    Select-AzSubscription $_ # << change active subscription
    $nics = get-aznetworkinterface | ?{ $_.VirtualMachine -NE $null}
    $vms = get-azvm
    ...
}
© www.soinside.com 2019 - 2024. All rights reserved.