在Windows 10中排查程序卡顿、崩溃或依赖异常时,需实时确认进程加载的DLL:可通过资源监视器筛选PID后查看“.dll”句柄,或用Process Explorer以管理员身份查看“DLLs”标签页(红色项提示路径无效),亦可用PowerShell命令枚举模块名、路径及基址。

在Windows 10中排查程序卡顿、崩溃或依赖异常时,需要实时确认哪些DLL文件正被当前进程加载并运行,而非仅查看磁盘上存在的静态文件。
使用任务管理器查看进程加载的DLL
右键任务栏→选择“任务管理器”→切换到“详细信息”选项卡→右键任意列标题→勾选“命令行”(便于识别目标进程)→找到待查进程,如“notepad.exe”或你的程序名。
右键该进程→选择“转到服务”可快速定位关联服务;但要查DLL,需先记下PID(进程标识符),然后进入下一步。
按 Ctrl+Shift+Esc 打开任务管理器→顶部菜单栏点击“性能”→左下角点“打开资源监视器”→切换到“CPU”选项卡→在“关联的句柄”搜索框中输入进程PID(例如 1234)→回车后列表将过滤出该进程打开的所有句柄。
在结果中筛选路径含 .dll 的条目,即可看到正在被加载的动态库全路径,例如 C:\Windows\System32\user32.dll 或 E:\MyApp\plugin_x64.dll。注意:此处列出的是已映射进内存的模块,不是磁盘文件列表。
用Process Explorer深度查看DLL加载状态
下载微软官方工具 Process Explorer(无需安装,解压即用),以管理员身份运行。
方法一:直接双击目标进程→弹出属性窗口→切换到“DLLs”标签页→完整列出所有已加载DLL及其基址、大小、公司名称、版本号。
方法二:在主界面按 Ctrl+F 输入进程名(如 chrome.exe)→定位后双击→同样进入“DLLs”页;若某DLL显示为红色,说明其路径无效或已被卸载,但句柄残留——这是典型“DLL劫持”或卸载失败信号。
【关键提醒】 默认情况下Process Explorer不显示符号信息,若需看到导出函数名(如 LoadLibraryA),需提前配置符号服务器:Options → Configure Symbols → 勾选“Microsoft Symbol Server”并设置本地缓存路径。
命令行方式:使用PowerShell实时枚举
以管理员身份启动 PowerShell,执行以下命令:
Get-Process | Where-Object {$_.ProcessName -eq "explorer"} | ForEach-Object { $_.Modules | Select-Object ProcessName,ModuleName,FileName,BaseAddress | Format-Table -AutoSize }
将 "explorer" 替换为你想查的进程名(不带.exe),例如 "chrome" 或 "MyApp";该命令输出包含模块名、磁盘路径、加载基址,适合批量检查或写入日志。
若提示“访问被拒绝”,说明目标进程启用了保护(如Protected Process Light),此时只能查看自己启动的进程或提升权限重试。
执行后立即获得结构化结果,每行对应一个已加载DLL,FileName字段为空值即表示该模块为内存注入或无文件DLL(fileless DLL),需重点警惕。


















