2017-10-11 21 views
0

私は、この1つのライナーを書くよりクリーンな方法を見たいと思っています。この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 

注:これは、1つのライナーコマンドだが、私は間隔を置いてきました読みやすいようにそれを出します。

+0

"-properties $ properties"は機能していないようです。 –

+0

'$ properties = @(" Name "、" description "、" whenCreated "、" whenChanged "、" ObjectClass "、" GroupCategory "、" GroupScope "、" SamAccountName "という文字列ではない配列でなければなりません。 、 "DistinguishedName"); ' –

関連する問題