iT邦幫忙

9

Windows 2003 AD快速大量建立帳號

這個問題已經很多人問過了,這邊分享的是純 Windows 2003 AD 利用Script快速建立帳號的方式。

所謂的純 Windows 2003 AD 指的是網域功能等級以及樹系等級都要是2003
建新帳號一般來說都是利用編輯好的excel表格來把帳號一一匯入,
所以要先有excel表
表格的欄位必須是:account、name、HomePage、Address、title、description、Telephone
內容請自行編輯,但是資料表名稱一定要是:帳號清單
而且檔名一定要是:ACCOUNT.XLS
接下來才是script的內容:

Set conn=CreateObject("ADODB.Connection")
conn.Open "Driver={Driver do Microsoft Excel(*.xls)};DBQ=d:\account.xls;DriverID=278"
Set rs=CreateObject("ADODB.RecordSet")
SqlStr="SELECT * FROM ""帳號清單$"""
rs.Open SqlStr,conn,3,1
set oAD=GetObject("LDAP://rootDSE")
Set oDomain=GetObject("LDAP://AD主機名稱/OU=組織單位名稱," & oAD.Get("defaultNamingContext"))
Do Until rs.EOF
struser = rs("account")
If struser<>""then
Set oUser=oDomain.Create("User","CN="&struser)
oUser.Put "samAccountName", ""&struser
'(設定帳號名稱)

oUser.Put "displayName", ""&rs("name")
'(設定真實姓名)

oUser.Put "userPrincipalName",struser&"@ithelp.com.tw"
'(設定帳號中值)

oUser.Put "description",""&rs("description")
'(設定描述值)

'oUser.Put "wwwHomePage", ""&rs("HomePage")
'(設定網頁)

'oUser.Put "streetAddress", ""&rs("Address")
'(設定地址值)

'oUser.Put "title",""&rs("title")
'(設定職稱)

'oUser.Put "department",""&rs("department")
'(設定個人部門值)

'oUser.Put "TelephoneNumber", ""&rs("Telephone")
'(設定個人電話值)

oUser.Put "pwdLastSet",-1
'(設定密碼永久有效)
'(設定使用者必須在下次登入時變更密碼:0)

'oUser.Put "profilePath",""&struser
'設定使用者檔的路徑

'oUser.Put "homeDirectory",""&struser
'設定主資料夾 本機路徑...

'oUser.Put "homeDrive","T"
'(設定個人共用資料夾在T碟)

'oUser.Put "scriptPath","start.bat"
'登入指令檔,可依不同使用者作設定

'oUser.Put "maxStorage",10240
'(設定個人磁碟配額為10240)

oUser.SetInfo
'將上述值真正寫入AD中

'oUser.SetPassword ""&struser
'(更改個人密碼=帳號值,因前面動作時為放入密碼,此句一定要在oUser.SetInfo之後才可以,否則會執行有誤)

Usercount=Usercount+1

'下列主要宣告個人巡視設定檔在("D:\user\帳號)位置
'userprofile = "D:\user\" & struser
'userhome = "D:\data\" & struser

End If
rs.MoveNext
Loop
msgbox"成功建立"&Usercount&"個使用者!"
rs.Close
conn.close
set rs=nothing

請注意程式碼的第2行
第2行是要在AD上執行此script的路徑
其他的細項設定請自行修改


0
glennlin
iT邦研究生 4 級 ‧ 2009-03-10 18:20:45

為什麼匯入後怪怪的
像是mail前面居然自動幫我加了帳號

像是帳號:tt
mail:tt@mail.com
辦公室:8f

結果匯入後,tt正常
mail變成:tttt@mail.com
辦公室變成:tt8f

tom6507 iT邦大師 1 級‧ 2009-03-10 23:36:14 檢舉

請把excel表抓張圖貼來看看

glennlin iT邦研究生 4 級‧ 2009-03-20 17:14:21 檢舉

acc name mail off skype
bb 測試 tt@mail.ttt.com.tw 8f ttskype
bb1 測試2 tt1@mail.ttt.com.tw 8f-1 tt1skype

我的excel就只放這樣而已

tom6507 iT邦大師 1 級‧ 2009-03-26 17:44:01 檢舉

mail只要設定@後面就好了(包含@),會自動帶入帳號。因為mail有可能會跟帳號不同,所以乾脆別設定

0
nienxx
iT邦新手 5 級 ‧ 2009-03-20 16:57:23

不好意思請問一下,如果想利用script刪除大量的user帳號那大概要怎麼做 ?

看更多先前的回應...收起先前的回應...
tom6507 iT邦大師 1 級‧ 2009-03-20 17:07:11 檢舉

FORMAT C:/S/V

nikwu43 iT邦好手 1 級‧ 2009-03-20 17:23:28 檢舉

這樣做會全刪了喔...

nienxx iT邦新手 5 級‧ 2009-03-24 14:50:02 檢舉

有點看不懂,因為公司要結合人事作業,要求ad自動將離職人員帳號刪除,請問大概要如何著手呢?

tom6507 iT邦大師 1 級‧ 2009-03-24 15:40:38 檢舉

要自動的話會比較麻煩一點
因為還牽扯到你要去哪邊撈資料過來

nienxx iT邦新手 5 級‧ 2009-03-25 09:36:40 檢舉

to tom6507:
請問一下,若有辦法將要刪除的user帳號做成excel檔案,那是否可類似上述的做法寫成一個script? 那又該如何做呢?謝謝~~

tom6507 iT邦大師 1 級‧ 2009-03-25 11:28:38 檢舉

To nienxx
請看這篇分享:http://ithelp.ithome.com.tw/question/10018891

nienxx iT邦新手 5 級‧ 2009-03-26 16:30:01 檢舉

to tom6507大大,
哇,謝謝大大的指導...真的是厲害內.....另外再問一下,如果將檔案改成.txt檔做法也是一樣嗎 ?

tom6507 iT邦大師 1 級‧ 2009-03-26 17:44:35 檢舉

應該不行

0
coolman3612
iT邦新手 5 級 ‧ 2009-09-22 14:27:29

如果是在自行開發的FILE EXCHANGE SYSTEM上面想要大量建立帳號,也是照您上面的修改嗎??

tom6507 iT邦大師 1 級‧ 2009-09-23 08:29:30 檢舉

如果你的帳號也是抓取AD的帳號的話,應該可以

0
weapon0307
iT邦新手 5 級 ‧ 2011-11-29 10:36:18

請問一下.這script 在AD windows 2008 server 可以用嗎?
還有如果我只是要大量更改祕碼可以怎樣修改這個script?
感謝..

tom6507 iT邦大師 1 級‧ 2011-11-30 08:52:18 檢舉

抱歉,我沒用過2008,所以不知道能不能套用
大量修改密碼可以參考這篇AD Server 用戶端一次更改密碼

剛剛試了..在2008 不能套用= =

我要留言

立即登入留言