Назад | Перейти на главную страницу

WMI вместо команды WMIC, чтобы узнать версию приложения?

Я использую wmic, чтобы найти текущую версию внутреннего приложения. Моя команда выглядит так:

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

Я никогда не использовал wmi, но я читал о людях, которые говорили, что им проще пользоваться, чем wmic. Я думаю, что мое использование довольно простое, но как мне использовать для этого wmi и будет ли это быстрее, чем wmic? (wmic у меня работает очень медленно)

PowerShell

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

я прочел плохие вещи об использовании Win32_Product. Я не знаю подробностей об этом, так что, возможно, в этом случае все в порядке, но после прочтения я пришел к следующему этот блог и спрашивая этот вопрос:

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

Чтобы эмулировать команду wmic, которую вы разместили с помощью WMI, откройте приглашение PowerShell и введите:

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

Ты можешь использовать { $_.Name -like "*application*" } для лучшего соответствия, если необходимо.

Это также можно запустить на удаленных машинах и / или использовать другие учетные данные, добавив -ComputerName и -Credential параметры.