vbs程序批量禁用域用户然后移动到指定OU

vbs程序批量禁用域用户然后移动到指定OU,第1张

vbs程序批量禁用域用户然后移动到指定OU

作为一个大公司的IT经理,最痛苦的事情就是每天创建、禁用、删除几十条人员和用户信息。目前我们通过程序批量创建域用户,但是离职用户的相关信息需要手动禁用和删除。前面的文档介绍了我们通过powershell禁用并移动指定的用户到指定的OU。今天,我们通过vbs禁用并移动指定的用户到指定的OU。

首先,我们需要检查运行环境。我们创建Dsgrd对象组织单元,然后在该组织单元下创建域用户辅助组织单元,然后创建测试用户。

禁用用户后,我们将其移动到指定的OU:DisableAss="superseo">ss="superseo">ccounts。

接下来我们编辑程序:

代码:

'========================================================================== ' ' 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://outofmemory.cn/zz/784302.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-04
下一篇 2022-05-04

发表评论

登录后才能评论

评论列表(0条)

保存