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

PowerShell获取AD计算机:CanonicalNameOfObject显示异常及分支筛选求助

解决方案

1. 修复CanonicalNameOfObject属性导出异常问题

CanonicalNameOfObject是多值属性,直接导出会显示类型名,需要先提取实际值。根据你的AD环境场景选择处理方式:

单值场景(多数环境下该属性为单值)

Get-ADComputer -Filter * -Property CanonicalNameOfObject,OperatingSystem,OperatingSystemVersion,ipv4Address | 
  Select-Object Name,
                @{Name='CanonicalName'; Expression={$_.CanonicalNameOfObject[0]}},
                OperatingSystem,
                OperatingSystemVersion,
                ipv4Address | 
  Export-CSV c:\ADcomputerslist.csv -NoTypeInformation -Encoding UTF8

多值场景(若存在多个值,用分号拼接)

Get-ADComputer -Filter * -Property CanonicalNameOfObject,OperatingSystem,OperatingSystemVersion,ipv4Address | 
  Select-Object Name,
                @{Name='CanonicalNames'; Expression={$_.CanonicalNameOfObject -join ';'}},
                OperatingSystem,
                OperatingSystemVersion,
                ipv4Address | 
  Export-CSV c:\ADcomputerslist.csv -NoTypeInformation -Encoding UTF8

2. 限定仅获取特定分支的计算机

用-SearchBase参数指定目标OU的LDAP路径(比如OU=上海分公司,DC=corp,DC=example,DC=com),仅返回该OU及其子OU下的计算机:

# 替换为你的目标OU的LDAP路径
$targetOU = "OU=上海分公司,DC=corp,DC=example,DC=com"

Get-ADComputer -Filter * -SearchBase $targetOU -Property CanonicalNameOfObject,OperatingSystem,OperatingSystemVersion,ipv4Address | 
  Select-Object Name,
                @{Name='CanonicalName'; Expression={$_.CanonicalNameOfObject[0]}},
                OperatingSystem,
                OperatingSystemVersion,
                ipv4Address | 
  Export-CSV c:\ADcomputerslist.csv -NoTypeInformation -Encoding UTF8

额外提示

  • 不要用-Property *,会加载大量无用属性拖慢执行速度,明确指定需要的属性更高效
  • 若不确定目标OU的LDAP路径,可执行Get-ADOrganizationalUnit -Filter "Name -like '*上海*'"查询

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 07:20:33