天天看點

查詢長期未登入的AD帳号

接近年底,公司内部及外部的審計又開始了。這次公司内部的審計人員比以往專業很多,問了很多帳号管理(申請,離職,公用帳号等方法的管理),确實讓我小忙一把。

還真被他們稽核出不了問題。

對于個人帳号,全部上系統申請,參考HR資料庫建立,同時在離職時HR系統自動禁用帳号,隔日發報表給相關人員進行統一删除。

對于公用帳号,有些部門之前申請的,即使不用了他們也不會通過IT部門去取消,是以公用帳号可能會一直在增加,但IT人員也無法去管理(帳戶資訊可能已經不準确)

下面介紹一指令,在win2008如果有安裝AD服務,該指令已經有包含。

dsquery 指令,

dsquery user可查詢AD 使用者資訊(我之前有一篇文章,dsquery computer可查詢AD計算機帳戶,兩者處理的方式是一樣的)

以下是一條指令

dsquery user "dc=contoso,dc=com" -scope subtree -inactive 13 -limit 1 | dsmove -newparent "ou=olduser,dc=contoso,dc=com"

解釋:

dsquery user 查詢AD user帳号

"dc=contoso,dc=com" 為查詢的AD路徑

-scope subtree為查詢範圍,此處為包含下級各目錄

-inactive 13 為13周未登入過的帳号,一般3個月強制變更密碼,是以13周沒登入的話這個帳号應該是沒有在使用了

-limit 1為一次操作一條記錄 (由于通過管道 | 傳給dsmove指令進行再次操作,是以此次隻能為1)

| 為管道操作符

dsmove 将查詢到的對象移到指定OU

-newparent "ou=olduser,dc=contoso,dc=com" 為目标OU,用于存放查詢到的使用者對象

一般情況下我在對AD使用者及計算機帳号管理時,不會立即删除帳号,都會将他們移至一個OU,再将這個帳号全部禁用,再觀察下1個月什麼的。這隻是為了安全。

以上的指令一次隻能執行一個User對象,是以我還得寫個BAT指令,讓其循環執行多次,是以我暫時将上以指令儲存為d.bat吧

再建立一個c.bat檔案,執行時由c.bat去調用d.bat(每次查詢過期帳戶時,也都隻執行c.bat,c.bat和d.bat放在同一目錄下)

for /l %%a in (1,1,1000) do d.bat  這個指令是指重複執行d.bat程式 1000次,當然啦這個次數你可以改。

我已附上附件,各位如果要實踐的話,隻要改下域名,并在域中建立個OU,用于存放過期帳号。

 本文轉自William宋 51CTO部落格,原文連結:http://blog.51cto.com/sting/407195,如需轉載請自行聯系原作者