タグ
  Active Directory (51)
  ANSI (1)
  bash (1)
  BAT (14)
  bind (1)
  CentOS (3)
  C言語 (4)
  DNS (3)
  Excel (1)
  Fedora (4)
  FreeBSD (3)
  iSCSI (1)
  Java (11)
  JavaScript (6)
  Link (4)
  Linux (15)
  Mail (1)
  Microsoft (4)
  NIS (1)
  OpenLDAP (2)
  OpenSolaris (4)
  PHP (2)
  PostgreSQL (2)
  PowerShell (31)
  RFC (3)
  Solaris (10)
  SQL Server (1)
  Ubuntu (3)
  VBScript (65)
  Visual Basic (1)
  VMware (2)
  Windows (14)
  WMI (16)
  WSF (5)
  WSH (10)
  作成中 (5)
  慣用句 (1)
  正規表現 (6)
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
    AddError(strDN & " は存在しません")
    strPSODN = "(アカウントが見つかりませんでした。)"
  End If
  On Error Goto 0
  GetEffectivePSO = strPSODN
End Function
参考リンク
[リロード] [記事修正] [新規作成] [使用方法]
©2004-2010 UPKEN