2013-07-04 63 views
0

安裝期間,用戶在安裝界面中選擇了「當前用戶」選項而不是「所有用戶」。我想要由其他用戶強制刪除該安裝並使用「所有用戶」選項安裝升級後的MSI。我發現,刪除某些註冊表項將實現我的目標。如何查找哪個用戶安裝了MSI

現在,我想找到哪個用戶安裝了特定的MSI,以便我可以識別正確的註冊表路徑。有沒有可用的選項?

問候, 馬德漢

+1

** **多個用戶可能已經安裝的應用和選擇「當前用戶」選項。 –

+0

我同意有關安裝相同MSI的多個用戶的情況。我想找到所有MSI不存在的用戶。對於特定情況,我們只想支持「所有用戶」,並希望在遷移期間刪除單個用戶安裝。 –

+4

您正在查找的信息只存在於每個用戶的配置文件中。 (HKCU註冊表)。您可以嘗試步穿HKEY_USERS \ xxxx \ SOFTWARE \ Classes \ Installer,但在某些漫遊配置文件方案中,數據不會在那裏供您查看。有時像這樣的情況需要在登錄時運行實用程序,因爲這是確保數據在範圍內唯一可用的時間。 –

回答

3

我不知道一個簡單的方法來做到這一點(如查詢一些註冊表項來),但有一個名爲MsiEnumProductsEx

Windows安裝程序API的功能它需要您指定用戶SID,如果您使用SID「s-1-1-0」,它會爲所有用戶查詢所有安裝的產品。

雖然我不確定這是如何表現漫遊配置文件。

如果這並不爲你工作的意見建議的解決方案(通過所有用戶步行或觸發登錄東西)都恕我直言,以正確的方式

+1

我使用下面的帖子來獲取上述API的託管API。 http://stackoverflow.com/questions/17274073/getting-list-of-installed-products-c-sharp –