webdevqa.jp.net

ネットグループの出力を1つの列に並べ替える

コマンド net group "Groupname" /domain > c:\temp\users.txtは、テキストファイルに次の出力を生成します。

Group name     GroupABC
Comment        XXXXXXXXXXXXXXXXXXXXX

Members

--------------------------------------------------------------------
MemberA                  MemberB                  MemberC 
MemberD                  MemberE                  MemberF 
MemberG                  MemberH                  MemberI
The command completed successfully.

ファイルの最後にある不要なヘッダーとコメントを削除し、次のように出力を順序付きリストに含める必要があります。

MemberA
MemberB
MemberC
MemberD
MemberE
MemberF
...

ファイルに出力してヘッダーを手動で削除せずにこれを行う簡単な方法はありますか?不要な間隔の並べ替えと削除にご協力いただければ幸いです。

1
Aligator3000

私が考えることができるこれを行う最も簡単な方法は、ActiveDirectoryコマンドレットを使用してPowerShellで行うことです。ドメインコントローラーまたはRSATがインストールされているマシンのいずれかで、以下を実行します

Get-ADGroupMember GroupName | select name | out-file GroupName.txt
0
Patrick

ADコマンドレットがない場合は、Powershellでnetの結果をフォーマットできます。

# store the results in an array.
$results = net group "Groupname" /domain

# the size of the header and footer is always the same. select the data between these sections.
$results = $results[8..($results.Length-3)]

# replace the empty spaces with a comma. join on the comma, getting rid of blank lines.
foreach($result in $results) { 
    ($result -replace '\s+',',') -split ',' | ? { $_ } >> 'C:\temp\users.txt'
}
1
root