我正在使用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
参数来使用不同的凭据。