作为一个大公司的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