powershell脚本中的更正
我已经编写了一个powershell脚本来获取OVM和KVM驱动程序的类型和版本。我需要从一个脚本中同时获取这两个驱动程序,这样它就可以同时运行OVM和KVM机器。我正在从脚本中获取输出,但我需要修剪的帮助,以便输出正确powershell脚本中的更正,powershell,Powershell,我已经编写了一个powershell脚本来获取OVM和KVM驱动程序的类型和版本。我需要从一个脚本中同时获取这两个驱动程序,这样它就可以同时运行OVM和KVM机器。我正在从脚本中获取输出,但我需要修剪的帮助,以便输出正确 $Driver = Get-CimInstance -ClassName Win32_PnPSignedDriver | Where-Object {$_.DeviceName -like '*VirtIO*' -or $_.DeviceName -like '*Ora
$Driver = Get-CimInstance -ClassName Win32_PnPSignedDriver |
Where-Object {$_.DeviceName -like '*VirtIO*' -or $_.DeviceName -like '*Oracle VM Virtual PCI Bus*'} |
Select-Object -Property DeviceName,DriverVersion
if ($Driver -contains '*Red Hat VirtIO*')
{
Add-Content $report "<tr>"
Add-Content $report "<td bgcolor= 'White' height='30' align=center><B>14</B></td>"
Add-Content $report "<td bgcolor= 'White' height='30' align=left><B>KVM Driver Type & Version</B></td>"
Add-Content $report "<td bgcolor= 'red' height='30' align=left><B>$Driver</B></td>"
Add-Content $report "</tr>"
}
else
{
Add-Content $report "<tr>"
Add-Content $report "<td bgcolor= 'White' height='30' align=center><B>14</B></td>"
Add-Content $report "<td bgcolor= 'White' height='30' align=left><B>PV Driver Type & Version</B></td>"
Add-Content $report "<td bgcolor= 'Aquamarine' height='30' align=left><B>$Driver</B></td>"
Add-Content $report "</tr>"
}
脚本的当前输出如下所示,当它在OVM上运行时,输出显示为
**PV驱动程序类型和版本@{DeviceName=Oracle虚拟PCI总线;DriverVersion=3.4.2.1757}
输出应该是
PV驱动程序类型和版本Oracle VM虚拟PCI总线3.4.2.1757}
对于KVM,我在powershell提示符中得到的输出低于输出。但是没有在电子邮件中获得任何输出,因为电子邮件应该只获得Red Hat VirtIO以太网适配器100.74.104.13200
DeviceName驱动服务器版本
----- -------
Red Hat VirtIO SCSI控制器100.74.104.13200
Red Hat VirtIO以太网适配器100.74.104.13200
非常感谢您的帮助。在您的示例中,我建议使用here字符串以使其更易于阅读。包含字符串子表达式的注释调整
$P=@{ClassName='Win32_PnPSignedDriver'
Filter='DeviceName LIKE "%VirtIO%" OR DeviceName LIKE "%Oracle VM Virtual PCI%"'}
$Drivers = Get-CimInstance @P | Select-Object -Property DeviceName,DriverVersion
ForEach ($Driver in $Drivers)
{
$Label='PV Driver Type & Version'
If ($Driver.DeviceName -like '*Red Hat VirtIO*')
{$Label='KVM Driver Type & Version'}
Add-Content -Path $report -Value @"
<tr>
<td bgcolor='White' height='30' align=center><B>14</B></td>
<td bgcolor='White' height='30' align=left><B>$Label</B></td>
<td bgcolor='Aquamarine' height='30' align=left><B>$($Driver.DeviceName,$Driver.DriverVersion -join ' ')</B></td>
</tr>
"@
}
$Driver->$$Driver.DeviceName,$Driver.DriverVersion-join''当我运行脚本时,我在OVM机器中获得了输出,但当我从KVM机器上运行它时,我得到了一个名为PV Driver Type&Version的值,代表KVM Driver Type&Version,并且没有显示任何值,这听起来像是您的逻辑中的错误@Sandeep我编辑了文章以更正此问题。