PowerShell 进程 & 服务管理 Cmdlet 完全实战表(2025 最新版)
这些命令在 Windows、Linux、macOS 全平台通用(PowerShell 7+)
| 任务 | 推荐 Cmdlet + 最常用参数 | 实战一键命令(直接复制) |
|---|---|---|
| 列出所有进程 | Get-Process(别名:ps、gps) | Get-Process | Sort CPU -Desc | Select -First 15 |
| 按条件精确查找进程 | Get-Process -Name chrome* | Get-Process -Name code,msedge -ErrorAction SilentlyContinue |
| 查看进程详细信息 | Get-Process -Id 1234 -FileVersionInfo | (Get-Process code)[0] | Select * |
| 杀进程(推荐三种方式) | 1. Stop-Process(最常用)2. $proc.Kill()3. taskkill | Stop-Process -Name notepad -ForceGet-Process chrome | Stop-Process -Force |
| 安全杀进程(先提示) | Stop-Process -WhatIf → 先预览-Confirm → 每次确认 | Get-Process *edge* | Stop-Process -WhatIf |
| 启动程序 | Start-Process(别名:start、saps) | Start-Process notepadStart-Process "C:\Tools\Sysinternals\procexp.exe" -Verb RunAs |
| 以管理员启动 | -Verb RunAs | Start-Process powershell -Verb RunAs |
| 等待进程结束 | -Wait 参数 | Start-Process "D:\安装.exe" -Wait |
| 查看服务列表 | Get-Service | Get-Service | Where Status -eq Running | Sort DisplayName |
| 启动 / 停止 / 重启服务 | Start-Service, Stop-Service, Restart-Service | Restart-Service Spooler -Force # 重启打印服务 |
| 设置服务启动类型 | Set-Service -StartupType Automatic|Manual|Disabled | Set-Service -Name wuauserv -StartupType Manual |
| 远程管理服务(神器) | Get-Service, Restart-Service 直接加 -ComputerName | Restart-Service -Name BITS -ComputerName PC01,PC02,Server01 -Force |
| 查看进程对应的服务 | Get-CimInstance Win32_Service | Where ProcessId -eq 1234 | Get-Process -Id 1234 | Select ProcessName, @{Name="服务名";Expression={(Get-CimInstance Win32_Service -Filter "ProcessId=$($_.Id)").Name}} |
| 列出占用某端口的进程 | Get-NetTCPConnection + Get-Process | Get-NetTCPConnection -LocalPort 3389 | Select OwningProcess | Get-Process -Id {$_.OwningProcess} |
| 一键结束所有吃内存大户 | 经典脚本 | “`powershell |
| 监控进程启动(防病毒/入侵) | Register-CimIndicationEvent 或简单轮询 | powershell\nwhile($true){ Get-Process | Where {$_.StartTime -gt (Get-Date).AddSeconds(-5)} | Select Name,Id,StartTime; Start-Sleep 1 }\n |
10 个运维/安全/办公必备“一键脚本”
# 1. 一键杀掉所有 Chrome 并重新启动(解决卡死)
Get-Process chrome -ErrorAction SilentlyContinue | Stop-Process -Force
Start-Process "C:\Program Files\Google\Chrome\Application\chrome.exe"
# 2. 检查并重启卡死的打印服务
if ((Get-Service Spooler).Status -ne 'Running') { Restart-Service Spooler -Force }
# 3. 找出 1 分钟内新启动的进程(常用于查木马)
$time = (Get-Date).AddMinutes(-1)
Get-Process | Where StartTime -gt $time | Select Name,Id,StartTime,Path
# 4. 批量远程重启 100 台电脑的服务
$pcs = Get-Content C:\pcs.txt
Invoke-Command -ComputerName $pcs -ScriptBlock { Restart-Service lanmanserver -Force }
# 5. 关闭所有不必要的后台服务(省电省资源)
"XboxGipSvc","XblAuthManager","XblGameSave","XboxNetApiSvc" |
ForEach-Object { Stop-Service $_ -Force; Set-Service $_ -StartupType Disabled }
# 6. 查看当前最占 CPU 的前 10 个进程(实时)
while($true) { cls; Get-Process | Sort CPU -Desc | Select -First 10 Name,CPU,ID; Start-Sleep 2 }
# 7. 结束所有占用 3389 端口的进程(远程桌面卡死时)
Get-NetTCPConnection -LocalPort 3389 | ForEach-Object { Stop-Process -Id $_.OwningProcess -Force }
掌握这些,你已经可以在任何 Windows 环境里“秒杀”进程和服务问题,比 99% 的运维都快!
下一步你想要:
- “进程注入检测 + 内存占用分析”高级技巧?
- “写一个图形化进程管理工具(Out-GridView)”?
- 还是“Linux 下的进程管理对比”(kill、pkill、systemctl)?
随时说,我继续给你更硬核的!