将每个 Hyper-V 虚拟机的详细信息导出到 CSV

问题描述 投票:0回答:1

一直在尝试使用 powershell,但在构建自己的脚本方面仍然是新手。

尝试寻找一个 powershell 脚本来提取 Hyper-V 管理器下每个 Hyper-V 虚拟机的具体详细信息。

需要一个可以提取以下信息的脚本:

-虚拟机/计算机名称

-操作系统版本

-所有可用的 IDE 和 SCSI 虚拟磁盘及其位置和大小

-网络适配器详细信息,包括其 VLAN 信息

-总 CPU

-总内存/RAM

看到一些脚本和知识库显示在单独的报告中提取以下请求的信息,但想看看是否可以获取 1 个 CSV 下的所有详细信息。

powershell hyper-v
1个回答
0
投票

这是一些可以工作的伪代码

$table = [System.Collections.ArrayList]::new()
foreach($VM in $VMs)
{
   $newRow = New-Object -TypeName psobject

   $newRow | Add-Member -NotePropertyName 'VM Name' -NotePropertyValue $VM.Name

   #get OS version
   $newRow | Add-Member -NotePropertyName 'OS Version' -NotePropertyValue $OS.version

   #get OS version
   $newRow | Add-Member -NotePropertyName 'OS Version' -NotePropertyValue $OS.version

   $diskInfo = @(get disk info)
   for($i = 0; i < $diskInfo.Count; $i++)
   {
       #add each disk info
       $newRow | Add-Member -NotePropertyName "Disk $i Size" -NotePropertyValue $diskInfo[$i].Size
   }

   $networkAdapter = #get disk info
   $newRow | Add-Member -NotePropertyName 'VLan Info' -NotePropertyValue $networkAdapter
 
   $cpu = #get cpu info
   $newRow | Add-Member -NotePropertyName 'CPU Info' -NotePropertyValue $cpu

   $ram = #get ram info
   $newRow | Add-Member -NotePropertyName 'RAM' -NotePropertyValue $ram

   $table.Add($newRow) | Out-Null
}
$table | Format-List
$table | Export-Table -Path 'c:\temp\test.csv'
© www.soinside.com 2019 - 2024. All rights reserved.