批量移動AD用戶到指定OU

做爲域管理員,在平常工做中使用ADUC(AD用戶和計算機)工具在圖形界面中進行帳號管理操做可謂是屢見不鮮了。然而一個個增長、移動、刪除用戶,這樣操做有時真的夠煩,當管理大批量的帳戶時,重複操做浪費的時間會不少很對。記得在前兩年寫過幾篇關於如何批量建立組織單位OU、AD域用戶帳戶、郵件通信組以及啓用用戶Exchange郵箱的文章,這些特別適用於在企業組織環境中白手起家新建域控、郵件等服務器的IT環境。服務器

而對於企業組織中具備完善的IT基礎架構的環境,有時也是須要進行大批量的AD用戶操做的,好比AD中基於部門的組織單位OU,當遇上公司組織架構大變更,就須要隨之調整,若是一個個手動操做,動輒幾千個帳戶,對於域管理員來講,那將是個很苦逼的重複勞動。。。固然有人會提到整合HR系統和AD系統,這樣就不須要重複操做,屢次維護了。可是就國內來講,企業信息化建設到這種層度的公司屈指可數啊,而且這種HR系統價格不菲! 架構

拿我所在的公司來講,每一年都有組織架構的頻繁變更,IT人員除了平時基於HR的信息進行調整外,每一年年末還要基於HR信息進行一次完全的大調整,以知足平常辦公中Exchange郵件和Lync通信簿中呈現出準確的信息。在我到公司以前聽說每次調整都是好幾個IT人員用花費幾周的時間來共同完成。如今俺固然不能再採用這麼土鱉的方法來調整了。。。怎麼着咱也是MVP啊,O(∩_∩)O哈哈~ide

下面言歸正傳吧,來看看如何批量實現移動用戶吧?函數

開始以前仍是先要感謝如下兩位博主,我這篇文章是在他們基礎之上完成的工具

《一個腳本解決AD用戶批量操做問題》ui

http://lqlaps169.blog.51cto.com/855319/384176.net

《批量修改AD帳戶與屬性》3d

http://blog.csdn.net/xuhuojun/article/details/6795648excel

下面開始具體操做:對象

一、HR信息獲取

前面咱們提到,咱們的AD架構調整是基於HR的組織架構及人事信息的,因此首先咱們會從HR處拿到一張Excel表格,相似下圖,包含姓名、公司、部門、郵箱等信息。

其中主要用到一下兩項信息:

部門信息 用於咱們AD中組織單位OU的劃分

郵箱信息 用於和咱們AD中的現有用戶信息進行匹配

注:之因此不使用姓名是由於涉及到重名,通常來講AD中的姓名和HR的姓名不具備惟一性。

clip_p_w_picpath002

二、AD中用戶信息導出

AD中現有用戶信息的導出我借鑑的是《批量修改AD帳戶與屬性》一文中的方式,再次感謝做者!http://blog.csdn.net/xuhuojun/article/details/6795648

clip_p_w_picpath004

這是一個vbs腳本,執行後會導出ad中用戶的N多屬性值,這裏咱們用不着這麼多的屬性值,因此對腳本稍加修改,只需導出顯示名、郵箱、sAMAccount、DN(distinguishedName)等信息。

執行語句:

cscript C:\exportUserProfile.vbs

注:在64位的Windows Server 2008 R2環境下,須要以管理員權限打開cmd,並進入C:\Windows\SysWOW64\ 目錄;命令執行計算機上還須要安裝Excel 應用程序;

clip_p_w_picpath006

腳本執行完成後會輸出結果到c:\temp\MyExport.xls

clip_p_w_picpath007

三、信息比對及匹配

接下來要作的就是將HR的Excel表格和咱們導出的Excel表格(MyExport.xls)信息進行比對及匹配。

咱們可以看到HR的Excel表格和導出的Excel表格具備相同的mail郵箱這一列,下面咱們要使用Excel強大的VLOOKUP函數,用HR的Excel表格中mail信息去咱們導出的Excel表格(MyExport.xls)中查詢出對應的DN(distinguishedName)值,並填充到HR的Excel表格中。

DN(distinguishedName)值就是咱們後面進行批量操做的關鍵

關於VLOOKUP函數能夠參考下面連接,或者直接Google或者百度一下

http://office.microsoft.com/zh-cn/excel-help/vlookup-HP005209335.aspx

VLOOKUP比對匹配完成後的結果以下:

clip_p_w_picpath009

注:

「#N/A」 表示兩張Excel表格中的數據沒有相同的,通常是HR提供的郵箱錯誤或者和咱們AD中的郵箱不一致致使的,這種通常咱們能夠根據其餘信息手動查詢出正確的DN值並補全。

局部放大截圖:

clip_p_w_picpath011

完成後複製表格DN(distinguishedName)值列,並保存爲txt文本文件。這裏咱們保存至D:\user.txt中。

到這裏你們應該看明白了,查詢到的DN(distinguishedName)值其實就是AD用戶如今所在的組織單位OU信息。

clip_p_w_picpath013

四、執行批量移動OU

這裏我借鑑的是《一個腳本解決AD用戶批量操做問題》一文中的方式,再次感謝做者!

http://lqlaps169.blog.51cto.com/855319/384176

clip_p_w_picpath015

執行語句:

for /f %i in (d:\user.txt) do dsmove %i -newparent ou=xxx,ou=xxx,dc=xxx,dc=com >>d:\log.txt

for的做用就是從user.txt中獲取目標信息

Dsmove –newparent 指定對象應移動到的新位置的 DN值

>>d:\log.txt 將命令執行結果輸出到d:\log.txt,方便查詢命令執行結果及排錯

命令執行結果:

clip_p_w_picpath017

查看輸出log文件:

clip_p_w_picpath019

ADUC中查看被移動的用戶:

clip_p_w_picpath021

這樣咱們就完成了AD用戶的批量移動OU操做。在這裏提醒你們,這種操做畢竟涉及線上生產環境,因此儘可能按照部門分批次移動操做,而且作好在非工做時間進行。

其實用戶組織單位OU的調整隻是第一步,接下來還須要進行部門通信組及成員調整,不過這個徹底能夠由郵箱地址直接批量添加,簡單方便不少。

另外調整OU後,AD用戶屬性(如:公司、部門、經理等等)的調整也能夠按照文章《批量修改AD帳戶與屬性》的方法來批量操做完成。這裏就不在重複了

相關文章
相關標籤/搜索