场景
- 我们在开发
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.
本文介绍在Windows系统中,如何判断一个程序是否以管理员权限启动。包括在Win7和Win10中使用任务管理器查看,以及通过taskkill命令进行判断的方法。
3万+

被折叠的 条评论
为什么被折叠?



