UAC 連結小記
Contents
Windows UAC(User Account Control,使用者帳戶控制)是從 Windows Vista 開始引入的安全機制,用來防止未經授權的程式在使用者不知情的情況下變更系統設定,是 Windows 安全防線的重要一環。
什麼是 UAC?
UAC 的核心概念是「最低權限原則」(Least Privilege Principle)。即使使用者以系統管理員帳號登入,日常操作仍以標準使用者身份執行。當程式需要變更系統設定(如安裝軟體、修改登錄檔)時,Windows 會彈出確認對話框,要求使用者明確授權。
這樣設計的好處是:即使惡意程式植入系統,也無法在使用者不知情的情況下取得管理員權限。
UAC 提示等級設定
可在「控制台 → 使用者帳戶 → 變更使用者帳戶控制設定」中調整:
| 等級 | 說明 |
|---|---|
| 最高(永遠通知) | 任何變更都會彈出 UAC 視窗,桌面會變暗 |
| 預設(推薦) | 只有程式嘗試變更系統設定時才通知 |
| 較低 | 只有程式嘗試變更設定才通知,桌面不變暗 |
| 從不通知 | 關閉 UAC(不建議) |
程式如何申請管理員權限
方法一:應用程式 Manifest 設定
在 Visual Studio 專案的 app.manifest 中設定 requestedExecutionLevel:
|
|
常用的三種等級:
asInvoker:以啟動它的程序相同權限執行(預設)highestAvailable:以目前使用者可取得的最高權限執行requireAdministrator:強制要求管理員權限,非管理員會彈出 UAC 或直接失敗
方法二:PowerShell 中請求提權
|
|
方法三:批次檔(Batch)請求提權
|
|
開發時模擬 UAC 的方法
在開發需要管理員權限的應用程式時,可以:
-
直接以系統管理員身份執行 IDE:右鍵點選 Visual Studio → 以系統管理員身份執行,這樣啟動的除錯程序也會有管理員權限。
-
使用 Windows Terminal 的管理員分頁:在 Windows Terminal 的設定中,可以針對特定設定檔開啟「以系統管理員身份執行」選項。
-
檢查程式是否以管理員身份執行(C#):
|
|