作为一个大公司的IT管理人员,最痛苦的是每天创建、禁用、删除好几十个人员用户信息,目前我们通过程序批量创建域用户,但是离职用户的相关信息禁用及删除,需要我们手动来完成,之前文件介绍了,我们通过powershell来对指定的用户禁用及移动到指定的OU下,今天我们就通过vbs来实现将指定的用户禁用及移动到指定的OU。
我们首先是需要查看运行环境,我们创建Dsgrd Object组织单元,然后在该组织单元下创建Domain users二级组织单元,然后创建测试用户。
我们要将用户禁用后,移动到指定的OU下:Disable Accounts
接下来我们编辑程序:
代码:
‘========================================================================== ‘ ‘ VBScript Source File -- Created with SAPIEN Technologies PrimalScript 3.1 ‘ ‘ NAME: ‘ ‘ AUTHOR: Windows 用户 , 12345 ‘ DATE : 2014/10/29 ‘ ‘ COMMENT: ‘ ‘========================================================================== strDisableAccount = True ForReading=1 strNewParentDN = "OU=Disable Accounts" ‘ move To strContainer = "OU=Dsgrd Object" ‘ source ‘ ------ END CONFIGURATION --------- ‘ 开始运行功能 Set dic = CreateObject("Scripting.Dictionary") Set objRootDSE = GetObject("LDAP://rootDSE") strDomainDN = objRootDSE.Get ("defaultNamingContext") ‘ dong tai huo qu yu Set objContainer = GetObject ("LDAP://"&strContainer&"," & strDomainDN) subContainer objContainer,strUserDN Set objFSO = CreateObject("Scripting.FileSystemObject") Set objFile = objFSO.OpenTextFile("D:\11.txt", ForReading) While Not objFile.AtEndOfStream WScript.Echo VbCrLf strUserDN = trim(objFile.Readline) WScript.Echo strUserDN ‘& VbCrLf If dic.exists(strUserDN) Then Set objCont = GetObject("LDAP://"&strNewParentDN&","& strDomainDN)‘ Set objUser = dic.item(strUserDN) If objUser.AccountDisabled = True Then ‘ WScript.Echo "Account for " & objUser.Get("cn") & " currently disabled - Not moved" objCont.MoveHere "LDAP://"& objUser.distinguishedName,"CN="&strUserDN ‘vbNullString Else WScript.Echo "Account currently enabled" objUser.AccountDisabled = True objUser.SetInfo objCont.MoveHere "LDAP://"& objUser.distinguishedName,"CN="&strUserDN ‘vbNullString WScript.Echo "Account for " & objUser.Get("cn") & " moved to new OU" end If End If Wend objFile.Close Set objRootDSE = Nothing Sub subContainer(objContainer,strUserDN) For Each objUser In objContainer If RegExpTest("OU=.*",objUser.name) Then ‘ MsgBox objUser.name subContainer objUser,strUserDN Else dic.add objUser.sAMAccountName,objUser ‘ MsgBox objUser.name &":"& objUser.AccountDisabled End If Next ‘Set objContainer = Nothing End Sub Function RegExpTest(patrn, strng) Dim regEx, retVal ‘ 建立变量。 Set regEx = New RegExp ‘ 建立正则表达式。 regEx.Pattern = patrn ‘ 设置模式。 regEx.IgnoreCase = False ‘ 设置是否区分大小写。 retVal = regEx.Test(strng) ‘ 执行搜索测试。 If retVal Then RegExpTest =True Else RegExpTest = False End If End Function
我们设置需要禁用并且移动的账户信息:
然后我们运行程序进行查看:
程序执行后的效果:
本文出自 “高文龙” 博客,请务必保留此出处http://gaowenlong.blog.51cto.com/451336/1569616
原文地址:http://gaowenlong.blog.51cto.com/451336/1569616