Я использую 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
параметры.