我想仅使用命令行转储 Windows 进程的内存,而无需第三方工具。如果我们假设已获得所有必要的权限,那么这可能吗?
也许可以使用 powershell 来实现?我发现可以使用procdump
实用程序来实现,但我认为这个实用程序来自 sysinternals。
答案1
您可以使用输出转储PowerShell 函数:
Out-Minidump 将包含所有进程内存的进程转储文件写入磁盘。这类似于使用“-ma”开关运行 procdump.exe。
基本用法:
通过启用 PowerShell 脚本执行设置执行策略cmdlet。它应该是
Bypass
,Unrestricted
或RemoteSigned
。细节:如果您(或一位乐于助人的管理员)以管理员身份运行 Set-ExecutionPolicy,则将为所有用户设置该策略。(作为安全措施,我建议使用“remoteSigned”而不是“unstricted”。)
注意:在 64 位操作系统上,您需要分别为 32 位和 64 位 PowerShell 运行 Set-ExecutionPolicy。
下载
Out-Minidump.ps1
使用资源管理器中的文件属性解除阻止(其他方式)
启动 PowerShell 并点源函数来自
Out-Minidump.ps1
(注意第一个点):
. c:\path\to\Out-Minidump.ps1
- 现在您实际上可以使用以下语法创建进程的转储:
Get-Process 'notepad.exe' | Out-Minidump -DumpFilePath C:\temp
- 要获取帮助,请运行以下命令:
Get-Help Out-Minidump -Full