2008-10-31 87 views
16

我已經編寫了一個msi文件,它在UI階段中提供了「每用戶」或「全部」安裝選項,現在發現安裝程序在Vista上失敗:在Vista上的Windows安裝程序中使UAC可選

  • 如果我只是重複使用的XP下運行安裝程序,Vista將觸發UAC提示,即使是「每用戶」安裝,使該安裝毫無意義
  • ,如果我在PID_WORDCOUNT的第3位關閉UAC ,Vista將不再調用UAC,所以即使用戶有權限安裝到機器註冊表中(例如),也不會發生權限提升,因此安裝失敗。

因此:如何防止安裝程序在真正不需要時調用UAC?另外,即使設置了位3,如何以編程方式請求UAC?

回答

6

不幸的是,Windows安裝程序不提供一種方式來創建可以每臺機器和每用戶安裝,但只提示UAC對每臺機器的情況下,單個封裝中。問題是可以抑制UAC提示的位存儲在SummaryInformation流中,並且在執行包時不可修改。

3
+0

請理解,我不是在談論可執行文件的UAC - 沒有setup.exe。相反,用戶直接啓動MSI文件。 – 2008-11-01 06:56:16

+0

提供的新參考... – saschabeaumont 2008-11-03 05:48:37

+0

這是一系列博客帖子的絕妙鏈接,討論用戶訪問控制(UAC)與Windows Installer(.msi)技術的關係。感謝您的鏈接,@sascha! – dthrasher 2009-09-25 18:55:29

1

我通過在我的MSI包中設置PID_WORDCOUNT的位3來關閉UAC。我可以將它安裝在「ALLUSERS」和「PER-USER」上,也可以在VISTA機器的兩種模式下寫入HKLM。 在安裝過程中,您是否有權爲特權用戶獲取UAC彈出窗口?

相關問題