利用CSVDE和DSADD實現AD帳號批量導入導出

標籤:CSVDE DSADD AD帳號 導入導出

轉載自http://alligator.blog.51cto.com/36993/94148

     作爲域管理員,有時我們需要批量地向AD域中添加用戶帳戶,這些用戶帳戶既有一些相同的屬性,又有一些不同屬性。如果在圖形界面逐個添加、設置,那麼需要的時間和人力會超出能夠承受範圍。一般來說,如果不超過10個,我們可利用AD用戶帳戶複製來實現。如果再多的話,就應該考慮使用使用命令行工具,實現批量導入導出對象。微軟默認提供了兩個批量導入導出工具,分別是CSVDE(CSV目錄交換)和LDIFDE(LDAP數據互換格式目錄交換)。
   具體選擇上述哪個工具取決於需要完成的任務。如果需要創建對象,那麼既可以使用CSVDE,也可以使用LDIFDE,如果需要修改或刪除對象,則必須使用LDIFDE。本文不涉及使用CSVDE導入對象。而是換另一種導入導出AD帳戶思路:使用CSVDE工具導出AD帳戶到CSV格式的文件中,再使用For語句讀取該文件,使用DSADD命令進行批量添加。
   具體步驟:
   一:使用CSVDE導出帳戶
   使用 CSVDE 導出現有對象的列表相當簡單。
   最簡單的用法是:
    csvde –f ad.csv  將 Active Directory 對象導出到名爲 ad.csv 的文件。–f 開關表示後面爲輸出文件的名稱。
    但是必須注意,上述的用法是很簡單,但是導出來的結果可能存在太多你不希望要的記錄和信息。
    如果要實現更精確的導出記錄,可以使用 -d 和 -r 以及 -l 參數。
    其中:-d 用來指定特定的搜索位置和範圍
          -r 用來指定特定的搜索對象類型
          -l 用來指定導出對象的具體屬性
    如:
      csvde –f users.csv –d "ou=Users,dc=contoso,dc=com" –r       "(&(objectcategory=person)(objectclass=user))" –l DN,objectClass,description
    注意:如果使用CSVDE導出的帳戶信息中存在中文,會存在亂碼的可能,可以加-U參數來解決。

   二:批量導入帳戶
    首先需要明確的概念是,要實現批量導入帳戶,必須要存在一個已包括多個帳戶信息的文件。沒有文件,無法實現批量導入。
    假設之前已經通過CSVDE工具導出過這樣的一個文件Users.csv,且文件內容如下
    姓 名   全名   登錄名      密碼

    張,三,  張三,  three.zhang,pass01
    李,四,  李四,  four.li,    passo2
    王,五,  王五,  five.wang,  pass03
    劉,六,  劉六,  six.liu,    passo4
    趙,七,  趙七,  seven.zhao, pass05
    有了上述格式的文件後,我們就可以使用For命令來讀取文件中的每條信息並利用DSADD實現帳號添加。
    具體語句如下:
    C:\>for /f "tokens=1,2,3,4,5 delims=," %a in (uses.csv) do dsadd user "cn=%c,ou=
        newusers,dc=contoso,dc=com" -samid %d -upn [email protected]">%[email protected] -fn
        %b -ln %a -pwd %e -disabled no

    作用:將上述文件中五個帳戶添加到contoso.com域,名爲newusers的OU中,且默認已啓用用戶。
          其中:-samid爲登錄名
                -upn爲UPN登錄名
                -fn爲 名
                -ln爲 姓
                -pwd爲 密碼

    簡單解釋一下for語句
        /f 表示從文件中讀取信息
        tokens表示每行使用的記號,對應於後面的變量具體的值
        delims表示每個字段之間的分隔符

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章