我正在寻找最安全的方法来检测给定工作站上安装的Microsoft Office的哪些组件(如果有)。我意识到这也可以被视为Serverfault的一个问题,但由于我将在脚本中使用它,并且这里的许多人更熟悉Office的内部工作,我认为这将是最好的问题。
我查看了卸载密钥,但它显示了系统上实际不存在的组件。我认为这与Office在首次访问时安装组件的方式有关。我不喜欢寻找可执行文件,因为路径理论上可以改变。
答案 0 :(得分:1)
考虑到32位和64位Windows安装之间的差异,我最终测试了特定的注册表项。我正在关注以下注册表位置/值:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Office\12.0\
- 64位Windows安装上的基本Office12密钥HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\12.0\
- 32位Windows安装上的基本Office12位置Office base path
\Outlook\InstallRoot\Path
- 表示Outlook安装路径的关键Office base path
\Registration\{90120000-0012-0000-0000-0000000FF1CE}
- Office 12标准GUID的密钥Office base path
\Registration\{90120000-0011-0000-0000-0000000FF1CE}
- Office 12 Professional Plus GUID的密钥通过这些地点,我能够:
我没有尝试过比这更精细。
答案 1 :(得分:0)
如果你真的认为你不能依赖exe或dll的路径,我会在安装各种组件的快照之前和之后区分注册表(存在许多工具)。然而,根据我的经验,我发现有必要测试是否存在用于检测Office安装组件的dll和其他文件(例如,我必须测试VBA dll以检测是否安装了可视化基本模块)。文件的路径只能改变很多。您只需要了解32位和64位修补,以及winxp和win7路径。