You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell新手求助:按状态及厂商分类导出系统服务至独立文件

PowerShell 分类导出系统服务脚本

以下是整合后的完整脚本,一次性实现四类服务的分别导出,逻辑清晰且复用性强:

# 获取所有系统服务,存储到变量避免重复查询
$allServices = Get-CimInstance Win32_Service

# 定义日期后缀,统一命名格式
$dateSuffix = Get-Date -Format "yyyy-MM-dd-HH-mm"

# --- 筛选并导出 Microsoft 已启动服务 ---
$allServices | Where-Object {
    $_.Caption -match "Windows" -and $_.PathName -match "Windows" -and $_.State -eq "Running"
} | Sort-Object -Property Name -Descending |
Out-File "Microsoft_Services_Running_$dateSuffix.txt"

# --- 筛选并导出 Microsoft 已停止服务 ---
$allServices | Where-Object {
    $_.Caption -match "Windows" -and $_.PathName -match "Windows" -and $_.State -eq "Stopped"
} | Sort-Object -Property Name -Descending |
Out-File "Microsoft_Services_Stopped_$dateSuffix.txt"

# --- 筛选并导出 非Microsoft 已启动服务 ---
$allServices | Where-Object {
    -not ($_.Caption -match "Windows" -and $_.PathName -match "Windows") -and $_.State -eq "Running"
} | Sort-Object -Property Name -Descending |
Out-File "NonMicrosoft_Services_Running_$dateSuffix.txt"

# --- 筛选并导出 非Microsoft 已停止服务 ---
$allServices | Where-Object {
    -not ($_.Caption -match "Windows" -and $_.PathName -match "Windows") -and $_.State -eq "Stopped"
} | Sort-Object -Property Name -Descending |
Out-File "NonMicrosoft_Services_Stopped_$dateSuffix.txt"

关键优化说明:

  • 用Get-CimInstance替代Get-WmiObject:前者是PowerShell的现代推荐命令,性能更优且兼容性更好
  • 一次性获取所有服务到变量$allServices:避免重复查询系统,提升效率
  • 统一日期后缀:确保所有导出文件的日期格式一致,便于区分版本
  • 用-eq替代-match匹配状态:状态值是固定的(Running/Stopped),精确匹配比模糊匹配更可靠
  • 清晰的区块划分:每类服务的筛选逻辑独立,便于理解和修改

使用方法:

  1. 打开PowerShell(管理员权限可选,取决于是否需要查看所有系统服务)
  2. 将上述代码复制粘贴到窗口中,按回车执行
  3. 执行完成后,脚本所在目录会生成4个分类好的文本文件

内容的提问来源于stack exchange,提问作者Sabin Andrei Drăghici

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 12:37:49