[Windows]_[初級]_[如何不編程判斷進程是管理員模式啓動(UAC)]

場景

  1. 我們在開發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.
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章