從外部檔案批量處理AD帳號屬性

2021-09-21 09:38:11 字數 1592 閱讀 6442

目前我們公司對離職人員的帳號管理通過下面的方式,離職流程中的最後一關是在在hr部門列印離職單證明,在列印完離職證明後,hr系統自動將離職人員的ad帳號進行禁用,隔日hr系統匯出離職報表給網管,進行刪除。

其實目前公司完全可以做到在hr系統中設定直接刪除離職人員,但因安全方面的考慮(如,hr mm操作失誤,在職狀態將調任誤改為離職...),所以在最後刪帳號時還是由網管人為去確認。下面是批量對ad帳號進行操作的方法。

如果一天的離職人員有很多,包括有帳號或沒帳號的,網管是不可能乙個個去刪的。能過下面的**,可以將所有離職人員的工號儲存在乙個文字檔案中,執行指令碼,並自動將離職人員移入乙個特定的ou,如dimission_users。同時也可以對使用者屬性操作,如禁用帳號,在描述中新增「dimission"等資訊。下面的**供參考(將帳號儲存到response.txt檔案,與下面的指令碼乙個目錄就可以):

set objou=getobject("

ldap://ou=dimission_users,dc=contoso,dc=com")

set con = createobject("adodb.connection")

set com = createobject("adodb.command")

con.provider = "adsdsoobject"  'this is the adsi-oledb provider name

con.open "active directory provider"

set com.activeconnection = con

com.properties("page size")=1000

dim fs, f,i

set fs = createobject("scripting.filesystemobject")

set f = fs.opentextfile("response.txt")

do while f.atendofstream <> true

com.commandtext = "select name,samaccountname,adspath from 'ldap://dc=contoso, dc=com' where samaccountname=" & "'" & f.readline & "'"

set rs = com.execute

while not rs.eof

set usr=getobject(rs.fields("adspath"))

usr.accountdisabled= not enable

usr.put "description","dimission"

'wscript.echo usr.name

usr.setinfo

set newuser=objou.movehere(usr.adspath,vbnullstring)

wscript.echo rs.fields("name"),rs.fields("samaccountname")

rs.movenext

wend

loop

f.close

可以通過該指令碼批量對ad物件進行操作,如部門,分機,公司...。也可以通過再加修改連線資料庫,從hr資料庫中取資訊來更新使用者資訊。

shell 文字和檔案批量處理

將檔名中包含aa aa 的字元去掉 bin bash catch string aa aa for i in find name catch string do newname echo i sed e s aa aa echo newname mv i newname done 顯示乙個檔案中的i...

Oracle 從SQL檔案批量匯入資料

進入dos介面。進入sql檔案目錄。在命令提示下執行sqlplus,c sql sqlplus user name password net service name 指定sql執行日誌檔案,日誌檔名任意,但必須以log為字尾名 sql spool e temp a.log 建立批量執行檔案。如果要...

Linux中便捷的檔案批量處理

在linux的實際使用過程中,建立多個檔案 修改多個檔案 查詢檔案中的某個部分等需求都需要有一種能夠實現檔案批量處理的方法,這篇文章主要介紹了常用的一些檔案批量操作指令,大家一起學習一下吧。匹配0 任意字元 alpha 匹配單個字母 lower 匹配單個小寫字母 upper 匹配單個大寫字母 dig...