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: 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 | 多個以英文分號分隔 |
電子郵件 | ||
網頁 | 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