【发布时间】:2022-01-24 03:05:27
【问题描述】:
我想从 AD 获取计算机列表,其中包含计算机所属的组。到目前为止相当简单:
Get-adcomputer -filter * -properties Memberof | Sort CanonicalName | select-object -Property Name, Memberof
工作正常,但问题是组(属性Memberof 的成员)未排序,并且对象之间的排序不一致。
Name Memberof
---- --------
PC001 {CN=(A) Group3,OU=OU-Path,DC=domain,DC=local, CN=(A) Group1,OU=OU-Path,DC=domain,DC=local, CN=(A) Group4,OU=OU-Path,DC=domain,DC=local, CN=(A) Group2,OU=OU-Path,DC=domain,DC=local}
PC002 {CN=(A) Group4,OU=OU-Path,DC=domain,DC=local, CN=(A) Group3,OU=OU-Path,DC=domain,DC=local, CN=(A) Group2,OU=OU-Path,DC=domain,DC=local, CN=(A) Group3,OU=OU-Path,DC=domain,DC=local}
PC003 ...
我试图根据我的previous question 使用-ExpandProperty MemberOf 来解决问题,例如像这样的东西:
Get-adcomputer -filter * -properties Memberof | Sort CanonicalName | select-object -Property Name -ExpandProperty MemberOf | Sort-Object -Property MemberOf
我并不感到惊讶,但没有奏效。以这种方式可能吗,还是我必须将 Name 和 MemberOf 读出到单独的变量中,然后再将它们组合起来(以及如何确保它们“对齐”)?什么是可行的方法?
【问题讨论】:
-
CanonicalName是 1 个元素,MemberOf是一个数组,这样排序对象的目的是什么? -
@SantiagoSquarzon 用于手动比较,如果未对组进行排序,则无法进行,请注意,我不使用 CanonicalName 作为输出,它仅用于对列表进行排序
-
附带说明,是的,我确实使用
| Out-File "C:\TEMP\AD_export.txt" -Width 2000将其输出到文件中,但这只是为了避免像在控制台中那样剪切组列表。
标签: powershell active-directory