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
Popularity: 2%