作成 2010.03.07
更新 2011.10.30
VBScript でドメイン ユーザーに適用されているパスワード ポリシーを判別する
解説のようなもの
細かい設定が可能なパスワードおよびアカウント ロックアウトのポリシー設定(旧称「きめ細やかなパスワード ポリシー」)をスクリプトで検出するコードです。関数の引数にユーザーのDNを入れると、適用されるパスワード ポリシーがあればDNで取得できます。
なお、ドメインの管理者権限が必要です。
コードの中では、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
参考リンク

©2004-2017 UPKEN IPv4