列出属于特定子网的所有 azure 虚拟机
Listing all azure vm belonging to particular subnet
我想列出特定子网中的所有 azure 虚拟机。我不知道如何为此编写 PowerShell 脚本。我正在尝试以下操作,但没有提供所需的输出。我想要的输出——所有属于 IP 为 10.87.00.01...10.87.99.99 的子网的虚拟机都应该列在我的文本文件中 subnet_VM.txt
$tgtIP = "10.87.xx.xx"
$vms = Get-AzureVM
foreach($vm in $vms)
{
$vmIP = (Get-AzureVM -ServiceName $vm.ServiceName –Name $vm.Name).IpAddress
foreach($ip in $vmIP)
{
if($ip -like '$tgtIP*')
{
$vm.Name > C:\AZURE\subnet_VM.txt
}
}
}
如果我在这方面得到帮助,那将非常有帮助。提前致谢。
请注意,在 Azure 中,子网有一个名称。因此,更优雅的解决方案是使用子网名称而不是原始 IP 范围。由于这是您最终要实现的目标,因此我也包括该解决方案。
$vms = Get-AzureVM
$tgtSubnet = "Subnet-1"
foreach($vm in $vms)
{
$thisVM = Get-AzureVM -ServiceName $vm.ServiceName –Name $vm.Name
$thisVMSubnet = Get-AzureSubnet -VM $thisVM
if ($thisVMSubnet -eq $tgtSubnet)
{
$output =$output + "`r`n" + $thisVM.Name
}
}
$output | Out-File C:\Azure\subnet_VM.txt
我想列出特定子网中的所有 azure 虚拟机。我不知道如何为此编写 PowerShell 脚本。我正在尝试以下操作,但没有提供所需的输出。我想要的输出——所有属于 IP 为 10.87.00.01...10.87.99.99 的子网的虚拟机都应该列在我的文本文件中 subnet_VM.txt
$tgtIP = "10.87.xx.xx"
$vms = Get-AzureVM
foreach($vm in $vms)
{
$vmIP = (Get-AzureVM -ServiceName $vm.ServiceName –Name $vm.Name).IpAddress
foreach($ip in $vmIP)
{
if($ip -like '$tgtIP*')
{
$vm.Name > C:\AZURE\subnet_VM.txt
}
}
}
如果我在这方面得到帮助,那将非常有帮助。提前致谢。
请注意,在 Azure 中,子网有一个名称。因此,更优雅的解决方案是使用子网名称而不是原始 IP 范围。由于这是您最终要实现的目标,因此我也包括该解决方案。
$vms = Get-AzureVM
$tgtSubnet = "Subnet-1"
foreach($vm in $vms)
{
$thisVM = Get-AzureVM -ServiceName $vm.ServiceName –Name $vm.Name
$thisVMSubnet = Get-AzureSubnet -VM $thisVM
if ($thisVMSubnet -eq $tgtSubnet)
{
$output =$output + "`r`n" + $thisVM.Name
}
}
$output | Out-File C:\Azure\subnet_VM.txt