FC2ブログ
MSLabo: MCP取得や実務用に自宅でWindowsサーバを検証・自習してます&たまに日記
自宅サーバにて、Windows 2008, MSCS, Active Directory, Exchange, Sharepoint, System Center(SCCM, SCOM, FCS), SQL Serverの自習、検証をした内容を記載していきたいと思います。
スポンサーサイト
--年--月--日 (--) --:-- | 編集
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
親グループにネストされたグループに所属するユーザを検索、一覧にするVBScript
2010年02月28日 (日) 16:36 | 編集
元ネタはこれ
List All Members of a Grouo, Including Members of Nested Groups

そのままコピペしても52行目でエラーが出て動かなかったため、修正
&結果をcsvとしたかったため、出力をカンマ区切りにしたものが以下

.vbsで保存して、「cscript ファイル名.vbs 調査したいGroup名」
で使います。グループに大量にグループがネストされていたり、何階層にもなっている場合に便利



Option Explicit

'Get all member of a group INCLUDING members from ALL NESTED groups.
'Simply call the script with the samAccountName of the group.
'If the group name contains spaces it should be ENCLOSED IN QUOTES,
'IE scriptName.vbs "DOMAIN ADMINS"

Dim objGroup


'VERIFY A GROUP NAME WAS PASSED
If wscript.arguments.count <> 1 Then
wscript.echo "NO GROUP PASSED"
wscript.echo "Usage: scriptName "
wscript.quit
End If


'BIND TO THE GORUP
Set objGroup = getGroup(wscript.Arguments(0))


'ENUMERATE THE GROUPS MEMBERS
enumMembers objGroup, ""



Function getGroup(strGroupName)
Dim objConn, objRecSet, strQueryString, objRootDSE, strQueryFrom
Const adsOpenStatic = 3


Set objRootDSE = GetObject("LDAP://RootDSE")
strQueryFrom = "LDAP://" & objRootDSE.get("defaultNamingContext")

Set objConn = wscript.CreateObject("ADODB.Connection")
objConn.Provider = "ADsDSOObject"
objConn.Open

strQueryString = "SELECT AdsPath FROM '" & strQueryFrom & "' " & _
"WHERE samAccountName = '" & strGroupName & "'"

Set objRecSet = wscript.CreateObject("ADODB.Recordset")

objRecSet.Open strQueryString, objConn, adsOpenStatic

If objRecSet.recordCount = 1 Then
Set getGroup = GetObject(objRecSet("AdsPath"))
Else
wscript.echo ucase(strGroupName) & " was not found in the domain. (" & objRootDSE.get("defaultNamingContext") & ")"
wscript.quit
End If
End Function


Sub enumMembers(byRef objGroup, strInheritedFrom)
Dim objMember

For Each objMember In objGroup.Members
If lcase(objMember.class) = "group" Then
enumMembers objMember, objMember.samAccountName
Else
If objMember.displayname <> "" Then
If strInheritedFrom = "" Then
wscript.echo objMember.displayname
Else
wscript.echo objMember.samAccountName &","& objMember.displayname & "," & _
strInheritedFrom & ")"
End If
Else
If strInheritedFrom = "" Then
wscript.echo objMember.samAccountName
Else
wscript.echo objMember.samAccountName & " (From NESTED GROUP: " & _
strInheritedFrom & ")"
End If
End If
End If

Next
End Sub

スポンサーサイト
ほんとに載ってました
2010年02月25日 (木) 11:28 | 編集
ほんとに載せてもらいました

Microsoft Technet Flash ニュースレター -Volume 372- 2010 年 2 月 24 日

マイクロソフトの安納さん、ありがとうございました!
今まで約10年、Windows Serverメインで仕事してきましたが、
これからもいろいろな技術を勉強していかないとっていう励みになります。

個人的に興味のあるWin-RM, Exchange 2010, Sharepoint 2010あたりを今後。
& SCOM, SCCM 2007の自習をしているので、MCP受験に関する記事をこれから
記載していければと思っています。(あとADもですね(祝10周年!))

今後もみなさま何卒よろしくお願いします m(_ _)m
Microsoft Technet Flashのニュースレターに載ってしまうことに(笑)
2010年02月21日 (日) 17:16 | 編集
ブログ経由でMSのエヴァンジェリスト安納さんからの
突然のお誘いで、なんとTechnet Flashのニュースレターに載ってしまうことに
なりました

私のようなもんでいいのか?と辞退を考えましたが、エンジニア人生最後の思い出にと
お返事させてもらいました。

2/23号らしいので、ちょいと楽しみに待っています

私がうんぬんはおいといて、役立ち情報がメールで送られてくるので
購読していない方はよろしければ、以下
Technet Flash 購読ページ
長らくネットワークに繋げてなかったPCがドメインから抜ける?(ドメインログオンできない)場合の対処法
2010年02月04日 (木) 10:15 | 編集
長期間倉庫なんかで保管してて、久々に使ったらドメインログオンできないと

http://support.microsoft.com/kb/216393/ja

そんなときはこれらしい
セキュリティチャネルの期限が切れる(30日と思ってたけど→60日?)からリセットせんといかんと
Powered by . / Template by sukechan.
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。