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

PowerShell远程采集多PC硬件信息异常:重复本地数据排查

问题排查与修正方案

核心问题分析

  1. CSV列名不匹配:如果你的computers.csv里的计算机名列不是Name(比如实际列名是PCName),那么$_.Name会返回空值。Get-WmiObject在未指定有效远程计算机名时,默认查询本地机器(你的域控制器)的信息,导致所有行都是重复的本地数据。
  2. 中文引号解析错误:脚本中使用了中文全角引号(如“C:\Temp\computers.csv”),PowerShell会将其视为字符串的一部分而非语法符号,可能导致参数或变量失效。
  3. 过时Cmdlet的局限性:Get-WmiObject已被官方弃用,相比之下Get-CimInstance对远程连接的支持更稳定,错误处理也更友好。

修正后的脚本

# 注意:确认computers.csv的计算机名列是Name,否则替换$_.Name为对应列名(如$_.PCName)
Import-Csv "C:\Temp\computers.csv" | ForEach-Object { 
    $computerName = $_.Name
    # 加入错误处理,跳过无法连接的机器并记录问题
    try {
        $computerSystem = Get-CimInstance Win32_ComputerSystem -ComputerName $computerName -ErrorAction Stop
        $computerOS = Get-CimInstance Win32_OperatingSystem -ComputerName $computerName -ErrorAction Stop
        $computerCPU = Get-CimInstance Win32_Processor -ComputerName $computerName -ErrorAction Stop
        $computerSN = Get-CimInstance Win32_BIOS -ComputerName $computerName -ErrorAction Stop | Select-Object -ExpandProperty SerialNumber

        [PSCustomObject]@{    
            PCName = $computerSystem.Name    
            Model  = $computerSystem.Model   
            RAM    = "{0:N2}" -f ($computerSystem.TotalPhysicalMemory / 1GB)    
            CPU    = $computerCPU.Name    
            OS     = $computerOS.Caption
            SN     = $computerSN
            User   = $computerSystem.UserName
        }
    }
    catch {
        Write-Warning "无法连接到计算机:$computerName,错误:$($_.Exception.Message)"
        # 可选:将失败信息写入结果CSV
        [PSCustomObject]@{    
            PCName = $computerName    
            Model  = "连接失败"   
            RAM    = "N/A"    
            CPU    = "N/A"    
            OS     = "N/A"
            SN     = "N/A"
            User   = "N/A"
        }
    }
} | Export-Csv "C:\Temp\system-info.csv" -NoTypeInformation -Encoding UTF8

关键注意事项

  • 核对CSV列名:打开computers.csv确认第一行的计算机名列标题,必须和脚本中$_.Name的字段名完全一致,比如列名是计算机名就改成$_.计算机名。
  • 权限与网络检查:确保域控制器的管理员账号有权限访问目标PC的CIM服务,目标PC已开启WinRM服务(域内机器默认开启),且网络连通正常。
  • 编码优化:添加-Encoding UTF8参数可避免CSV文件打开时出现乱码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 18:15:32