推荐使用 Get-Service | Where-Object {$_.Status -eq 'Running'} | Select-Object Name, DisplayName, Status, StartType | Export-Csv -Path "$env:USERPROFILE\Desktop\RunningServices.csv" -NoTypeInformation -Encoding UTF8 一键导出运行中服务为UTF8编码CSV文件。
直接用 get-service 配合 where-object 筛选状态为 running 的服务,再用 export-csv 保存即可,无需复杂逻辑。
基础一键导出命令(推荐)
在 PowerShell 中运行以下命令,会生成一个包含所有运行中服务的 CSV 文件:
Get-Service | Where-Object {$_.Status -eq 'Running'} | Select-Object Name, DisplayName, Status, StartType | Export-Csv -Path "$env:USERPROFILE\Desktop\RunningServices.csv" -NoTypeInformation -Encoding UTF8- 导出路径默认在桌面,文件名为 RunningServices.csv,支持中文显示(UTF8 编码)
-
Select-Object明确指定字段,避免导出冗余属性,表格更清晰
保存为可重复执行的脚本(.ps1 文件)
新建文本文件,粘贴以下内容,另存为 Export-RunningServices.ps1(注意扩展名):
#!/usr/bin/env powershell
$OutputPath = Join-Path $env:USERPROFILE "Desktop\RunningServices_$(Get-Date -Format 'yyyyMMdd_HHmmss').csv"
Get-Service | Where-Object {$_.Status -eq 'Running'} |
Select-Object Name, DisplayName, Status, StartType, @{Name='StartMode';Expression={$_.StartType}}, @{Name='ProcessId';Expression={$_.ServiceHandle.ProcessId}} |
Export-Csv -Path $OutputPath -NoTypeInformation -Encoding UTF8
Write-Host "✅ 已导出 $($((Get-Service | Where-Object {$_.Status -eq 'Running'}).Count)) 个运行中的服务:" -ForegroundColor Green
Write-Host "? 文件位置:$OutputPath" -ForegroundColor Green- 文件名带时间戳(如
RunningServices_20240520_143022.csv),避免覆盖 - 额外添加了
ProcessId(若服务关联进程)和别名StartMode,便于后续分析 - 执行前需确保执行策略允许本地脚本:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
导出为 Excel 友好格式(含自动列宽)
如果希望直接打开为美观的 Excel 表格,可安装 ImportExcel 模块(只需运行一次):
- 先执行:
Install-Module ImportExcel -Scope CurrentUser -Force - 替换脚本中的
Export-Csv行为:... | Export-Excel -Path $OutputPath -WorksheetName "RunningServices" -AutoSize -TableName "Services" - 生成的是 .xlsx 文件,双击即可用 Excel 打开,支持筛选、排序、冻结首行
小提示:快速查看不保存
只想临时看一眼有哪些服务在运行?直接运行:
Get-Service | Where-Object Status -eq Running | Sort-Object DisplayName | Format-Table Name, DisplayName, StartType -AutoSize- 加
Sort-Object DisplayName让结果按名称排序,更易查找 -
Format-Table -AutoSize自动适配窗口宽度,避免文字被截断











