作成 2010.01.08
更新 2010.01.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=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 ---"
参考

VBScript で Active Directory のユーザー アカウントを列挙する


©2004-2017 UPKEN IPv4