WMI而不是WMIC命令来查找应用程序版本?

我正在使用wmic来查找内部应用程序的当前版本。 我的命令是这样的:

wmic product where "name='Application Name'" get version 

我从来没有用过wmi,但是我读过关于人们认为比wmic更容易使用的说法。 我觉得我的用法是相当简单的,但是我怎样才能使用wmi,比wmic快呢? (对我来说,wmic非常慢)

电源shell

 Get-WMIObject -Query "SELECT Version FROM Win32_Product WHERE Name='SomeName'" 

我读过关于使用Win32_Product 坏的事情 。 我不知道这个细节,所以在这种情况下也许没问题,但是在阅读这个博客并且问了这个问题之后,我最终select了以下内容:

 $regpath = 'HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall' $version = Get-ItemProperty "$regpath\*" | Where-Object { $_.DisplayName -eq 'Application Name' } | Select-Object -Expand DisplayVersion 

要模拟使用WMI发布的wmic命令,请打开PowerShell提示符并input:

Get-WmiObject -Class "Win32_Product" | Where-Object { $_.Name -eq "Application Name" } | select Name,Version

如果需要,可以使用{ $_.Name -like "*application*" }更好地匹配。

这也可以针对远程计算机运行和/或通过添加-ComputerName-Credential参数来使用不同的凭据。