簡體   English   中英

如何從多個Azure訂閱中導出虛擬機名稱和IP地址

[英]How to export Virtual Machine Names and IP Addresses from within multiple azure subscriptions

我已經可以使用以下腳本從單個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"

但是我嘗試使用下面的方法從具有多個訂閱的azure帳戶中導出相同的數據,但是我得到的只是一個空白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"

有人可以協助嗎?

我認為您需要在Select-AzSubscription之后立即移動Get-AzVm嗎? 因為現在您只獲得一次虛擬機(默認訂閱)

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM