2017-10-11 66 views
0

我期待看到寫這個班輪的更乾淨的方式是什麼。如何更有效地編寫此PowerShell查詢?

Get-AdGroup -Filter * -Properties Name,Description,whenCreated,whenChanged,ObjectClass,GroupCategory,GroupScope,SamAccountName,DistinguishedName | 
    Sort-Object Name | 
    Select-Object Name,Description,whenCreated,whenChanged,ObjectClass,GroupCategory,GroupScope,SamAccountName,DistinguishedName | 
    Select *,@{Name="Members";Expression={Get-ADGroupMember $_.Name | %{$_.SamAccountName+';'}}} | 
    Export-Csv -Path .\Group.csv -NoTypeInformation 

回答

1

因此,他們都寫全兩次分配的屬性名稱給一個變量,並結合Select-Objectselect在一起:

$properties = "Name,Description,whenCreated,whenChanged,ObjectClass,GroupCategory,GroupScope,SamAccountName,DistinguishedName"; 
Get-AdGroup -filter * -properties $properties | 
    Select-Object $properties,@{Name="Members";Expression={Get-ADGroupMember $_.Name | %{$_.SamAccountName+';'}}} | 
    Sort-Object Name | 
    Export-Csv -Path .\Group.csv -NoTypeInformation 

注:這是一個襯墊的命令,但我已經間隔它出於可讀性。

+0

「-properties $ properties」似乎不起作用。 –

+0

應該是一個數組而不是字符串,oops,試試:'$ properties = @(「Name」,「Description」,「whenCreated」,「whenChanged」,「ObjectClass」,「GroupCategory」,「GroupScope」,「SamAccountName」 「的distinguishedName」);' –