細かい設定が可能なパスワードおよびアカウント ロックアウトのポリシー設定(旧称「きめ細やかなパスワード ポリシー」)をスクリプトで検出するコードです。関数の引数にユーザーのDNを入れると、適用されるパスワード ポリシーがあればDNで取得できます。
なお、ドメインの管理者権限が必要です。
作成 2010.03.07
更新 2011.10.30
更新 2011.10.30
VBScript でドメイン ユーザーに適用されているパスワード ポリシーを判別する
解説のようなもの
コードの中では、GetInfoEx がキモです。"msDS-ResultantPSO" は読み取り専用の「構築済み(constructed)」属性なので、GetInfo では取得できません。
コード
' ユーザーに指定されたパスワード ポリシーを取得する
Function GetEffectivePSO(ByVal strDN)
Dim objUser, strPSODN
On Error Resume Next
Set objUser = GetObject("LDAP://" & strDN)
strPSODN = "(取得失敗)"
If Err.Number = 0 Then
objUser.GetInfoEx Array("msDS-ResultantPSO"), 0
strPSODN = objUser.Get("msDS-ResultantPSO")
If Err.Number = E_ADS_PROPERTY_NOT_FOUND Then
strPSODN = "(既定のパスワード ポリシー)"
End If
Else
strPSODN = "(アカウントが見つかりませんでした。)"
End If
On Error Goto 0
GetEffectivePSO = strPSODN
End Function
参考リンク