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

如何用PowerShell对比两个CSV文件找出匹配的PC名称?

PowerShell 双PC列表匹配实现代码

需求背景

  • 需对比待核查PC列表与Active Directory导出的全量PC条目,输出两个列表的相同内容
  • 仅校验格式为PC+数字的条目,其余格式无需处理

前置已有代码

AD PC列表导出命令

$ADcomputer = get-adcomputer -Filter "name -Like '*'" -Searchbase "DC=**,DC=******,DC=**"
($ADcomputer).name | Out-file "C:\temp\ADComputer.csv"

待核查List.csv格式示例

PC020682
PC020891
PC020953
PC021999

现有导入代码

$Path = "C:\temp"
$ComputerList = Import-Csv -Path "$($path)\ADcomputer.csv"
$ComputerAchiv = Import-Csv -Path "$($path)\List.csv"

完整可运行实现代码

注意:原有导出的ADComputer.csv为纯文本每行一个PC名,无CSV表头,因此使用Get-Content读取更适配,避免Import-Csv丢失首行数据

# 配置文件存储目录
$Path = "C:\temp"

# 读取两个列表并过滤仅保留PC+数字格式的有效条目
$ADValidPCs = Get-Content -Path "$Path\ADComputer.csv" | Where-Object { $_ -match '^PC\d+$' }
$CheckValidPCs = Get-Content -Path "$Path\List.csv" | Where-Object { $_ -match '^PC\d+$' }

# 存储匹配结果的数组
$SamePCs = @()

# foreach循环遍历待核查列表完成匹配
foreach ($pc in $CheckValidPCs) {
    if ($ADValidPCs -contains $pc) {
        $SamePCs += $pc
    }
}

# 输出结果:可直接在控制台查看,也可取消下方注释导出为文件
$SamePCs
# $SamePCs | Out-File -FilePath "$Path\两列表相同PC条目.csv" -Encoding UTF8

功能说明

  • 自动过滤两个列表中不符合PC+数字格式的条目,无需手动清理原始数据
  • 匹配结果默认输出到控制台,可根据需要修改为导出到本地文件

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 20:36:02