簡體   English   中英

如何防止標准Windows 10用戶提升卸載程序?

[英]How to prevent uninstaller elevating for Standard Windows 10 user?

我們有一個x86 Win32桌面應用程序。 當安裝程序由標准(非管理員)用戶運行時,我們避免提升和/或顯示UAC提示,並安裝在C:\\Users\\username\\AppData\\Roaming\\...而不是在公共Program Files目錄下進行安裝。

在Windows 10上,從“ Control Panel -> Programs -> Programs and Features啟動卸載Control Panel -> Programs -> Programs and Features ,不會顯示UAC提示,並且卸載程序會在不提升的情況下運行。 這是期望的行為。 從“ Start -> Settings -> System -> Apps & features相同的卸載Start -> Settings -> System -> Apps & features ,將顯示UAC提示。

(在Opera瀏覽器安裝程序/卸載程序中可以看到相同的行為。我測試了v35.0.2066.37。)

為什么從Apps & featuresPrograms and Features啟動時,相同的卸載程序的行為會有所不同?

從應用和功能啟動卸載程序時,如何避免UAC提示?

我們的卸載程序清單包括:

<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
   <security>
      <requestedPrivileges>
         <requestedExecutionLevel level="asInvoker" />
      </requestedPrivileges>
   </security>
</trustInfo>

我試圖改變requestedExecutionLevel ,並且還試圖消除trustInfo完全,但在行為上是兩種方式沒有任何變化。

在Windows 10版本1511內部版本10586.104上測試。

編輯:只是為了澄清一下,我要處理的情況是用戶具有標准帳戶,並且不知道管理員帳戶的密碼。 如果他們嘗試卸載時看到UAC提示,則別無選擇,只能取消它,並且我們的卸載程序無法運行。

據我所知,這是“應用程序和功能”中的錯誤。 WiX人員已將作為Windows錯誤解決此問題 ,我假設他們已將正確的人員@ Microsoft通知了。 但是,此行為在Insider內部版本15042中仍然相同,因此可能無法在Creators Update之前及時解決。

如果標准用戶無法提升,則沒有可以使用的解決方法。

如果它們可以升高,則可以使用注釋中發布的重新生成替代方法 ,也可以手動加載用戶配置文件並調用RegOverridePredefKey但它們都是丑陋的RegOverridePredefKey (IMHO)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM