我正在尋找最安全的方式來檢測Microsoft Office的哪些組件(如果有的話)安裝在給定的工作站上。我意識到這也可以看作是Serverfault的一個問題,但由於我將在腳本中使用它,並且這裏很多人更熟悉Office的內部工作,所以我認爲這將是最好的問題。檢測Microsoft Office安裝組件的安全方法是什麼?
我看了卸載關鍵,但它表明,實際上並不存在於系統上的組件。我相信這與Office在首次訪問時安裝組件的方式有關。我不喜歡尋找可執行文件,因爲路徑理論上可能會改變。
我正在尋找最安全的方式來檢測Microsoft Office的哪些組件(如果有的話)安裝在給定的工作站上。我意識到這也可以看作是Serverfault的一個問題,但由於我將在腳本中使用它,並且這裏很多人更熟悉Office的內部工作,所以我認爲這將是最好的問題。檢測Microsoft Office安裝組件的安全方法是什麼?
我看了卸載關鍵,但它表明,實際上並不存在於系統上的組件。我相信這與Office在首次訪問時安裝組件的方式有關。我不喜歡尋找可執行文件,因爲路徑理論上可能會改變。
我結束了對特定的註冊表項的測試,考慮到32位和64位Windows安裝之間的差異。我關注到以下注冊表位置/值:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Office\12.0\
在64位Windows -The基地OFFICE12鍵安裝HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\12.0\
在32位Windows -The基地OFFICE12位置安裝Office base path
\Outlook\InstallRoot\Path
-Key標誌着Outlook安裝路徑Office base path
\Registration\{90120000-0012-0000-0000-0000000FF1CE}
-Key爲Office 12的標準GUIDOffice base path
\Registration\{90120000-0011-0000-0000-0000000FF1CE}
-Key爲Office 12的專業加GUID與這些位置我已經能夠:
我沒有試圖得到任何比這更精細。
如果你真的認爲你不能依賴路徑的exe或dll的,我會diff的註冊表(許多工具,這存在)的前和安裝各種組件的快照之後。然而,根據我的經驗,我發現有必要測試是否存在用於檢測Office安裝組件的DLL文件和其他文件(例如,我必須測試VBA dll以檢測是否安裝了可視化基本模塊)。文件的路徑只能改變很多。您只需要瞭解32位和64位修補以及winxp和win7路徑。
你假設安裝應用程序時採取的默認值。我有足夠大和不同的環境,Office可能已經安裝在輔助存儲捲上,或者其他一些廢話。我想確保這個變量是會計的。 – bshacklett
我明白了。目前還不清楚,「組件」是指Outlook和Office。我使用組件來表示Office安裝的組件,例如他們是否安裝了Office with VBA,Office PIA等。我過去所做的是檢查HKEY_CLASSES_ROOT \ Word.Application \ CurVer以安裝安裝的版本尋找像\ Office \ 12.0 \ – JohnZaj
這樣的硬編碼路徑我在思考MSI術語。不過,感謝大家對HKCR鑰匙的關注。這似乎很有用。 – bshacklett
我只是看了一下,它看起來像HKCR是16位兼容的傳統配置單元。 [HKLM | HKCU] \ SOFTWARE \ Classes看起來是新的規範位置。 – bshacklett