此操作的目的是从win32_PnPSignedDriver获取显示驱动程序版本。我被困在如何过滤掉它上。
我从How do I parse data from a Get-WMIObject query into a string?那里得到了一些想法,并对其进行了修改。但是,输出显示的是驱动程序版本信息的完整列表,但我只希望打印一份显示驱动程序版本。
是否想知道是否有使用Powershell的方法?我有一个基于代码的Powershell代码,它需要显示版本才能继续。
我使用的命令是
get-wmiobject -class win32_PnPSignedDriver | select deviceclass -expand DriverVersion
编辑:
预期输出应仅为其intel图形驱动程序的值,例如:10.18.15.4248 我需要将此值解析为一个变量,并将其与验证脚本中的已知固定值进行比较
答案 0 :(得分:1)
通过基于DeviceClass过滤WMI结果来创建显示驱动程序的集合。从过滤的结果中选择描述和驱动程序版本。像这样
# Get all drivers that have display as deviceclass
$ds = gwmi -class win32_PnPSignedDriver | ? { $_.DeviceClass -eq "DISPLAY" }
# Select description and driver's version
$ds | select description,driverversion
description driverversion
----------- -------------
NVIDIA Quadro P500 24.21.13.9836
Intel(R) UHD Graphics 620 25.20.100.6472
编辑:要仅获取版本字符串而没有任何多余的内容,请像这样用foreach
或%
处理结果,
# An empty array for the results
$versions = @()
# Add each version as new array element
$ds | % { $versions += $_.driverversion }
# Print results
$versions
24.21.13.9836
25.20.100.6472
# Access the 1st element
$versions[0]
24.21.13.9836
# See the result type
$versions[0].gettype()
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True String System.Object