下文介绍利用PowerShell脚本批量统计所有虚拟机相关信息,例如:位置、规格、操作系统、内网IP、公网IP等信息
$info=[System.Collections.ArrayList]@()
$svcs=(Get-AzureService).ServiceName
foreach(
Get-AzureDeployment -ServiceName $svcName >>null -ErrorAction Ignore
if( $?)
{
$vms=Get-AzureVM -ServiceName $svcName
$svc=Get-AzureService -ServiceName $svcName
$dep=Get-AzureDeployment -ServiceName $svcName
foreach( $vm in $vms)
{
$d=@{}
$d.Add("VMname",$vm.Name)
$d.Add("ServiceName",$svcName)
$d.Add("VMSize",$vm.InstanceSize)
$d.Add("OStype",$vm.VM.OSVirtualHardDisk.OS )
$d.Add("PrivateIP",$vm.IpAddress)
if(Get-AzureStaticVNetIP -VM $vm){
$d.Add("PrivateIPreserved","Yes")
}
else{
$d.Add("PrivateIPreserved","No")
}
$d.Add("PublicIP",$dep.VirtualIPs[0].Address)
if ($dep.ReservedIPName ){
$d.Add("PublicIPreserved","Yes")
}
else
{
$d.Add("PublicIPreserved","No")
}
$d.Add("Location",$svc.Location )
$info.Add($d)
}
}
}
info | select @{Name="Vmname";Expression={_["Vmname"]}},@{Name="Vmsize";Expression={_["Vmsize"]}},@{Name="OStype";Expression={_["OStype"]}},@{Name="ServiceName";Expression={_["ServiceName"]}},@{Name="PrivateIP";Expression={_["PrivateIP"]}},@{Name="PrivateIPreserved";Expression={_["PrivateIPreserved"]}},@{Name="PublicIP";Expression={_["PublicIP"]}},@{Name="PublicIPreserved";Expression={_["PublicIPreserved"]}},@{Name="Location";Expression={_[“Location”]}} |Out-GridView