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

请求协助配置PowerShell命令获取AD计算机多属性(名称、序列号等)

解决AD DS域内计算机信息查询问题

首先要明确:AD默认不会存储计算机的制造商、型号、序列号这类硬件信息,所以分两种场景处理:

场景1:AD中已同步硬件信息(通过组策略/第三方工具)

如果你的域环境已经通过组策略扩展或其他工具将硬件信息写入AD计算机对象属性,直接修改Get-ADComputer的-Properties参数即可获取这些属性:

Get-ADComputer -Filter { Name -like 'MS*' } -Properties manufacturer, model, serialNumber, operatingSystem, operatingSystemVersion |
Select-Object Name, 
              @{Name='制造商'; Expression={$_.manufacturer}},
              @{Name='电脑型号'; Expression={$_.model}},
              @{Name='序列号'; Expression={$_.serialNumber}},
              @{Name='Windows版本'; Expression={
                  # 把版本号转换成友好名称,可按需补充更多映射
                  switch ($_.operatingSystemVersion) {
                      '10.0.19044' { 'Windows 10 Version 21H2' }
                      '10.0.19045' { 'Windows 10 Version 22H2' }
                      '10.0.22621' { 'Windows 11 Version 22H2' }
                      default { "$($_.operatingSystem) $($_.operatingSystemVersion)" }
                  }
              }} |
Format-Table -AutoSize

场景2:AD未存储硬件信息(需要远程查询)

如果AD里没有这些属性,就得通过WMI/CIM远程连接每台计算机获取硬件和系统信息,注意你需要有目标计算机的管理员权限,且目标机器WMI服务正常、防火墙允许WMI通信:

# 先获取AD中符合条件的计算机列表
$targetComputers = Get-ADComputer -Filter { Name -like 'MS*' }

# 遍历查询每台机器的信息
$results = foreach ($pc in $targetComputers) {
    try {
        # 获取计算机系统信息(制造商、型号)
        $sysInfo = Get-CimInstance Win32_ComputerSystem -ComputerName $pc.Name -ErrorAction Stop
        # 获取BIOS信息(序列号)
        $biosInfo = Get-CimInstance Win32_BIOS -ComputerName $pc.Name -ErrorAction Stop
        # 获取操作系统信息
        $osInfo = Get-CimInstance Win32_OperatingSystem -ComputerName $pc.Name -ErrorAction Stop

        # 构造结果对象
        [PSCustomObject]@{
            名称          = $pc.Name
            制造商        = $sysInfo.Manufacturer
            电脑型号      = $sysInfo.Model
            序列号        = $biosInfo.SerialNumber
            Windows版本   = switch -Wildcard ($osInfo.Version) {
                '10.0.19044' { 'Windows 10 Version 21H2' }
                '10.0.19045' { 'Windows 10 Version 22H2' }
                '10.0.2262*' { 'Windows 11 Version 22H2' }
                default      = $osInfo.Caption
            }
        }
    }
    catch {
        # 处理无法连接的异常
        [PSCustomObject]@{
            名称          = $pc.Name
            制造商        = "连接失败: $($_.Exception.Message)"
            电脑型号      = ""
            序列号        = ""
            Windows版本   = ""
        }
    }
}

# 输出格式化结果
$results | Format-Table -AutoSize

注意事项

  • 场景1的前提是AD中已存在对应属性,否则这些字段会显示为空。
  • 场景2中,如果批量查询大量计算机,建议给Get-CimInstance添加-ThrottleLimit参数控制并发数(比如-ThrottleLimit 10),避免网络压力过大。
  • 版本映射规则可以根据微软官方的Windows版本号对照表补充完善。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 22:39:19