Active Directory でパスワードが期限切れのユーザー一覧を出力したい

解決


らくー  2009-09-10 03:57:06  No: 146301

下記サイトのスクリプトを元に、Active Directory でパスワードが
期限切れのユーザー一覧を出力したいと思いました。

-----
Hey, Scripting Guy!
パスワードが無期限であるすべてのユーザーの一覧を取得する方法はありますか
http://www.microsoft.com/japan/technet/scriptcenter/resources/qanda/aug05/hey0829.mspx
-----

下記サイトを参照にスクリプトの :=65536 の部分を :=8388608 に書き換えましたが、
結果がゼロになってしまいます。さらに下記サイトを見ると、「Windows Server 2003 ベースの
ドメインでは、LOCK_OUT および PASSWORD_EXPIRED は ms-DS-User-Account-Control-Computed 
と呼ばれる新しい属性に置き換えられました。」との記述があります。

-----
UserAccountControl フラグを使用してユーザー アカウント プロパティを操作する方法
http://support.microsoft.com/kb/305144/ja
-----

そこで、下記のような修正を試みましたが、結果はゼロのままです。

(userAccountControl:1.2.840.113556.1.4.803:=65536)

(msDS-User-Account-Control-Computed:1.2.840.113556.1.4.1460:=8388608)

msDS-User-Account-Control-Computed を[]で括ってみたり、
msDS → ms-DS と変更してみたりと試してみましたが結果はゼロのままでした。

LDAPクエリで、ms-DS-User-Account-Control-Computed の値で検索するには、
どのように記述すればよいでしょうか?


らくー  2009-09-11 02:09:01  No: 146302

自己解決報告です。

結局、下記のスクリプトを参照し、最終パスワード変更日時から
一定日数が過ぎたユーザーのみ一覧出力する事にしました。

---
Hey, Scripting Guy!
サーベンス オクスリー法で必要な情報を取得する方法はありますか
http://www.microsoft.com/japan/technet/scriptcenter/resources/qanda/aug06/hey0801.mspx
---
修正内容

    If DateValue(objUser.passwordLastChanged) < Now() - 60 then
        Wscript.Echo "User: " & objUser.FullName 
        Wscript.Echo "Account created: " & objUser.whenCreated & " GMT" 
        Wscript.Echo "Password last changed: " & objUser.passwordLastChanged 
        Wscript.Echo  
    End If
---

厳密には PASSWORD_EXPIRED とは別かと思いますが、
今回の私の使用目的には問題ありませんでした。

以上、ご報告まで。


るきお  2009-09-11 03:06:02  No: 146303

報告の必要はないよ。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加