作成 2010.01.08
更新 2010.03.08
更新 2010.03.08
VBScript で Active Directory のユーザー アカウントを列挙する
このサンプルでは Active Directory のユーザー アカウントを列挙します。cscript で起動してください。
Option Explicit ' CScriptで実行してください Dim WshShell Dim strEnvDnsDomain, arrItem, baseDN, i Dim objConnection, objCommand, objRecordSet, strCommandText Dim strUserName ' 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 objCommand.Properties("Page Size") = 1000 strCommandText = "<LDAP://" & baseDN & ">;" & _ "(&(objectClass=user)(!objectClass=computer));" & _ "distinguishedName,sAMAccountName;" & _ "subtree" objCommand.CommandText = strCommandText Set objRecordSet = objCommand.Execute WScript.Echo "--- BEGIN ---" Do Until objRecordset.EOF strUserName = objRecordset.Fields("sAMAccountName") WScript.Echo strUserName objRecordset.MoveNext Loop objConnection.Close Set objCommand = Nothing WScript.Echo "--- END ---"参考