2012-01-18 6 views
1

ドメイン上のすべてのユーザーアカウントを表示するレポートを生成する方法(VB ScriptまたはPowerShellを推奨)を探しています彼らはメンバーです。私は、これは次の形式でExcelスプレッドシートにエクスポートすることを希望すべてのドメインユーザーとそのグループメンバシップ(Active Directory)を表示する方法

USERNAME1 |グループ1、グループ2、グループ3、グループ4、グループ5等
ユーザーネーム2 |グループ1、グループ2、グループ3、グループ4、グループ5など

私はADのためにクエストPowerShellのコマンドで遊んで、次のを思い付いたされています:

get-qaduser * -sizelimit 0 | select Name,MemberOf | export-csv report.csv 

しかし、これはで表示されます出力ファイルとして:System.String[]はグループ名でなければなりません

Username1 | System.String[] 
Username2 | System.String[] 
Username3 | System.String[] 

どうすればよいですか?このスクリプトのような

答えて

6

はこれを試してみてください、あなたはグループ名に参加する必要があります。

$memberOf = @{n='MemberOf';e={ ($_.MemberOf -replace '^CN=([^,]+).+$','$1') -join ';' }} 

Get-QADUser -SizeLimit 0 | ` 
Select-Object Name,DN,SamAccountName,$memberOf | ` 
Export-Csv report.csv 
+0

うわー、いいショット! +1 – JPBlanc

+0

ありがとうShay。絶対的な扱いをして、セミコロンで区切って列を区切って区切ります。スクリプトを逆にして、グループやグループのメンバーを次のように表示する方法はありますか? グループ1 | User1、User2、User3など など? – Matt

+0

はい、これを試してください:Get-QADGroup -sl 0 |名前、DN、@ {n = 'メンバー'; e = {($ _ | Get-QADGroupmember | select -expand name) }} –

0

いろいろ書い(未テスト):

$users = get-qaduser * -sizelimit 0 

$a = @() 

foreach ($user in $users) 
{ $al = New-Object System.Object 

$al | Add-member -type Noteproperty -name Accountame $user.samaccountname 
$al | add-member -type Noteproperty -name Groups $user.memberof 

$a += $al 

} 

$a | export-csv report.csv 
+0

感謝を試すことができ、グループが表示される場所の代わりに "System.String []"が返されます。私はShayが働いているスクリプトを提供していると信じています。 – Matt

0

あなたはクリスチャン

get-qaduser * -sizelimit 0 | select -Property @{N="my";E={$_.name}}, -ExpandProperty MemberOf | export-csv report.csv 
+0

これを試して受信しました:Select-Object:引数 'MemberOf'を受け入れる位置パラメータが見つかりません。行:1文字:36。あなたの助けてくれてありがとうが、私はシェイがこれを行う方法を提供していると信じています:-) – Matt

関連する問題