一次性查看Azure订阅下所有虚拟机VM的公网IP/Public IP和私网IP/Private IP

来源:互联网 发布:广州大数据 平台 编辑:程序博客网 时间:2024/05/17 20:57

一次性查看Azure订阅下所有虚拟机VM的公网IP/Public IP和私网IP/Private IP,PowerShell脚本如下:


$script_path = Split-Path -Parent $MyInvocation.MyCommand.Definition
cd $script_path

Import-Module 'C:\Program Files (x86)\Microsoft SDKs\Azure\PowerShell\ServiceManagement\Azure\Azure.psd1'

Set-ExecutionPolicy Unrestricted

Import-AzurePublishSettingsFile 'my.publishsettings'

'Export VM List'

$sub = Get-AzureSubscription -Current
Set-AzureSubscription -SubscriptionName $sub.SubscriptionName -ServiceEndpoint "https://management.core.chinacloudapi.cn/"

$resultArray = @()
$vms = Get-AzureVM
foreach($vm in $vms)
{
$vmName = $vm.Name
$dnsName = $vm.ServiceName
$persistVM = Get-AzureVM -ServiceName $dnsName -Name $vmName
$vmSubnet = Get-AzureSubnet -VM $persistVM
$azureDeployment = Get-AzureDeployment -ServiceName $dnsName -Slot Production
$vmBRSubnetMask = ''
if($azureDeployment.VNetName -ne $null)
{
$vnetSites = Get-AzureVNetSite -VNetName $azureDeployment.VNetName
foreach($subnet in $vnetSites.Subnets)
{
if($subnet.Name -eq $vmSubnet)
{
$vmBRSubnetMask = $subnet.AddressPrefix
break
}
}
}
$vmBRIp = $persistVM.IpAddress

$vmEndpoints = Get-AzureEndpoint -VM $persistVM
if($vmEndpoints -ne $null)
{
$vmFRIp = $vmEndpoints[0].Vip
}

$vmObject = New-Object PSObject
$vmObject | Add-Member -MemberType NoteProperty -Name "HostName" -Value $vmName
$vmObject | Add-Member -MemberType NoteProperty -Name "DnsName" -Value $dnsName'.chinacloudapp.cn'
$vmObject | Add-Member -MemberType NoteProperty -Name "FR IPv4 Address" -Value $vmFRIp
$vmObject | Add-Member -MemberType NoteProperty -Name "BR IPv4 Address" -Value $vmBRIp
$vmObject | Add-Member -MemberType NoteProperty -Name "BR Subnet Mask" -Value $vmBRSubnetMask
$vmObject | Add-Member -MemberType NoteProperty -Name "DHCP" -Value 'Yes'

$resultArray += $vmObject
}

$resultArray | Export-Csv vmlist.csv -NoTypeInformation

'Done'
Pause


1 0
原创粉丝点击