iT邦幫忙

17

Windows 2003 AD快速大量刪除帳號

之前發表了一篇如何快速大量建立AD帳號的方法,後來又有邦友在問那如果要透過excel表格快速大量刪除帳號呢?
其實也沒什麼難的,只要改改原來那篇Windows 2003 AD快速大量建立帳號的script就可以達成
基本上還是運用到Windows 2003 AD快速大量建立帳號這篇中提到的excel表格
,只是表格內容中放置的是要刪除的帳號(只要account那個欄位有資料就好,其他可以空白,如下圖)

接下來就是程式碼的部分了**(請注意第二行有excel表的路徑與檔名)**,整個script要在AD上執行才有用。第七行需要設定AD主機名稱與組織單位名稱

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
oDomain.delete "User","CN="&struser
'(刪除帳號)

Usercount=Usercount+1

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

0
klm2242
iT邦研究生 1 級 ‧ 2009-03-25 11:38:17

感謝分享~~~

很有趣的東西

我改天再來try看看!!QQ

不過,有個問題想請教一下~~

這個快速建立跟刪除帳號的功能,有人有用過嗎??

都用在那種情況下比較多?

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

快速建立是提供給如果某天你們公司突然來了100個新人要開帳號,一個個建立恐怕太花時間.....
大量刪除當然就是公司精簡人力的時候出現的大量帳號需要刪除(或是累積多日未刪,可以先行利用excel紀錄需要刪除的帳號,有空再一次搞定)

基本上就是有邦友問到,我就順便寫成分享給大家囉

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

有沒有人用過我不知道,不過程式都是我測試成功可以用的

echen688 iT邦研究生 1 級‧ 2009-03-25 11:51:10 檢舉

那一種情況? 這還用得著問嗎? 當然是裁員滾滾的時侯....... Orz

klm2242 iT邦研究生 1 級‧ 2009-03-25 12:51:46 檢舉

Tom6507..不錯的一個分享,感恩!

echen688...我可不是很希望在那情況下用到這個功能~~QQ

nienxx iT邦新手 5 級‧ 2009-03-27 16:55:16 檢舉

to tom6507大大,
請問一下第二行的"DriverID=278"意思為何,我也是寫一樣的嗎?另外第七行的"LDAP://AD主機名稱/OU=組織單位名稱," 是指什麼呢 ??

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

第二行那個不用管他,照抄就好
第七行那個就是要你依照自己的AD主機&自建的組織單位名稱來修改

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

to tom6507大大,
我在C comand下執行會出現下面的訊息~~
C:\Documents and Settings\Administrator>d:

D:\>delaccount

D:\>Set conn=CreateObject("ADODB.Connection")

D:\>conn.Open "Driver={Driver do Microsoft Excel(*.xls)};DBQ=d:\account.xls;Driv
erID=278"
'conn.Open' 不是內部或外部命令、
可執行的程式或批次檔。

D:\>Set rs=CreateObject("ADODB.RecordSet")

D:\>SqlStr="SELECT * FROM ""帳號清單$"""
'SqlStr' 不是內部或外部命令、
可執行的程式或批次檔。

D:\>rs.Open SqlStr,conn,3,1
'rs.Open' 不是內部或外部命令、
可執行的程式或批次檔。

D:\>set oAD=GetObject("LDAP://rootDSE")

D:\>Set oDomain=GetObject("LDAP://EITC-AD1/OU=evergreen-eitc.com.tw," & oAD.Ge
t("defaultNamingContext"))
'oAD.Get' 不是內部或外部命令、
可執行的程式或批次檔。

nienxx iT邦新手 5 級‧ 2009-03-31 14:53:00 檢舉

to tom6507大大,
可以幫我把我的回應刪掉嗎?

tom6507 iT邦大師 1 級‧ 2009-03-31 14:59:02 檢舉

回應是沒辦法刪除滴

nienxx iT邦新手 5 級‧ 2009-03-31 15:26:09 檢舉

to tom6507~
請問我把它寫成.bat,但是不能在comand下執行嗎?

nienxx iT邦新手 5 級‧ 2009-04-01 11:46:51 檢舉

to tom6507大大,
已解決了,不要理我 ~ 我有點智障.........

0

簡單好用!good~

0
魯大
iT邦高手 1 級 ‧ 2009-03-25 13:23:00

看到這個,我到是想到一個問題
一般在AD上可看到使用者的帳號
但是看不到使用者的密碼
有辦法運用SCRIPT的方式取得嗎??

tom6507 iT邦大師 1 級‧ 2009-03-25 15:46:46 檢舉

要看到喔,是可以啦,請到這邊下載:http://www.systemtools.com/cgi-bin/download.pl?CopyPwd

不過它匯出的密碼是有加密過的,所以你只能看到加密後的結果XD

魯大 iT邦高手 1 級‧ 2009-03-25 16:15:51 檢舉

有辦法可以解密嗎??

tom6507 iT邦大師 1 級‧ 2009-03-25 22:21:31 檢舉

MD5加密沒辦法解

0
john651216
iT邦研究生 1 級 ‧ 2009-03-25 13:49:05

好像不錯的操作,下次有機會試試看

0
xxxyyyzzz
iT邦研究生 1 級 ‧ 2009-03-26 06:27:18

感謝分享

0
kuochiahao
iT邦研究生 1 級 ‧ 2009-03-26 09:31:19

謝謝分享!!

0
ping
iT邦研究生 1 級 ‧ 2009-03-26 23:45:34

這個資訊不錯,感謝分享

我要留言

立即登入留言