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

如何用PowerShell对比CSV文件中的进程与本机当前运行进程?

修复PowerShell服务列表对比问题

原代码的问题点

  1. 变量拼写错误:$csvfil是笔误,应该是$csvfile;且未定义$ServiceName变量,原代码中存储服务的是$Service对象集合
  2. 对比对象类型不匹配:直接用服务对象集合和CSV对象集合对比,两者属性结构不同,Compare-Object无法正确识别匹配项
  3. 未提取核心对比字段:对比需要的是服务名称字符串,而非完整对象

修正后的代码

# 提取正在运行的服务名称,转换为字符串数组
$runningServiceNames = Get-Service | Where-Object {$_.Status -eq "Running"} | Select-Object -ExpandProperty ServiceName

# 从CSV提取标准服务名称,转换为字符串数组(假设CSV列名为Name)
$standardServiceNames = Import-CSV -Path "K:\Example\Example.csv" | Select-Object -ExpandProperty Name

# 对比两个名称列表,仅保留两边都存在的项
Compare-Object -ReferenceObject $standardServiceNames -DifferenceObject $runningServiceNames -IncludeEqual -ExcludeDifferent

关键说明

  • 用Select-Object -ExpandProperty单独提取对象中的名称字段,得到纯字符串数组,确保Compare-Object能正确对比
  • 明确指定-ReferenceObject(基准列表:CSV中的标准服务)和-DifferenceObject(待对比列表:本机运行的服务)
  • 若要查找差异项(如CSV有但本机未运行、或本机运行但CSV没有的服务),去掉-IncludeEqual -ExcludeDifferent参数即可,结果的SideIndicator列会标记差异来源:<=表示仅存在于CSV,=>表示仅存在于本机运行服务

内容的提问来源于stack exchange,提问作者Newt

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 13:30:41