以编程方式,什么是可以获取已安装的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语句更简单。