新聞速報

        

2017年11月7日 星期二

自訂應用程式的 UAC 執行層級



asInvoker:應用程式的權限層級相當於啟動應用程式的處理序,例如 A 程序啟動 B 程序,B 的層級就與 A 的層級相同,如果由使用者手動啟動,則等於使用者的帳戶權限層級。

highestAvailable:應用程式的權限層級會與從使用者帳戶層級和啟動它的程序中挑出最高的層級,例如使用者為管理者,有個一般權限的 A 啟動了 B,則 B 的層級會是管理者層級,因為管理者層級較高。或是使用者為一般帳戶執行了一個有數位簽章的安裝檔,則此安裝檔在安裝完畢後所啟動的應用程式會是超過使用者 帳戶的權限層級。

requireAdministrator:開啟此應用程式時一律 要求要獲得管理者帳戶認證,一般用戶開啟則跳 帳號/密碼 認證,管理者開啟即跳此為管理者權限詢問是否開啟並允許修改電腦設定。


測試動作:拷貝文件(從C盤考到C盤)
測試記錄:
縱行:用戶
橫行:編譯時設置
asInvoker highestAvailable requireAdministrator
Adminitrator(Adminitrators) 成功複製,無提示 成功複製,無提示 成功複製,無提示
TestUser(Adminitrators) 失敗複製,無提示 成功複製,有提示 成功複製,有提示
TestUser(Users) 失敗複製,無提示 失敗複製,無提示 提示輸入管理員密碼



highestAvailable 與 requireAdministrator 的區別是在 users組的環境下,執行可執行程序,requireAdministrator會要求輸入管理員賬號的密碼,highestAvailable則會獲取當前用戶最高權限


在 Adminitrator(Adminitrators) 的用戶環境下,無論把用戶賬戶設置設置到任何級別,運行asInvoker 或者 highestAvailable 或者 requireAdministrator 都不會有任何提示

拷貝文件如果是拷貝到非C盤的地方,則 asInvoker 和 highestAvailable 都會拷貝成功,且無提示,requireAdministrator則提示輸入管理員賬戶的密碼,沒有密碼則拷貝失敗

沒有留言:

張貼留言