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

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

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

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

程序执行后的效果:

时间: 2024-08-03 20:01:44

vbs程序批量禁用域用户然后移动到指定OU的相关文章

windows2012利用Excel生成批处理自动批量创建域用户

如图: 命令行就是用以下公式生成 ="dsadd user cn="&C3&",ou="&G3&",ou="&F3&",dc=t,dc=com -upn "&D3&"@t.com -samid "&D3&" -pwd "&E3&" -memberof cn="&H3

如何批量增加域用户

域部署完成之后,通常要面临超大规模的域用户添加,这时批量添加就显得更为高效. 这里提供一个批量添加的批处理来实现批量处理功能. 首先建立useradd.cmd 和 list.txt两个文件 编辑useradd.cmd文件,内容大致如下: @echo on c: for /f %%i in (list.txt)  do dsadd user "CN=%%i,OU=销售一部,OU=销售部,OU=RenRen,DC=RenRen,DC=com"  -display %%i -ln %%i -

PowerShell 批量添加域用户(Windows 2012 R2)

PowerShell版本 1. 实施的前提请准备好相关域用户信息,一般都是Excel表,格式如下 注:为了方便导入,我将PowerShell相关名与表格中值一一对应. Group组织单元需要提前建立出来,也可以用PowerShell命令 用户密码我是用函数来做的,数字+字母最好,但是有些字母数字,如数字0和小写字母o和大写字母O,给用户及运维工作人员带来不便,固我采用了随机数字+固定字母来做. 2. 将表格另存为后缀名.CSV格式文件(该文件会以逗号形式隔开每个字符串值),若表中有中文,需要我们

批量把域用户加入到用户组

在exchange服务器中创建了用户账户,AD域控上同时也显示出来. 按照要求需要把这些账户加入到指定的组"aaa"中. 由于账户过多,采用脚本来批量进行添加: 1.在域控中,在D盘创建一个TXT文件为name.并在文件中列出你要加入的域用户的邮件地址.(英文) 2. 在cmd终端下,先进入name.txt文件所在的盘符.我在D盘,所以: cd /D: 3.然后输入命令: Import-csv D:\name.txt | foreach {add-distributiongroupme

Win2008/2012r2下批量更改域用户密码

使用Windows PowerShell批量更改AD用户的密码,使用以下命令,修改对应字段,执行即可. 1.打开Windows PowerShell加载AD模块: Import-Module ActiveDirectory2.更改所有域用户的密码:Get-ADUser -filter * -SearchBase 'DC=xxx,DC=com' | Set-ADAccountPassword -Reset -NewPassword (ConvertTo-SecureString -AsPlainT

AD中批量导入域用户的命令

大多数项目在数据初始化时,最头疼的一件事儿就是往AD域中建用户,下边介绍一种快速创建域用户的方法: 第一步:将需要初始化的用户数据整理至Excel表中,并将Excel文件存成 .CSV格式.(注意:Excel表中需要存放的列有:姓,名,姓名,登录名,密码) 第二部:用管理员身份运行CMD,并输入以下命令: “for /f "tokens=1,2,3,4,5 delims=," %a in (用户.csv) do dsadd user "cn=%c,ou=test,dc=crm

批量添加域用户,并将用户添加到指定组。

@echo off for /f "skip=1 eol=; tokens=1-9 delims=, " %%a in (c:\1.csv) do dsadd user cn=%%a,ou=user,ou=horizon,dc=pvs,dc=com -upn %%[email protected] -samid %%b -pwd %%c -ln %%d -mustchpwd yes #这是批量添加用户的脚本,需要从1.csv文件中取数据,其中 %%a csv文件中的A列,定义了姓名 %

批处理批量创建域用户

1. For 循环 C:\>for /f "tokens=1,2 delims=," %a in (user.csv) do dsadd user "cn=%a,ou=hho,dc=worx,dc=net" -upn %[email protected] -fn %a -pwd %b -pwdneverexpires -disabled no 上面的csr文件里内只写了两列数据,一列是用户,一列是密码. 2. Dsadd user 参数 http://blog

windows批量创建域用户

创建用户it1-20 for /l %i in (1,1,20) do net user it%i Skills39 /add 从1到20 连续1到20     用户名it   密码  Skills39 (1,2,20) 间隔一个1到20 dsadd user cn=user1,cn=users,dc=worldskills2019,dc=sh  -display user1 -pwd [email protected] -hmdir c:\user1 cn=用户名,cn=目录,dc=域名,dc