有時我們需要獲取AD域用戶中的信息及狀態,想知道哪些用戶帳號是被禁用的,哪些用戶帳號是正常的,用戶的部門、電話、職位信息等等。
下面我將自己做的實驗步驟分享一下。
第1步:首先用腳本命令將AD用戶信息導出,導的時候可以根據自己的需要,導出有用的用戶信息,過濾掉不需要的信息。
命令腳本:
腳本解釋:
-d "ou=users,ou=XX公司,DC=XXXX,DC=Com"中ou是組織結構,ou=users,ou=XX公司代表的含義是XX公司 組織下的users組織,這是層級結構表示,命令行中由左至右對應層次中的由低至高。DC是域名,也是層級結構,DC=XXXX,DC=Com,表示Com下的XXXX也就是域名XXXX.com。比如abc.XXX.com對應DC=abc,DC=XXXX,DC=Com。
-r "(&(objectcategory=person)(objectClass=user))"是篩選要導出的數據,(objectClass=user)是定義大類,只導用戶信息,但是AD的user 除了用戶信息還包括computer等信息,所以再用(objectcategory=person)篩選,這樣就只有用戶信息了,如果這里省略就會導出所有AD信息相當亂。
-l "name,userPrincipalName"是需要導出用戶信息具體字段,這里分別是名稱和登錄名,其它的字段可以參見下面圖片。
-f C:\Users\Administrator\Desktop\Users-List.csv 指的是導出文件路徑,但是用戶的中文信息會以16機制代碼顯示,所以后面加一個-u,但這也有弊端,加-u后導出數據就混在一列里,可以用excel的導入文本,以逗號分列功能分開即可。
-s servername 要綁定到的服務器(默認為計算機域的 DC)
在DC服務器上,運行cmd,輸入腳本命令,運行后得到一個csv文件,再用Excel的逗號分列功能分開后得到以下信息
這里只是導出了我要的部分,如果需要導出其他信息,請參考本文最后的幾張圖片:《用戶信息參數名對照圖》
第2步:整理表格。在DN這一列存在用戶的姓名,以及所隸屬的組織,比較難看,我們用Excel函數將他顯示成我們想要的效果。
在A列后面,插入3列,在B2列輸入函數
=TRIM(LEFT(SUBSTITUTE(MID(SUBSTITUTE($A2,"=",REPT(" ",999)),COLUMN(A2)*999,999),",",REPT(" ",999)),999))
然后橫向拖動這列到C2,D2,再縱向拉下去,最后就把OU后面的部門都分列顯示了。如下圖所示:
再把第一行標題修改一下,表格就很好看了。
補充說明一下userAccountControl參數,這個表示帳號狀態,他的數值請參考下圖:
以下圖片是《用戶信息參數名對照圖》