【发布时间】:2022-01-22 18:01:38
【问题描述】:
我正在运行以下代码行来循环遍历我的所有 Azure 订阅,从而将所有订阅中的 vms 保存到数组中。我可以根据 vm 名称以某种方式从该数组中查询数据,以便显示所有可用数据吗?需要将特定的 vm 数据保存在变量中,以便稍后使用和解析它。
$VM = @()
$AllSubscriptions = Get-AzSubscription
foreach ($Subscription in $AllSubscriptions) {
write-host "Count of subscriptions to loop:" $AllSubscriptions.length
Set-AzContext $Subscription.Id | Out-Null
Write-Host "Checking subscription $($Subscription.Name) for vm details"
$VM += Get-AzVM -Status
}
$VM
尝试了以下命令,但对我不起作用:
$vm -like '*server01*'
这仅显示虚拟机名称,没有其他可用信息
$vm.name -like '*server01*'
此信息显示正确,但位置可以改变,可以查询多个虚拟机。所以也许以某种方式将'6'放入变量..?
$vm[6]
【问题讨论】:
-
试试
$vm | Where-Object{$_.name -like '*nalle45*'} | Select * -
成功了!谢谢你的帮助!
标签: arrays powershell foreach