必须以管理员身份运行WinObj并启用SeDebugPrivilege权限,使用2025年5月后v4.1+新版,解除锁定后展开“\”根节点才能查看Global、Sessions、BaseNamedObjects等完整命名空间。

要在Windows系统中用WinObj查看内核对象命名空间,必须以管理员身份运行工具并确保当前用户具备SeDebugPrivilege权限,否则将无法枚举进程、线程等受保护对象,界面中大量节点会显示为“Access Denied”或直接空白。
下载与准备WinObj可执行文件
从Sysinternals官网(live.sysinternals.com/tools/winobj.exe)直接下载winobj.exe,保存到本地磁盘任意路径,无需安装。该工具为单文件绿色版,不写注册表、不释放DLL,但【必须使用最新版】(2025年5月后发布的v4.1+),旧版(如SDK自带的原始WinObj)存在句柄计数错误、无法识别Session命名空间等问题。
右键winobj.exe → “属性” → 勾选“解除锁定”,避免Windows SmartScreen拦截启动。
以管理员权限运行并加载完整命名空间
右键winobj.exe → 选择“以管理员身份运行”。若跳过此步,工具仅能访问当前会话局部对象(如Local开头的互斥体),【无法看到Global、BaseNamedObjects、KernelObjects等根级命名空间】,所有系统级同步对象、服务创建的全局事件都将不可见。
启动后默认展开的是 ObjectTypes 节点,这不是目标命名空间——需手动双击左侧树形栏顶部的“”根节点,等待约2~5秒,WinObj才会逐层加载完整的对象管理器命名空间结构(含Global、Sessions、BaseNamedObjects等)。
Windows 桌面自动化技能,支持鼠标控制(移动/点击/拖拽/滚轮/截图)、键盘输入(文字输入/按键/组合键)、窗口管理(查找/聚焦/最大化/最小化/关闭/移动)、截图并发送文件。提供两种截图方式:Python pyautogui 截图(集成在自动化流程中)和 PowerShell + .NET 零依赖截图(支持区域截图和多显示器)。当用户需要自动化 Windows 桌面操作、控制鼠标键盘、管理窗口、执行 GUI 自动化任务、截图发送文件时使用。
定位并展开关键命名空间分支
方法一:直接导航至全局对象区
在左侧树形视图中依次展开:
\ → Global\ → BaseNamedObjects\
此处列出所有跨会话可见的命名对象,包括服务创建的互斥体(Mutex)、事件(Event)、信号量(Semaphore)等。例如名为“GlobalMyAppMutex”的对象在此处可见且可右键→“Permissions”查看安全描述符。
方法二:查看当前会话私有对象
展开 \ → Sessions\ → 【当前会话编号,如Sessions】 → BaseNamedObjects\
该路径下对象仅对该登录会话内进程可见,同一台机器上多个用户各自看到不同内容。若误点Sessions (会话零),将只看到服务进程对象,普通用户GUI程序对象不在其中。
方法三:快速筛选特定类型对象
点击菜单栏“Find” → 输入关键词(如“event”或“mutex”),勾选“Case sensitive”和“Search in all namespaces”,点击“Find Next”。搜索结果高亮显示匹配对象的完整路径,双击即可自动定位到对应节点。
查看对象详细属性与安全信息
第一步:在树形视图中右键任一对象(如GlobalMyServiceEvent)→ 选择“Properties”。
第二步:在弹出窗口中切换到“Security”页签 → 点击“Advanced” → 查看“Owner”、“Permissions entries”及“Effective Access”计算结果。
第三步:返回“General”页签,确认“Type”字段是否为Event/Mutex/Section等合法内核对象类型;若显示“Unknown”,说明该对象已被销毁但句柄未清理,或WinObj版本过旧无法识别新型对象(如Windows 11 24H2新增的WnfStateName对象)。
注意:修改安全描述符需额外启用SeSecurityPrivilege权限,普通管理员默认不具备,强行编辑会提示“拒绝访问”,此时应关闭窗口而非反复重试。

















