我尝试在一个表中获取所有已安装cd的vm,但我得到的输出是逐行的,如:
VM1 \ vm1_isopath \ VM2 \ vm2_isopath \
是否可以获取包含2列,VM名称和ISOPath的1个表中的所有信息?
我的代码是:
$VMs=Get-VM
ForEach ( $vm in $VMs)
{
$VMmount=Get-CDDrive -VM $vm
if ($VMmount.IsoPath)
{
$vm | select Name
$VMmount.IsoPath
}
}
谢谢。
答案 0 :(得分:0)
我将您的代码扩展到:
$VMs=Get-VM
$vmInfos = @()
ForEach ( $vm in $VMs)
{
$VMmount=Get-CDDrive -VM $vm
if ($VMmount.IsoPath)
{
# Store needed info in hashtable
$info = @{}
$info.name = ($vm | select -ExpandProperty Name)
$info.IsoPath = $VMmount.IsoPath
# Convert hashtable to custom object
$object = New-Object –TypeName PSObject –Prop $info
# Add to array
$vmInfos += $object
}
}
# Dump collected infos
$vmInfos | format-table -autosize

希望有所帮助