码迷,mamicode.com
首页 > 移动开发 > 详细

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

时间:2014-10-30 15:33:59      阅读:280      评论:0      收藏:0      [点我收藏+]

标签:vbs程序批量禁用域用户然后移动到指定ou

     作为一个大公司的IT管理人员,最痛苦的是每天创建、禁用、删除好几十个人员用户信息,目前我们通过程序批量创建域用户,但是离职用户的相关信息禁用及删除,需要我们手动来完成,之前文件介绍了,我们通过powershell来对指定的用户禁用及移动到指定的OU下,今天我们就通过vbs来实现将指定的用户禁用及移动到指定的OU。

     我们首先是需要查看运行环境,我们创建Dsgrd Object组织单元,然后在该组织单元下创建Domain users二级组织单元,然后创建测试用户。

bubuko.com,布布扣

我们要将用户禁用后,移动到指定的OU下:Disable Accounts

bubuko.com,布布扣

 

接下来我们编辑程序:

bubuko.com,布布扣

代码:

‘==========================================================================
‘
‘ 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


我们设置需要禁用并且移动的账户信息:

bubuko.com,布布扣

然后我们运行程序进行查看:

bubuko.com,布布扣

程序执行后的效果:

bubuko.com,布布扣

本文出自 “高文龙” 博客,请务必保留此出处http://gaowenlong.blog.51cto.com/451336/1569616

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

标签:vbs程序批量禁用域用户然后移动到指定ou

原文地址:http://gaowenlong.blog.51cto.com/451336/1569616

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!