windows - 如果 OpenProcess() 因 ACCESS_DENIED 而失败,如何从 pid 获取进程文件名?

标签 windows security winapi

我正在尝试从其 pid 中获取进程名称。用户以管理员身份运行,启用 UAC,但未提升权限。

一些系统进程,如 services.exe,以这样的方式设置它们的安全性 OpenProcess(PROCESS_QUERY_INFORMATION ... 失败并返回 ERROR_ACCESS_DENIED。与 PROCESS_QUERY_LIMITED_INFORMATION 访问权限相同的结果。但是,我可以看到 Process Explorer 可以 至少列出所有这些进程,以及它们的 pid 和文件名(运行时作为非提升的管理员)。

我的问题是,鉴于非提升的管理员无法遵循 OpenProcess() + GetProcessImageFileName() 的通常路线,我该如何做同样的事情(从 pid 获取文件名)?

最佳答案

您是否尝试过使用由 CreateToolhelp32Snapshot() 检索的句柄来处理 Process32First() 和 Process32Next()?它不会为您提供完整路径,但至少应该让您获得文件名。

关于windows - 如果 OpenProcess() 因 ACCESS_DENIED 而失败,如何从 pid 获取进程文件名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9146498/

相关文章:

c# - 我想从使用 c# 运行的 Windows 框中通过 ssh 运行命令

ios - 将 SecKey 从 iOS 导出到 watchOS

c - fwprintf 将回车符放在换行符之前

c++ - RegGetValue 在当前用户下找不到名字?

windows - 如何在 Rust 中使用 SetWindowsHookEx?

windows - Windows音频断断续续/滞后全屏Flash/HTML5修复

windows - 尝试克隆 git repo 后 Win 控制台挂起

powershell - 有没有办法使用 Powershell 切换 TLS 设置?

php - CURL vs allow_url_fopen 获取图片哪个更安全?

c++ - 有没有办法得到标准 :string's buffer