ADアカウントが有効か無効か調べる@VBS

Active Directory上のアカウントが有効か無効か調べる場合、userAccountControlという特殊な場所から情報を引っ張ってこなければなりません。
いちいち判定が面倒だったのでVBScriptですが作ってみました。

ACCOUNT_ENABLEにDN名を投げると、アカウントが有効だった場合にTrue、無効だった場合にFalseを返します。

Option Explicit

Dim DN

DN = "CN=Administrator,CN=Users,DC=pnpk,DC=local"

If ACCOUNT_ENABLE(DN) Then
	Wscript.Echo DN & " はアカウントが有効です。"
Else
	Wscript.Echo DN & " はアカウントが無効です。"
End If

'//////////////////////////////////////////////
Function ACCOUNT_ENABLE(DN)
	Dim objUser
	Dim objHash
	Dim intUAC

	Set objUser = GetObject("LDAP://" & DN )

	Set objHash = CreateObject("Scripting.Dictionary")
	
	objHash.Add "ADS_UF_ACCOUNTDISABLE", &h0002
	
	objUser.GetInfoEx Array("userAccountControl"),0
	intUAC = objUser.Get("userAccountControl")
	
	Dim Key
	
	For Each Key In objHash.Keys
		If objHash(Key) And intUAC Then
			ACCOUNT_ENABLE = False
		Else
			ACCOUNT_ENABLE = True
		End If
	Next
End Function

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です