細かい設定が可能なパスワードおよびアカウント ロックアウトのポリシー設定(旧称「きめ細やかなパスワード ポリシー」)をスクリプトで検出するコードです。関数の引数にユーザーの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
参考リンク