请求协助配置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
相关产品推荐
相关产品推荐

