2017-10-11 51 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”);' –