当我尝试在某些 64 位 Windows 7 计算机上从 SysInternals 启动进程监视器时,进程无法启动。没有错误消息。我双击,什么也没发生。其他 64 位 Windows 7 计算机运行正常。有什么想法吗?
答案1
以下是我发现的内容。32 位 Procmon.exe 包含 64 位 exe 作为二进制资源。当 32 位 exe 启动时,它会将 64 位版本提取到名为 Procmon64.exe 的隐藏文件中,然后执行该文件。出于某种原因,此过程在某些 Windows 7 安装上失败。
我设法使用 Visual Studio 2010 提取 64 位 exe。
- 打开 Visual Studio 并使用文件->打开->文件...菜单打开 Procmon.exe 文件
- 在资源树中,展开“BINRES”节点
- 右键单击1308节点并选择导出...
- 将导出的资源命名为Procmon-64.exe并保存
- 运行解压的 exe
不要将提取的 exe 命名为 Procmon64.exe(没有连字符),因为 32 位 Procmon 一有机会就会尝试删除它。
如果你没有 Visual Studio,请使用 Windows 可执行资源提取器,例如 ResourcesExtract -http://www.nirsoft.net/utils/resources_extract.html
答案2
让我大吃一惊。procmon.exe 需要工作站服务运行才能启动。它使用它来枚举某些东西,如果没有它,它将悄悄地死机。
这没有在任何地方记录,而且相当虚假。
答案3
我知道这个帖子已经有一段时间了,但我最近才看到这个问题,我注意到另一个可能有帮助的因素。管理员权限。如果我以管理员身份登录并运行它,它工作正常。如果以非管理员身份登录并运行它,问题就会发生,提取的 procmon-64 显示相同的问题。
答案4
奥斯皮是 ProcMon 的替代方案。您可以尝试使用它来排除 procmon 启动故障。