A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
サンプルスクリプトを作ってみました。
cscript ファイル名.vbs
で実行してください。
---
Option Explicit
' CScriptで実行してください
Dim WshShell
Dim strEnvDnsDomain, arrItem, baseDN, i
Dim objConnection, objCommand, objRecordSet, strCommandText
Dim strUserName, strUserDN, objUser, strEntry, strInfo
Dim gidCache(5,2), intPGID, frag, cachePoint
' DNSドメインを取得しbaseDNを設定
Set WshShell = CreateObject("WScript.Shell")
strEnvDnsDomain = WshShell.ExpandEnvironmentStrings("%USERDNSDOMAIN%")
If Left(strEnvDnsDomain, 1) = "%" Then
WScript.Echo "操作しているPCはActive Directoryドメインに参加していないようです。" & vbNewLine & "終了します。"
WScript.Quit
End If
arrItem = Split(strEnvDnsDomain, ".")
baseDN = ""
For i = 0 to UBound(arrItem)
If i = 0 Then
baseDN = "DC=" & arrItem(i)
Else
baseDN = baseDN & ",DC=" & arrItem(i)
End If
Next
' DCに接続
Set objConnection = CreateObject("ADODB.Connection")
Set objCommand = CreateObject("ADODB.Command")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"
objCommand.ActiveConnection = objConnection
strCommandText = "<LDAP://" & baseDN & ">;" & _
"(&(objectClass=user)(!objectClass=computer));" & _
"distinguishedName,sAMAccountName;" & _
"subtree"
objCommand.CommandText = strCommandText
Set objRecordSet = objCommand.Execute
' gidCache 構築
For i = 0 To 4
gidCache(i, 0) = -1
gidCache(i, 1) = vbNullString
Next
cachePoint = 0
WScript.Echo "--- BEGIN ---"
Do Until objRecordset.EOF
strUserName = objRecordset.Fields("sAMAccountName")
strUserDN = objRecordset.Fields("distinguishedName")
strInfo = strUserName
Set objUser = GetObject("LDAP://" & strUserDN )
objUser.GetInfo
intPGID = objUser.Get("primaryGroupID")
frag = 0
For i = 0 To cachePoint
If gidCache(i, 0) = intPGID Then
frag = 1
strInfo = strInfo & vbNewLine & vbTab & gidCache(i, 1)
End If
Next
If frag = 0 Then
gidCache(cachePoint, 0) = intPGID
gidCache(cachePoint, 1) = GetPrimaryGroup(intPGID)
strInfo = strInfo & vbNewLine & vbTab & gidCache(cachePoint, 1)
cachePoint = cachePoint + 1
If cachePoint >= 5 Then cachePoint = 0
End If
On Error Resume Next
arrItem = objUser.GetEx("memberOf")
If Err.Number = 0 Then
For Each strEntry In arrItem
strInfo = strInfo & vbNewLine & vbTab & strEntry
Next
End If
On Error Goto 0
Set objUser = Nothing
objRecordset.MoveNext
WScript.Echo strInfo
Loop
objConnection.Close
Set objCommand = Nothing
WScript.Echo "--- END ---"
WScript.Quit
' プライマリグループのDNを取得する
Function GetPrimaryGroup(PGID)
Dim strPrimaryPath, objRS, count
Dim ADCon, ADCom, strComText
Set ADCon = CreateObject("ADODB.Connection")
Set ADCom = CreateObject("ADODB.Command")
ADCon.Provider = "ADsDSOObject"
ADCon.Open "Active Directory Provider"
ADCom.ActiveConnection = objConnection
strComText = "<LDAP://" & baseDN & ">;" & _
"(&(objectClass=group));" & _
"distinguishedName,primaryGroupToken;" & _
"subtree"
ADCom.CommandText = strComText
Set objRS = ADCom.Execute
strPrimaryPath = ""
count = 0
Do Until objRS.EOF
strPrimaryPath = objRS.Fields("distinguishedName")
If objRS.Fields("primaryGroupToken") = PGID Then
count = count + 1
Exit Do
End If
objRS.MoveNext
Loop
If count < 1 Then strPrimaryPath = "Error: Primary Group Not Found"
GetPrimaryGroup = strPrimaryPath
End Function
---
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ネットワーク ログオン サービ...
-
2000のグループについて
-
ワークステーションからのログ...
-
mac.comからme.comにしますか?
-
ActiveDirectoryでPCの入れ替え...
-
NetBios名のユニークの重複につ...
-
ネットワーク管理者にアクセス...
-
AdministratorsとDomain Admins...
-
wwwとwww2の違い
-
Outlookに「同期に失敗」という...
-
thunderbirdの受信トレイが開け...
-
アカウントにログインすると必...
-
移動プロファイルを固定プロフ...
-
Gmailで受け取ると迷惑メールに...
-
起動時に Windows Home Editio...
-
法人ドメイン取得に関する?
-
Windowsへのログオン画面を消し...
-
エクセル(VBA)でWindowsのサイ...
-
ユーザーによって「すべてのプ...
-
ドメインユーザーのユーザー名...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ネットワーク ログオン サービ...
-
ワークステーションからのログ...
-
DNSをActive Directory へ変更...
-
ドメイン離脱時のセキュリティ...
-
expectを使って自動でSSHログイ...
-
ActiveDirectoryでPCの入れ替え...
-
ドメインに参加せずに、ネット...
-
ドメイン参加(抜ける)コマン...
-
NetBios名のユニークの重複につ...
-
ドメイン参加中に違うワークグ...
-
Postfixでユーザー毎にメール送...
-
ドメインに参加しているWindows...
-
Windows7 Professionalを、アク...
-
ActiveDirectoryのOUとグループ...
-
mac.comからme.comにしますか?
-
ウインドウズ7のエディショ...
-
WindowsServer2003にクライアン...
-
ActiveDomeinとICS
-
ドメイン参加失敗
-
所属グループ取得方法
おすすめ情報