實現批量修改AD使用者屬性

2021-09-04 13:25:41 字數 2637 閱讀 8932

修改ad使用者屬性(例如**號碼、描述等)是ad管理員一項常見的基本工作,簡單卻十分繁瑣,特別是在對大批量使用者屬性進行修改的情況下,工作量大且又是重複性的工作,若單個依次進行修改,效率低下,往往為人們所抱怨。有沒有一種方便快捷、切能批量進行ad使用者屬性修改的方法呢?對此,本文作以下分享。(本文以批量修改ad使用者**號碼屬性為例來進行說明)

一、 建立修改ou=temp,dc=contoso,dc=com使用者**號碼執行指令碼

新建.txt文件,輸入下述內容,並將此文件另存為chang.vbs檔案。

dim objinfo

const ads_scope_subtree = 2

set fso = createobject("scripting.filesystemobject")

set objfile = fso.opentextfile("userinfo.csv")

set objconnection = createobject("adodb.connection")

set objcommand = createobject("adodb.command")

objconnection.provider = "adsdsoobject"

objconnection.open "active directory provider"

set objcommand.activeconnection = objconnection

objcommand.properties("page size") = 1000

objcommand.properties("searchscope") = ads_scope_subtree

doon error resume next

objinfo = split(objfile.readline,",")

strdn = finduserdn(objinfo(0))

set objuser = getobject("ldap://" & strdn)

objuser.put "mobile",objinfo(1)

objuser.setinfo

if err.number <> 0 then

wscript.echo "error:" & objinfo(0) & "," & objinfo(1)

end if

strdn = ""

loop until objfile.atendofstream = true

objfile.close

wscript.echo "done!"

function finduserdn(struserdisplayname)

objcommand.commandtext = _

"select distinguishedname from 'ldap://ou=test,dc=contoso,dc=com' where objectcategory='user' " & _

"and displayname = '" & struserdisplayname & "'"

set objrecordset = objcommand.execute

objrecordset.movefirst

do until objrecordset.eof

arrdn = objrecordset.fields("distinguishedname").value

if isarray(arrdn) = true then

wscript.echo struserdisplayname

finduserdn = arrdn(0)

else

finduserdn = arrdn

end if

objrecordset.movenext

loop

if err.number <> 0 then

wscript.echo err.mobile & ":" & struserdisplayname

err.clear

end if

end function

二、 建立ad使用者新屬性文件

建立名為userinfo.csv檔案,檔案內容根據實際需要,輸入顯示名稱和使用者的新**號碼,如下圖所示:

三、 執行指令碼

將chang.vbs指令碼和userinfo.csv放到同一目錄,雙擊chang.vbs指令碼。待chang.vbs指令碼執行成功即可實現ou=temp,dc=contoso,dc=com下使用者it001、it002、it003、it004、it005使用者號碼的更改,如下圖所示:

1、修改使用者屬性專案,可對以下指令碼內容進行調整:

set objuser = getobject("ldap://" & strdn)

objuser.put "mobile",objinfo(1)

objuser.setinfo

2、針對不同ou下的使用者可對以下指令碼內容進行

'ldap://ou=test,dc=contoso,

dc=com' where objectcategory='user' " & _

"and displayname = '" & struserdisplayname & "'"

批量建立AD使用者

批量建立ad使用者 前幾天我發表了 powershell 管理active directory常用命令 這個部落格,裡面有關於建立使用者的powershell,但是如果是單使用者的話,用powershell就顯得不是那麼的高效了,所以我們現在來做一下批量的形式 環境 作業系統 windows ser...

批量建立AD使用者

批量建立ad使用者 前幾天我發表了 powershell 管理active directory常用命令 這個部落格,裡面有關於建立使用者的powershell,但是如果是單使用者的話,用powershell就顯得不是那麼的高效了,所以我們現在來做一下批量的形式 環境 作業系統 windows ser...

Web頁面實現AD使用者修改密碼

1.部署了一台server2003,將伺服器c windows system32 inetsrv iisadmpwd 拷貝了出來 2.然後部署一台server2008,安裝了ad服務。將03拷貝出來的資料夾複製到了c windows syswow64 inetsrv檔案下 3.在server2008...