在 PowerShell 中,进程管理是一个重要的任务,涉及到启动、停止、查询和管理进程。以下是一些常用的命令和技巧,帮助你在 PowerShell 中进行进程管理。

1 . 获取进程信息

1.1 Get-Process

Get-Process 命令用于获取当前系统上运行的进程信息。

  • 基本用法

    1
    Get-Process
  • 按名称过滤

    1
    Get-Process -Name notepad
  • 按 ID 过滤

    1
    Get-Process -Id 1234
  • 详细信息

    1
    Get-Process -Name notepad | Select-Object Id, Name, CPU, WS

2 . 启动进程

2.1 Start-Process

Start-Process 命令用于启动新的进程。

  • 基本用法

    1
    Start-Process notepad.exe
  • 带参数启动

    1
    Start-Process notepad.exe -ArgumentList "C:\example.txt"
  • 后台启动

    1
    Start-Process notepad.exe -NoNewWindow -RedirectStandardOutput output.txt

3 . 停止进程

3.1 Stop-Process

Stop-Process 命令用于终止指定的进程。

  • 按名称终止

    1
    Stop-Process -Name notepad
  • 按 ID 终止

    1
    Stop-Process -Id 1234
  • 强制终止

    1
    Stop-Process -Id 1234 -Force

4 . 暂停和恢复进程

4.1 Suspend-ProcessResume-Process

Suspend-ProcessResume-Process 命令用于暂停和恢复进程。

  • 暂停进程

    1
    Suspend-Process -Id 1234
  • 恢复进程

    1
    Resume-Process -Id 1234

5 . 查询进程模块

5.1 Get-Process 结合 Select-Object

你可以使用 Get-Process 结合 Select-Object 来查看进程加载的模块。

  • 查看特定进程的模块
    1
    Get-Process -Name notepad | Select-Object -ExpandProperty Modules

6 . 监控进程

6.1 Get-Counter

Get-Counter 命令用于监控系统性能计数器,包括进程相关的计数器。

  • 监控 CPU 使用率
    1
    Get-Counter -Counter "\Process(notepad)\% Processor Time" -SampleInterval 1 -MaxSamples 10

7 . 其他有用命令

7.1 Wait-Process

Wait-Process 命令用于等待指定的进程终止。

  • 等待进程终止
    1
    Start-Process notepad.exe -PassThru | Wait-Process

8 示例脚本

以下是一个示例脚本,展示了如何启动一个进程,等待其完成,然后获取其退出代码:

1
2
3
4
$process = Start-Process notepad.exe -PassThru
$process.WaitForExit()
$exitCode = $process.ExitCode
Write-Host "Notepad exited with code: $exitCode"