我已經構建了一個使用嵌入自定義託管(C#)操作的WiX 3.6的Windows Installer程序包。WiX,UAC,託管的自定義操作和模擬
在此階段,在安裝需要
- 安裝程序使用特定的本地管理員帳戶運行(在此情況下,在SharePoint安裝帳戶,這是一個本地管理員)
- 用戶帳戶控制被禁用
確實沒有辦法繞過要求1,因爲託管操作只能在SharePoint安裝程序帳戶的上下文中運行時執行某些步驟。
我想刪除需求#2並讓安裝程序正常運行即使啓用UAC。
我已經研究了相當廣泛的問題,但仍然無法使其工作。我在我的軟件包中設置了InstallScope =「perMachine」,這似乎正確地提示了UAC提升,但安裝程序仍然失敗並出現臭名昭着的2869錯誤。
主要問題是我的自定義操作配置爲Impersonate =「yes」,因爲它必須在當前用戶的上下文中運行,而不是本地管理員帳戶。當我在線搜索時,幾乎所有「修復」都指向Impersonate =「no」在自定義操作中,但這不是我的選擇。
因此,我的問題是:有沒有辦法使用當前用戶的身份運行自定義託管操作,而無需完全禁用UAC?
也喜歡這個答案。 –
我正在嘗試做同樣的事情。我試圖解決它的方式是創建一個具有管理員權限的app.manifest所需的EXE(http://stackoverflow.com/questions/3915370/impersonating-in-net-using-process-start-and -uac/3915492#3915492)。然後,我將該EXE稱爲模擬用戶的類型2延遲自定義操作(http://stackoverflow.com/a/8828776/1203288)。但是,這可以在我的機器上運行,但我在其他機器上遇到了問題:只要require admin位於app.manifest中,它甚至不會在其他機器上運行。希望這給你一個好的開始。 – bsara