Я начал с этого, по рекомендации друга
Get-WmiObject win32_product | ft name, version
Но потом я нашел это , что заставляет меня задуматься.Небольшое исследование привело меня к этому
wmic product where "Name='Revit 2018'" get name,version
, который работает, насколько собраны данные.И да, я ищу другую программу в этом примере.в любом случае, когда у меня была хорошая информация с использованием WMIC, я пытался перевести данные в переменную, чтобы получить только номер версии, но форматирование данных я никогда не видел раньше.Я надеялся на простое решение, такое как
$object = wmic product where "Name='Revit 2018'" get name,version
$object.version
Но только в результате получается массив из 6 элементов, и только один кажется реальной строкой данных, и это одна строка, а не два свойства.И мне действительно интересно, является ли старая утилита командной строки правильным ответом здесь.Если это действительно лучший способ сделать это, есть ли хитрость для преобразования необработанных данных во что-то большее, PowerShelly?И если это не лучший способ получить эту информацию, что это?Это страшная ссылка, или Get-WmiObject win32_product действительно безопасен?И если так, есть ли способ фильтрации по определенному имени, чтобы ускорить процесс?И действительно, Get-WmiObject не работает так, как я ожидал, так как
$object = Get-WmiObject win32_product | ft name, version
foreach ($item in $object) {
Write-Host "$($item.version)"
}
не работает так, как ожидалось.
РЕДАКТИРОВАТЬ: Кажется, что работает, как ожидалось,что является прогрессом.
$version = (Get-WmiObject win32_product -filter:"Name = 'Revit 2018'" | Select-Object -property:*).version
Write-Host "$version!"
Я полагаю, что вопрос действительно, это безопасный и последовательный подход, или есть лучший?