活动目录管理---批量用户添加登录到指定计算机

     需求:公司采用域环境管理,所有用户都绑定到只能登录到某一台电脑使用,只在会议室增加一台公用电脑,为了方便资源访问,让所有用户都可以登录这台电脑使用,如果一个一个用户这样添加登录到指定电脑,是可以实现的,但工作量相当的大,因为有用户好几百,或几K的时候就成问题了。

     以下是通过参考微软官方技术支持文档改写的批处理,快速实现批量用户添加绑定到相应电脑登录。

运行环境:需在域服务器上以域管理员身份运行以下vbs批处理

1、批量添加,如把ou为:二级---行政部 里所有用户都开通可以使用计算机名为testpc的电脑

strNewComputer = "testpc"
Const ADS_SCOPE_SUBTREE = 2
Const ADS_PROPERTY_UPDATE = 2

Set objConnection = CreateObject("ADODB.Connection")
Set objCommand =   CreateObject("ADODB.Command")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"
Set objCommand.ActiveConnection = objConnection

objCommand.Properties("Page Size") = 1000
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE 

objCommand.CommandText = _
    "SELECT distinguishedName,userWorkstations FROM 'LDAP://ou=行政,ou=二级,dc=domain,dc=com' WHERE objectCategory='user'"  
Set objRecordSet = objCommand.Execute

objRecordSet.MoveFirst
Do Until objRecordSet.EOF
    strUserWS = objRecordSet.Fields("userWorkstations").Value
    strDN = objRecordSet.Fields("distinguishedName").Value
    Set objUser = GetObject("LDAP://" & strDN)
    If strUserWS <> "" And InStr(strUserWS,strNewComputer) = 0 Then 
            strTemp = strUserWS & "," & strNewComputer
            objUser.Put "userWorkstations",strTemp
            objUser.SetInfo
    End If
    objRecordSet.MoveNext
Loop

把上述脚本保存为add.vbs ,以域管理员权限在域服务器上执行即可。

 

 

2、批量删除,如撤销上述操作:

 

strNewComputer = "testpc"
Const ADS_SCOPE_SUBTREE = 2
Const ADS_PROPERTY_UPDATE = 2

Set objConnection = CreateObject("ADODB.Connection")
Set objCommand =   CreateObject("ADODB.Command")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"
Set objCommand.ActiveConnection = objConnection

objCommand.Properties("Page Size") = 1000
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE 

objCommand.CommandText = _
    "SELECT distinguishedName,userWorkstations FROM 'LDAP://ou=行政部,ou=二级,dc=domain,dc=com' WHERE objectCategory='user'"  
Set objRecordSet = objCommand.Execute

objRecordSet.MoveFirst
Do Until objRecordSet.EOF
    strUserWS = objRecordSet.Fields("userWorkstations").Value
    strDN = objRecordSet.Fields("distinguishedName").Value
    Set objUser = GetObject("LDAP://" & strDN)
    If InStr(strUserWS,strNewComputer) <> 0 Then
            strTemp = Replace(strUserWS,"," & strNewComputer,"")
            objUser.Put "userWorkstations",strTemp
            objUser.SetInfo
    End If
    objRecordSet.MoveNext
Loop

把上述脚本保存为delete.vbs ,以域管理员权限在域服务器上执行即可。

注:1、红色字体为根据用户实际环境修改;

    2、上述操作不影响原来已经添加有的计算机;

    3、由于实际环境的差异,请测试后再在生产环境下使用!

 















本文转自pimg200551CTO博客,原文链接: http://blog.51cto.com/pimg2005/1059737,如需转载请自行联系原作者


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值