場景
- 我們在開發
Windows
程序時, 安裝程序後一般會以admin
方式啓動程序, 這時候程序的權限一般是admin
權限。可如果重新打開程序時, 程序就是asInvoker
的權限,即所屬用戶的Normal
權限. 程序在某些邏輯上admin
和非admin
是有區別的,比如響應WM_DROPFILES
消息在admin
下是失效的. 或者由於某些原因我想看這個程序是否管理員模式啓動的,如何快速查看呢?
說明
Windows
自帶的任務管理器可以查看到:
Win7
打開任務管理器, 在進程(Processes)
的Tab
頁,選擇菜單->視圖(view)->選擇列(Select Columns)->勾選UAC虛擬化(UAC Virtualization)
圖1:如果在UAC虛擬化(UAC Virtualization)
列是已禁止(Disable)
就是正常模式啓動的,如果顯示的是Not Allowed
或者不顯示內容的就是管理員模式啓動的程序.
Win10
打開任務管理器, 在詳細信息(Detail)
的Tab
頁,鼠標在表頭名稱(Name)
右鍵->選擇列(Select Columns)->勾選特權(Elevated)
,在這列裏的內容如果顯示的是是
,那麼這個進程就是管理員模式啓動的.
圖2
可以通過taskkill來判斷
如果通過在進入命令行並執行 taskkill /f /pid 進程ID
來判斷進程是否是管理員啓動.
出現以下錯誤結束不了基本上就是管理員啓動的了:
C:\Users\apple>taskkill /f /pid 4048
ERROR: The process with PID 4048 could not be terminated.
Reason: Access is denied.