アカウント作成日と最後にパスワードを変更した日の一覧を取得する

Active Directoryの棚卸作業には、Hey, Scripting Guy!のスクリプトが利用できそうです。

サーベンス オクスリー法で必要な情報を取得する方法はありますか

On Error Resume Next 
 
Const ADS_SCOPE_SUBTREE = 2 
 
Set objConnection = CreateObject("ADODB.Connection") 
Set objCommand =   CreateObject("ADODB.Command") 
objConnection.Provider = "ADsDSOObject" 
objConnection.Open "Active Directory Provider" 
Set objCommand.ActiveConnection = objConnection 
 
objCommand.Properties("Page Size") = 1000 
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE  

'参照したいドメイン名に以下の'LDAP://dc=pnpk,dc=local'の部分を変更します
objCommand.CommandText = _ 
    "SELECT ADsPath FROM 'LDAP://dc=pnpk,dc=local' WHERE objectCategory='user'"   
Set objRecordSet = objCommand.Execute
 
objRecordSet.MoveFirst 
 
Do Until objRecordSet.EOF 
    strPath = objRecordSet.Fields("ADsPath").Value 
    Set objUser = GetObject(strPath) 
    Wscript.Echo "ユーザ名                     : " & objUser.FullName 
    Wscript.Echo "アカウント作成日             : " & objUser.whenCreated & " GMT" 
    Wscript.Echo "最後にパスワードを変更した日 : " & objUser.passwordLastChanged 
    Wscript.Echo 
    objRecordSet.MoveNext 
Loop

最後にログインした時間を取得する場合、この情報はユーザがログインしたドメインコントローラのみに記録されるので、ドメインコントローラを複数構築している場合には、なかなかサッと確認するのは難しいです。
ただし、この問題はドメインコントローラをWindows Server 2008に変更すると解決出来るようです。

ドメインコントローラの機能レベルをWindows Server 2008にすると、以下の機能が利用出来るようになります。

SYSVOL共有のDFSR複製のサポート
KerberosのAES 128/256ビット暗号化のサポート
最後の対話ログオン情報の記録
きめ細やかなパスワードポリシー

Windows Server 2008 のActive Directoryについてもっと調べてみたい場合には、以下のサイトが参考になります。

「Active Directory」ドメインサービスの7つの強化ポイント
http://www.computerworld.jp/topics/mws/104369-1.html

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

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です