使用Powershell在服务器上获取虚拟SCSI硬件

使用Powershell在服务器上获取虚拟SCSI硬件,powershell,scripting,vmware,powercli,scsi,Powershell,Scripting,Vmware,Powercli,Scsi,我正在尝试使用Powershell从几个虚拟服务器获取SCSI硬件,并获取每个特定服务器的操作系统。我已经成功地获得了我想在代码中找到的特定SCSI硬件,但是我不知道如何正确地获得每个服务器的操作系统。此外,我正在尝试将找到的所有数据发送到csv日志文件中,但是我不确定如何使powershell脚本创建多个列 这是我的代码(几乎可以正常工作,但有点问题): 当我运行这段代码时,我没有收到任何错误,但是每当我运行它时,我只会得到服务器的名称,而不是操作系统的名称。此外,我也不确定需要做什么才能使操

我正在尝试使用Powershell从几个虚拟服务器获取SCSI硬件,并获取每个特定服务器的操作系统。我已经成功地获得了我想在代码中找到的特定SCSI硬件,但是我不知道如何正确地获得每个服务器的操作系统。此外,我正在尝试将找到的所有数据发送到csv日志文件中,但是我不确定如何使powershell脚本创建多个列

这是我的代码(几乎可以正常工作,但有点问题):

当我运行这段代码时,我没有收到任何错误,但是每当我运行它时,我只会得到服务器的名称,而不是操作系统的名称。此外,我也不确定需要做什么才能使操作系统显示在与我正在创建的csv日志中的服务器名称不同的列中


要获取每个虚拟机的操作系统版本并将其输出到csv日志文件的不同列中,我需要在代码中更改什么?

get-vmguest返回一个vmguest对象。此处记录:。文档很少,但我猜OSFullName字段会给出OS版本。因此,您可以将写入输出行更改为

add-content $log "$($vm.guest.vmname) , $($vmguest.guest.OSFullName)"
你会在正确的轨道上。输出中的逗号使输出成为“逗号分隔值”。CSV文件可以选择具有标题。(有关详细信息,请参阅导入CSV/导出CSV帮助)。因此,您可能希望添加以下内容作为脚本的第二行:

add-content $log "VM Name, OS Name"  # add CSV header line

get-vmguest返回一个vmguest对象。此处记录:。文档很少,但我猜OSFullName字段会给出OS版本。因此,您可以将写入输出行更改为

add-content $log "$($vm.guest.vmname) , $($vmguest.guest.OSFullName)"
你会在正确的轨道上。输出中的逗号使输出成为“逗号分隔值”。CSV文件可以选择具有标题。(有关详细信息,请参阅导入CSV/导出CSV帮助)。因此,您可能希望添加以下内容作为脚本的第二行:

add-content $log "VM Name, OS Name"  # add CSV header line