我正在嘗試對 ActiveDirectory 計算機物件所屬的組進行排序。要獲取組串列,我使用以下代碼(在本例中為PC123):
Get-adcomputer 'PC123' -properties Memberof | Select-Object -ExpandProperty MemberOf
我得到以下輸出,正如預期的那樣,這些組沒有排序:
CN=(A) Group3,OU=OU-Path1,OU=OU-Path2,DC=domain,DC=local
CN=(A) Group1,OU=OU-Path1,OU=OU-Path2,DC=domain,DC=local
CN=(A) Group4,OU=OU-Path1,OU=OU-Path2,DC=domain,DC=local
CN=(A) Group2,OU=OU-Path1,OU=OU-Path2,DC=domain,DC=local
我嘗試使用Sort-Object進行排序:
Get-adcomputer 'PC215' -properties Memberof | Select-Object -ExpandProperty MemberOf | Sort-Object -Property Memberof
不幸的是,輸出保持不變。我試著通過改變位置來鬼混,Sort-Object -Property Memberof但這似乎不是問題。任何提示將不勝感激。
uj5u.com熱心網友回復:
你試圖進行排序的array基礎上的屬性(MemberOf)是不存在了,在這種情況下,你應該不使用-Property。
使用此物件作為示例:
$computer = [pscustomobject]@{
Name = 'PC215'
MemberOf = @(
'CN=(A) Group3,OU=OU-Path1,OU=OU-Path2,DC=domain,DC=local'
'CN=(A) Group1,OU=OU-Path1,OU=OU-Path2,DC=domain,DC=local'
'CN=(A) Group4,OU=OU-Path1,OU=OU-Path2,DC=domain,DC=local'
'CN=(A) Group2,OU=OU-Path1,OU=OU-Path2,DC=domain,DC=local'
)
}
PS /> $computer | Select-Object -Expand MemberOf | Sort-Object -Property MemberOf
CN=(A) Group3,OU=OU-Path1,OU=OU-Path2,DC=domain,DC=local
CN=(A) Group1,OU=OU-Path1,OU=OU-Path2,DC=domain,DC=local
CN=(A) Group4,OU=OU-Path1,OU=OU-Path2,DC=domain,DC=local
CN=(A) Group2,OU=OU-Path1,OU=OU-Path2,DC=domain,DC=local
PS /> $computer | Select-Object -Expand MemberOf | Sort-Object
CN=(A) Group1,OU=OU-Path1,OU=OU-Path2,DC=domain,DC=local
CN=(A) Group2,OU=OU-Path1,OU=OU-Path2,DC=domain,DC=local
CN=(A) Group3,OU=OU-Path1,OU=OU-Path2,DC=domain,DC=local
CN=(A) Group4,OU=OU-Path1,OU=OU-Path2,DC=domain,DC=local
值得從官方檔案中添加此參考,因為它與問題有關:
如果命令中不包含排序屬性,PowerShell 將使用第一個輸入物件的默認排序屬性。如果輸入物件的型別沒有默認排序屬性,PowerShell 會嘗試比較物件本身。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/392526.html
上一篇:for回圈中的多選字串以分隔檔案
