2008/7/8 火曜日

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

Filed under: Windows Server 2003, スクリプト — pnpk @ 18:53:13

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: 3%

コメント (0) »

この記事にはまだコメントがついていません。

コメント RSS トラックバック URI

コメントをどうぞ

HTML convert time: 0.495 sec. Powered by WordPress ME