如何在 Windows Server 2008 中转储进程

如何在 Windows Server 2008 中转储进程

我想仅使用命令行转储 Windows 进程的内存,而无需第三方工具。如果我们假设已获得所有必要的权限,那么这可能吗?

也许可以使用 powershell 来实现?我发现可以使用procdump实用程序来实现,但我认为这个实用程序来自 sysinternals。

答案1

您可以使用输出转储PowerShell 函数:

Out-Minidump 将包含所有进程内存的进程转储文件写入磁盘。这类似于使用“-ma”开关运行 procdump.exe。

基本用法:

  • 通过启用 PowerShell 脚本执行设置执行策略cmdlet。它应该是BypassUnrestrictedRemoteSigned细节

    如果您(或一位乐于助人的管理员)以管理员身份运行 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

相关内容