2010-05-06 117 views
7

我有一個應用程序將部署爲MSI包(在WiX中創作)。是否可以使用有限權限安裝到Program Files中?

我決定是否指定安裝程序所需的elevatedlimited權限。

除了程序文件下的默認安裝位置,該應用程序不包括任何需要提升特權的內容。

現在的問題:

  • 如果我指定提升權限,則用戶通過UAC在安裝過程中的管理員密碼提示。這不是必需的,並防止安裝非管理員用戶。

  • 如果我指定有限的權限,則向用戶顯示一個對話框,選擇與Program Files是默認安裝位置。如果他們不更改安裝位置(95%的最終用戶可能不會),則安裝程序將失敗並顯示一條消息,告訴他們應該聯繫管理員或以管理員身份運行該應用程序。如果他們以管理員身份啓動安裝程序,那麼他們可以毫無問題地安裝到Program Files中 - 但大多數用戶不會知道如何以管理員身份啓動安裝程序。

我可以將默認安裝位置設置爲例如C:\ Company name \ Program \,但這對我來說似乎並不標準,大多數用戶不會喜歡這樣(他們可能習慣於安裝到Program Files中)。

如何解決在有限的用戶帳戶下安裝應用程序的問題?

回答

6

您建議的替代位置,直接離開C驅動器,可能還需要提升權限。在Windows 7之前,我建議使用早期的自定義操作來更改有限安裝的默認位置。將它從Privileged(或可能是AdminUser)屬性中除去,驗證您是否需要爲您的案例設置MSIUSEREALADMINDETECTION,並使用類似[LocalAppDataFolder]Company\Product之類的內容。不幸的是,這種方法會導致所有用戶難以安裝的軟件包,因爲您必須預先升級,並且在有限的情況下,他們仍然可以選擇需要提升的目標位置。他們必須預先提升,因爲包裹必須標記爲不提升。

如果您只能定位Windows 7及更高版本,則可以有條件地設置MSIINSTALLPERUSER以覆蓋安裝位置和高度要求,而是按用戶安裝。在這種情況下,可以詢問用戶是要爲所有用戶安裝(需要提升)還是僅爲他自己安裝。該包可標記爲標高,並且設置MSIINSTALLPERUSER將覆蓋該標記並跳過UAC提示。

+1

不,替代位置不需要提升特權。我目前默認安裝到C:\ Company name \ Product中,並且MSI安裝程序使用有限權限構建,沒有UAC出現,也沒有任何錯誤對話框。 – Marek 2010-05-07 11:26:00

+0

這聽起來像是一個自定義環境,但如果您知道它將安裝在您的產品的任何位置,那很好。答案的其餘部分適用;僅僅忽略有限的特權位置建議。 – 2010-05-09 14:48:37

-2

以管理員身份運行命令提示符(cmd)。

然後使用msiexec命令執行msi文件。

+0

我不能要求最終用戶這樣做 – Marek 2010-05-08 08:44:00

+0

你可以要求用戶這樣做...至於安裝任何軟件應具有管理員權限。所以他們要求他這樣做沒有錯。或者你可以讓用戶使用管理員憑證登錄,然後安裝軟件 – 2010-05-09 07:59:51

3

您的軟件以普通的用戶權限運行可能更重要 - 我看到您提到的這不是問題。

要求管理員權限安裝某些東西沒有任何錯誤。

因爲出於安全原因,用戶將擁有自己的詳細信息,或者該軟件將由其公司的IT部門安裝。

相關問題