人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Active Directoryのユーザーが所属するグループを、自動的にテキスト形式で抽出する方法を教えてください。ユーザー数、OU数共に手作業ではできないほど多いので。よろしくお願いします。バージョンは 5.2.3790.1830です。

●質問者: pi12345
●カテゴリ:ビジネス・経営 コンピュータ
✍キーワード:Active Directory グループ テキスト バージョン ユーザー
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● mj99
●60ポイント ベストアンサー

http://blog.so-net.ne.jp/nakagami/2005-05-23

VBSでテキスト化できそうです。


----

下記のスクリプトを保存して、コマンドラインで

CSCript hoge.vbs > hoge.txt

と、すれば、hoge.txtにユーザと所属するグループの組み合わせがすべて出力されます。


----

スクリプト実行にあたって、ディレクトリ(CN=Users,CN=Builtin、それぞれのOUなど)にアクセスする資格が必要です。

グループのネストには対応していません。


----

以下スクリプト

const dm = "office.domain.co.jp" ' ドメイン名を指定する(コンピュータ名ではない)

main()

Sub main
 Set cn = CreateObject("ADODB.Connection")
 Set rs = CreateObject("ADODB.Recordset")

 cn.Provider = "ADsDSOObject"
 cn.Open "Active Directory Provider"

 strSql = "select name,memberof from 'LDAP://" & dm &"' WHERE objectClass = 'user'"
 rs.Open strSql, cn
 Do Until rs.EOF
 If Not IsNull(rs("memberof")) Then
 For Each gp In rs("memberof").Value
 WScript.Echo rs("name") & "," & GetOneName(cn, gp)
 Next
 Else
 WScript.Echo rs("name") & ",なし"
 End If
 rs.MoveNext
 Loop
End Sub

Function GetOneName(cn, dn)
 Set rs = CreateObject("ADODB.Recordset")
 strSql = "select name from 'LDAP://" & dn & "'"
 rs.Open strSql, cn
 GetOneName = rs(0)
End Function
◎質問者からの返答

思った通りの結果が得られました。ありがとうございます。


2 ● hayashi_rice3
●10ポイント

http://www.microsoft.com/japan/msdn/security/guidance/secmod16.m...

◎質問者からの返答

私にはちょっと難解でした。。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ