Программно, какой метод может получить имя установленной версии Microsoft Office? Я перепробовал все команды Powershell, VBScript и WMI-запросы, которые я смог найти. Я просматривал реестр и файловую систему, и я не могу найти идеальный способ сбора установленной версии Office.
Самым близким методом, который мне удалось придумать, было использование запроса WMIC:
wmic product where "Name like '%Office%'" get name,version
К сожалению, это возвращает различный массив приложений, и даже если более тонко отфильтровано, оно не сообщает мне, "Office 16" - "Pro", "Professional Plus" или "Office365".
В противном случае значение реестра в
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\ClickToRun\Scenario\INSTALL\ProductstoAdd
существует по крайней мере в версии 2016 года, но не в более старых версиях. И само по себе оно не содержит понятного имени, поэтому для преобразования данных ProPlusRetail.16_en-us_x-none
в "Office 2016 Professional Plus" или O365BusinessRetail.16_en-us_x-none
в "Office 365 Business" потребуются дополнительные сценарии. 2016)»
Я надеюсь, что у кого-то есть более простая методология, чем куча операторов if/elseif/elseif в огромном сценарии.