- PR -

Win2kServer ActiveDirectory90日以上ログオンしてないユーザーアカウントの抽出方法

1
投稿者投稿内容
mambo
会議室デビュー日: 2004/09/01
投稿数: 3
投稿日時: 2004-09-02 16:17
1.90日以上ログオンしてないユーザー アカウントのリストを表示したい。
2.90日以上ログオンしてないユーザー アカウントをDisable Accountにしたい。

上記の2項目のことでネットでいろいろ検索してみましたが
なかなか見つからなくて、ここに辿り着いて投稿します。

ご存知の方いましたら、お返事頂けると大変助かります。

Acctinfo.dll(Windows Server 2003 Resource Kit Tools)を入れて、
ユーザー アカウントのプロパティで、[Additional Account Info]
タブからLastLogonの日付は確認できますが、この方法ですと、

ひとりひとりのプロパティを開いて、確認しないといけないので、
3000人ほどのユーザーをこの方法でやろうとすることを考えますと気が遠くなります。

サーバーがWindows 2000なので、Saved Queriesも使えない状態です。
(クライアント(XP)に「Windows Server 2003 Administratiion Tools Pack英語版」を入れてSaved Queriesで検索してみましたが、抽出できませんでした)
VIM
ベテラン
会議室デビュー日: 2003/11/14
投稿数: 76
投稿日時: 2004-09-06 15:42
vbscriptで、以前似たようなのを作ったので、改良しました。
参考にどうぞ。

コード:
Option Explicit
Dim objContainer	' As IADsContainer
Dim objUser			' As IADsUser
Dim s, d
On Error Resume Next
Set objContainer = GetObject( "WinNT://HOGEHOGE" )  '←変えてね
objContainer.Filter = Array( "User" )
For Each objUser In objContainer
	d = ""
	d = objUser.LastLogin & ""
	If IsDate(d) Then
		d = CDate(d)
		If DateDiff("d", d, Now) > 90 Then
			s = ""
			s = objUser.Name & vbTab & objUser.LastLogin & vbTab & objUser.LastLogin
			Call WScript.Echo( s )
		End If
	End If
Next
Set objUser = Nothing
Set objContainer = Nothing

mambo
会議室デビュー日: 2004/09/01
投稿数: 3
投稿日時: 2004-09-06 17:01
VIMさんへ

VIMさん、わざわざコードまで書いて頂いて、本当にありがとうございます。
VIMさんのコードを参考にして、早速、試してみたいと思います。

結果は、終わり次第このスレッドにて、ご報告したいと思います。
mambo
会議室デビュー日: 2004/09/01
投稿数: 3
投稿日時: 2004-09-07 17:05
VIMさんのコードをモデルにして、無事検証ができました。

VIMさんのコードを元に、さらに機能を追加し、
90日以上ログオンしてないユーザー アカウントについて
Disable Accountをつける作業を始める予定です。

本当にありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)