如何用PowerShell获取设备管理器中驱动文件详情的文件版本?
获取设备管理器中驱动文件的实际版本
你需要的是驱动文件本身的版本,而非驱动程序的版本(这两者常存在差异)。之前的命令返回的是驱动程序版本,所以和设备管理器里的文件版本不匹配。可以通过以下步骤获取目标文件版本:
步骤1:定位Matrox设备的驱动文件路径
首先找到对应设备的驱动安装路径和关联文件:
# 筛选Matrox设备并获取驱动相关信息 $matroxDevice = Get-CimInstance Win32_PnPSignedDriver | Where-Object {$_.DeviceName -like '*Matrox*'} # 拆分驱动文件列表(部分设备会关联多个驱动文件) $driverFileNames = $matroxDevice.DriverFileName -split ';'
步骤2:查询每个驱动文件的版本
遍历驱动文件路径,获取文件的实际版本信息:
foreach ($fileName in $driverFileNames) { # 拼接完整文件路径 $fullPath = Join-Path -Path $matroxDevice.DriverPath -ChildPath $fileName if (Test-Path -Path $fullPath) { $fileInfo = Get-Item -Path $fullPath # 输出文件名称、版本和完整路径 [PSCustomObject]@{ 文件名 = $fileInfo.Name 文件版本 = $fileInfo.VersionInfo.FileVersion 完整路径 = $fileInfo.FullName } } }
为什么之前的命令无效?
Get-CimInstance Win32_SystemDriver:仅针对以系统服务形式运行的驱动,Matrox显示驱动不属于此类,因此无法被检索到。Win32_PnPSignedDriver的DriverVersion:返回的是驱动程序包的版本,而非单个驱动文件的版本,所以和设备管理器中「驱动文件详情」里的版本不一致。Get-WindowsDriver:仅识别通过Windows更新或标准安装流程注册的驱动,OEM定制的Matrox驱动可能未被纳入检索范围。
内容的提问来源于stack exchange,提问作者Keith
相关产品推荐
相关产品推荐

