1. 程式人生 > >AD使用者批量匯入匯出

AD使用者批量匯入匯出

作為網管,有時我們需要批量地向AD域中新增使用者帳戶,這些使用者帳戶既有一些相同的屬性,又有一些不同屬性。如果逐個新增、設定的話,十分地麻煩。一般來 說,如果不超 過10個,我們可利用AD使用者帳戶複製來實現。如果再多的話,我們就應該考慮使用csvde.exe或ldifde.exe來減輕我們的工作量了。
  
一、 AD使用者帳戶複製
  1、在“AD域和計算機”中建一個作為樣板的使用者,如S1。
  2、設定相關需要的選項,如所屬的使用者組、登入時間、使用者下次登入時需更改密碼等。
  3、在S1上/右鍵/複製,輸入名字和口令。
說明:
  1、 只有AD域使用者帳戶才可以複製,對於本地使用者帳戶無此功能。
  2、 帳戶複製可將在樣板使用者帳戶設定的大多數屬性帶過來。具體如下:

選項卡

複製到新使用者帳號的屬性

常規 無。
地址 除了“街道”之外所有
帳戶 除了“使用者登入名”之外所有
配置檔案 除“配置檔案路徑”和“主資料夾”。欲複製它們,應該使用
%username%變數,如://server/share/%username%
電話
單位 除了“職務”之外所有。
隸屬於 全部
撥入 無,將預設值應用於新帳戶。
環境 無,將預設值應用於新帳戶。
會話 無,將預設值應用於新帳戶。
遠端控制 無,將預設值應用於新帳戶。
終端服務配置檔案 無,將預設值應用於新帳戶。

二、比較csvde與ldifde

csvde逗號分隔符目錄交換

ldifde輕型目錄訪問協議

互換格式目錄交換

功能 只能用來新增物件,不能用於刪除/修改 可用於新增/刪除/修改物件
格式 欄位名1,欄位名2,欄位名3,……
記錄1此值,記錄1此值,記錄1此值,……
欄位名1: 記錄1此值
欄位名2: 記錄1此值
欄位名3: 記錄1此值
     ……
舉例 Dn,objectclass,samaccountname,
userprincipalname,useraccountcontrol
“cn=s1,ou=test,dc=mcse,dc=com”
,user,s1,[email protected],512
Dn: cn=s1,ou=test,dc=mcse,dc=com
Objectclass:user
Samaccountname:s1
Userprincipalname:
[email protected]

useraccountcontrol:512
共同點 用於匯入的文字檔案必須包含:
* 使用者帳號的OU,物件的型別以及使用者登入名的路徑,使用者主名
* 預設(即不指定時):使用者帳戶為禁用。啟用:512,禁用:514
* 可包含個人資訊,但不可包含密碼,只能用預設的空口令。
* 或通過設pwdLastSet欄位值為0,使“使用者下次登入時須更改密碼”
(不設這個欄位,預設也是如此)。
* 通過設userAccountControl欄位值為66048,可使“密碼永不過期”。

三、以csvde.exe為例說明:域使用者帳戶的匯出/匯入
  操作步驟如下:
1、 在“AD域和計算機”中建一個使用者,如S1。
2、 設定相關需要的選項,如所屬的使用者組、登入時間、使用者下次登入時需更改密碼等。
3、 在DC上,開始/執行:cmd
4、 鍵入:csvde –f demo.csv
說明:
   (1)不要試圖將這個檔案導回,來驗證是否好使。因為這個檔案中的好多欄位在匯入時是不允許用的,如:ObjectGUID、objectSID、 pwdLastSet 和 samAccountType 等屬性。我們匯出這個檔案目的只是為了檢視相應的欄位名是什麼,其值應該怎麼寫,出錯資訊如下:

objectGUID:寫 UNPRINTABLEBINARY(16) "由於安全原因不允許修改。"
objectSid:寫 UNPRINTABLEBINARY(28) "由於該屬性處於“安全帳戶管理器”
(SAM),不允許訪問該屬性。"

  (2)可通過-d –r引數指定匯出範圍和物件型別。例如:
   -d “ou=test,dc=mcse,dc=com” 或 -d “cn=users,dc=mcse,dc=com”
   -r “< Objectclass=user>”
5、 以上面的檔案為參考基礎,建立自己的my.csv,並利用複製、貼上、修改得到多條記錄。例如:
dn,objectClass,sAMAccountName,userAccountControl,userPrincipalName
"CN=s1,OU=test,DC=mcse,DC=com",user,S1,512,[email protected]
"CN=s2,OU=test,DC=mcse,DC=com",user,S2,512,[email protected]
………………
其它可用欄位,我試了一下,見下表(不全):

使用者帳戶屬性 

字元名

說明

“常規”標籤

Sn
Givename
英文縮寫 Initials
顯示名稱 displayName
描述 Description
辦公室 physicalDeliveryOfficeName
電話號碼 telephoneNumber
電話號碼:其它 otherTelephone 多個以英文分號分隔
電子郵件 Mail
網頁 wWWHomePage
網頁:其它 url 多個以英文分號分隔

“地址”標籤

國家/地區 C 如:中國CN,英國GB
省/自治區 St
市/縣 L
街道 streetAddress
郵政信箱 postOfficeBox
郵政編碼 postalCode

“帳戶”標籤

使用者登入名 userPrincipalName 形如:[email protected]
使用者登入名(以前版本) sAMAccountName 形如:S1
登入時間 logonHours
登入到 userWorkstations 多個以英文逗號分隔
使用者帳戶控制 userAccountControl 啟用:512,禁用:514,66050
密碼永不過期:66048
帳戶過期 accountExpires

“配置檔案”標籤

配置檔案路徑 profilePath
登入指令碼 scriptPath
主資料夾:本地路徑 homeDirectory
連線 homeDrive
homeDirectory

“電話”標籤

家庭電話 homePhone

若是其它,在前面加other。

尋呼機 Pager

如:otherhomePhone。

行動電話 mobile 若多個以英文分號分隔。
傳真 FacsimileTelephoneNumber
IP電話 ipPhone
註釋 Info

“單位”標籤

職務 Title
部門 Department
公司 Company

“隸屬於”標籤

隸屬於  memberOf  使用者組的DN不需使用引號,
多個用分號分隔 

“撥入”標籤

遠端訪問許可權(撥入或VPN) msNPAllowDialin
允許訪問 值:TRUE
拒絕訪問 值:FALSE
回撥選項 msRADIUSServiceType
由呼叫方設定或回撥到 值:4
總是回撥到 msRADIUSCallbackNumber
“環境”、“會話”、“遠端控制”、“終端服務配置檔案”、“COM+”標籤
說明:這些標籤,平常極少用到,我也沒試。如果需要可以自己匯出來看一下,像一些複雜的欄位,如:userParameters,還是用貼上吧


6、匯入到AD,鍵入 csvde –i –f my.csv –j c:/
說明:-j用於設定日誌檔案位置,預設為當前路徑。此選項可幫助使用者在匯入不成功時排錯。


   有一點大家必須明確的是:我們在這裡做AD域使用者帳戶複製、做AD域使用者帳戶的匯出/匯入,並不能代替“AD備份和恢復”。我們只是在批量建立使用者帳 號,帳號的SID都是重新生成的,權利許可權都得重新設才行。(當然我們可以把匯入的使用者,通過memberof欄位設到一些使用者組中去,使它有權利許可權。 但這與利用“AD備份和恢復”到原狀,完全是兩回事)。

=====================================================================
追加:利用ldifde修改 域使用者帳號屬性

開始/執行:ldifde -i -f modify.txt
修改域使用者帳號user1的“部門”為Info,示例modify.txt的內容如下:
dn: CN=user1,CN=Users,DC=mcse,DC=com
changetype:modify
replace: department
department: info
-

最後的“-” 一定要加上,不然是會報錯的,切記!!!冒號後有沒有空一格沒有關係。

中文的問題,可以先通過匯出,檢視某個文字的編碼。編輯檔案時,一粘過來就可以了。
如:“測”字編碼為“5rWL”,“試”字編碼為“6K+V”

下面為用於匯入的文章內容:

dn: CN=user1,CN=users,DC=mcse,DC=com
changetype: modify
replace:department
department:: 5rWL6K+V
-
……
注意:必須兩個冒號

=====================================================================

追加:利用指令碼建立批量使用者帳戶




1 、利用指令碼建立使用者帳號 (使用者可參考下例)。

Set objDomain = GetObject(LDAP://dc=fabrikam,dc=com)
Set objOU = objDomain.Create("organizationalUnit", "ou=Management")
objOU.SetInfo
說明: fabrikam.com域建立一個名叫 Management OU
Set objOU = GetObject(LDAP://OU=Management,dc=fabrikam,dc=com)
Set objUser = objOU.Create("User", "cn= AckermanPila")
objUser.Put "sAMAccountName", "AckermanPila"
objUser.SetInfo
objUser.SetPassword "i5A2sj*!"
objUser.AccountDisabled = FALSE
objUser.SetInfo
說明: Management OU下建立一個名叫 AckermanPila的使用者,口令為 i5A2sj*!,啟用。
Set objOU = GetObject(LDAP://OU=Management,dc=fabrikam,dc=com)
Set objGroup = objOU.Create("Group", "cn=atl-users")
objGroup.Put "sAMAccountName", "atl-users"
objGroup.SetInfo
objGroup.Add objUser.ADSPath
objGroup.SetInfo
說明: Management OU下建立一個名叫 atl-users的使用者組,將使用者 AckermanPila加入到這個組中。
Wscript.echo "Script ended successfully"
說明: 顯示“指令碼成功結束”資訊

2 、利用指令碼中的迴圈功能實現批量建立使用者帳號

Set objRootDSE = GetObject(LDAP://rootDSE )
Set objContainer = GetObject("LDAP://cn=Users," & _ objRootDSE.Get("defaultNamingContext"))

For i = 1 To 1000
Set objUser = objContainer.Create("User", "cn=UserNo" & i)
objUser.Put "sAMAccountName", "UserNo" & i
objUser.SetInfo
objUser.SetPassword "i5A2sj*!"
objUser.AccountDisabled = FALSE
objUser.SetInfo
Next

WScript.Echo "1000 Users created."

說明: 在當前域的 Users容器中建立 UserNo1 UserNo1000,共 1000個使用者帳戶

相關推薦

AD使用者批量匯入匯出

作為網管,有時我們需要批量地向AD域中新增使用者帳戶,這些使用者帳戶既有一些相同的屬性,又有一些不同屬性。如果逐個新增、設定的話,十分地麻煩。一般來 說,如果不超 過10個,我們可利用AD使用者帳戶複製來實現。如果再多的話,我們就應該考慮使用csvde.exe或ldifde.

java批量匯入匯出(poi)

一、批量匯入       1、匯入時我們接參時使用MultipartFile來接受excel檔案,用poi來讀取檔案內容        InputStream inputStream = MultipartFile.getInputStream();        Wor

ThinkPHP5 + PHPExcel 批量匯入匯出(部分注意事項)

在網上下載PHPExcel資源包,置於vender資料夾之下,也可以點選我的網盤分享:https://pan.baidu.com/s/1v2_oMMSvwTcebG9F3YQJqQ 先說兩個注意事項: 1、部分php7環境的朋友可能在匯出的時候不能執行:$objWriter->sa

easyui datagrid 增刪改查分頁 匯出 先上傳後匯入 NPOI批量匯入 匯出EXCEL

效果圖資料庫程式碼 create database CardManage use CardManage create table CardManage ( ID int identity(1,1) primary key, userDep nvarchar(10)n

poi批量匯入匯出Excel(一、需要建資料庫表)

本專案基於SSM框架,簡單封裝了Excel批量匯入匯出功能,需要建資料庫表將資料匯入到表中,查詢遍歷出資料匯出Excel,下一篇文章介紹下不用建資料庫表一鍵匯入匯出Excel(點選跳轉),不過這樣只適用於對匯入的Excel表進行轉換。一、下載poi jar包:     點這裡

Excel批量匯入(匯出同理)

在做JavaWeb中新增資料使我們在所難免會遇到的,在大資料的環境下批量新增和批量刪除是必須的,而批量刪除只需要獲取到我們需要刪除的ID就可以了,在批量新增中我們就會遇到問題,問題是得到批量的資料,這就涉及到了poi技術中的Excel匯入匯出 在前端中我們使用

java之poi操作excel-批量匯入匯出

    上一篇博文介紹了poi操作excel的基本讀寫操作後,接下來,介紹一下在專案中的實際用途:批量匯入、批量匯出功能。因為重點知識介紹批量匯入匯出excel功能,故而專案整體的搭建後臺用jdbc與struts2,前端頁面用jquery-easyui實現(其實也可以整合到s

報表開發之批量匯入匯出Excel

在日常使用報表過程中,會有這樣一種情況,你將Excel表分發給各個員工,員工填完後,統一整理成多個Excel,你需要將這些資料,用報表的填報功能,提交錄入到資料庫中,這樣一來可避免到伺服器機房錄資料的繁瑣步驟,但是無論是批量匯入和還是匯出Excel,這對諸多報表軟體或稱整合報

poi批量匯入匯出Excel(三、通過模板匯出Excel並能實現匯入多個sheet表)

本專案基於SSM框架,簡單封裝了Excel批量匯入匯出功能,不用建資料庫表一鍵匯入匯出Excel,不過這樣只適用於對匯入的Excel表進行轉換,通過模板匯出Excel並且能實現匯入多個sheet表。上一篇介紹了建表匯入匯出Excel(點選跳轉)一、下載poi jar包:點這裡

DB2批量匯入匯出

一、匯出 1. 先建一個空的資料夾,比如data 2. 定位到data目錄 3. 匯出建表語句:db2look -d 庫名 -e -z 使用者名稱 -l -o 檔名.

Mysql批量匯出批量匯入

①批量匯出 1)如果想把雲伺服器上的mysql資料庫資料匯出到本地 只能使用 客戶端語句 在終端使用mysql -u root -p test -e 'SELECT loid FROM ana_customer WHERE localnet_id='101000';' > 101000

AD批量修改賬戶信息命令 Set-aduser

批量修改賬戶信息單獨設置用戶信息:Set-ADUser -Identity zhangsan -Department IT批量設置用戶信息首先要整理一個用戶信息的表,保存為 csv 格式。使用 Set-ADUser 循環對表內的用戶信息做添加或更改根據 csv 中的用戶信息做更改,表中只做了部門的修改。其他信

批量匯入資料(Mysql)報MySQL server has gone away 問題的解決方法

問題分析 首先度娘:mysql出現ERROR : (2006, 'MySQL server has gone away') 的問題意思就是指client和MySQL server之間的連結斷開了。    造成這樣的原因一般是sql操作的時間過長,或者是傳送的資料太大(例如使用inser

poiExcel表格所有操作以及資料匯入匯出

這個是本人在學習中記錄的筆記以供大家參考 Poi簡介: 1.1什麼是poi Apache POI [1]  是用Java編寫的免費開源的跨平臺的 Java API,Apache POI提供API給Java程式對Microsoft Offi

C++批量匯入檔案

如果這樣做: for (int i = 1; i<= 100; i++) { img = imread(“D:\低解析度截圖重新命名\%d.jpg”, i); imgs.push_back(img); } 看似不報錯,但是如果imshow一下,就會發現根本沒有讀圖。 對於檔案流,和普通

mysql匯入匯出指定資料指令碼(含遠端)及弊端

有時候,需要匯出表中的指定列的資料,拼接成INSERT語句。如下: Code(遠端匯出需要加入引數"-h+ip";本地則去掉該引數,或者將ip換為本地ip即可) mysql -h+ip -uusername -ppassword -e "select concat('insert i

mysql匯入匯出全部資料指令碼(含遠端)及錯誤收集

使用mysql的mysqldump命令進行資料的匯入匯出。 1、匯出 匯出(遠端): 以下指令碼為預設語句,其他引數預設 mysqldump -h127.0.0.1 -uusername -ppassword --databases dbname --tables tablenam

yii框架實現phpexcel匯入匯出

yii框架實現phpexcel匯入匯出 首先進行phpexcel安裝 網上有很多擴充套件安裝,這裡就不介紹了,可以通過composer安裝,也可以手動下載引入,這裡需要注意的是composer和手動下載在引用類時不太一樣,composer安裝的直接用根名稱空間即可"/PHPExc

springboot2整合easypoi,實現Excel匯入匯出

1.新增Maven依賴 <dependency> <groupId>cn.afterturn</groupId> <artifactId>easypoi-base</artifactId> <v

使用POI將資料匯入匯出資料庫。

POI將資料匯入匯出資料庫。(採用ssm框架) 1.前臺列表的展示 <script type="text/javascript"> //進行資料的全選 function selectAll(){ var ids=document.get