zoukankan      html  css  js  c++  java
  • 活动目录---批量用户添加登录到指定计算机

    需求:公司采用域环境管理,所有用户都绑定到只能登录到某一台电脑使用,只在会议室增加一台公用电脑,为了方便资源访问,让所有用户都可以登录这台电脑使用,如果一个一个用户这样添加登录到指定电脑,是可以实现的,但工作量相当的大,因为有用户好几百,或几K的时候就成问题了。
    以下是通过参考微软官方技术支持文档改写的批处理,快速实现批量用户添加绑定到相应电脑登录。
    运行环境:需在域服务器上以域管理员身份运行以下vbs批处理
    1、批量添加,如把ou为:one---one-users 里所有用户都开通可以使用计算机名为testpc的电脑

     1 strNewComputer = "testpc"
     2 Const ADS_SCOPE_SUBTREE = 2
     3 Const ADS_PROPERTY_UPDATE = 2
     4 
     5 Set objConnection = CreateObject("ADODB.Connection")
     6 Set objCommand =   CreateObject("ADODB.Command")
     7 objConnection.Provider = "ADsDSOObject"
     8 objConnection.Open "Active Directory Provider"
     9 Set objCommand.ActiveConnection = objConnection
    10 
    11 objCommand.Properties("Page Size") = 1000
    12 objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE 
    13 
    14 objCommand.CommandText = _
    15 "SELECT distinguishedName,userWorkstations FROM 'LDAP://ou=one-users,dc=one,dc=com' WHERE objectCategory='user'"  
    16 Set objRecordSet = objCommand.Execute
    17 
    18 objRecordSet.MoveFirst
    19 Do Until objRecordSet.EOF
    20     strUserWS = objRecordSet.Fields("userWorkstations").Value
    21     strDN = objRecordSet.Fields("distinguishedName").Value
    22     Set objUser = GetObject("LDAP://" & strDN)
    23     If strUserWS <> "" And InStr(strUserWS,strNewComputer) = 0 Then 
    24             strTemp = strUserWS & "," & strNewComputer
    25             objUser.Put "userWorkstations",strTemp
    26             objUser.SetInfo
    27     End If
    28     objRecordSet.MoveNext
    29 Loop

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

     1 strNewComputer = "testpc"
     2 Const ADS_SCOPE_SUBTREE = 2
     3 Const ADS_PROPERTY_UPDATE = 2
     4 
     5 Set objConnection = CreateObject("ADODB.Connection")
     6 Set objCommand =   CreateObject("ADODB.Command")
     7 objConnection.Provider = "ADsDSOObject"
     8 objConnection.Open "Active Directory Provider"
     9 Set objCommand.ActiveConnection = objConnection
    10 
    11 objCommand.Properties("Page Size") = 1000
    12 objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE 
    13 
    14 objCommand.CommandText = _
    15     "SELECT distinguishedName,userWorkstations FROM 'LDAP://ou=one-users,dc=one,dc=com' WHERE objectCategory='user'"  
    16 Set objRecordSet = objCommand.Execute
    17 
    18 objRecordSet.MoveFirst
    19 Do Until objRecordSet.EOF
    20     strUserWS = objRecordSet.Fields("userWorkstations").Value
    21     strDN = objRecordSet.Fields("distinguishedName").Value
    22     Set objUser = GetObject("LDAP://" & strDN)
    23     If InStr(strUserWS,strNewComputer) <> 0 Then
    24             strTemp = Replace(strUserWS,"," & strNewComputer,"")
    25             objUser.Put "userWorkstations",strTemp
    26             objUser.SetInfo
    27     End If
    28     objRecordSet.MoveNext
    29 Loop

    转载:http://blog.51cto.com/pimg2005/1059737

  • 相关阅读:
    Java实现AES加密
    spring定时任务详解(@Scheduled注解)
    springBoot 项目war包部署及改为war包后资源路径错误问题
    (转)如何在maven的pom.xml中添加本地jar包
    HttpClient MultipartEntityBuilder 上传文件
    Java BigDecimal详解
    mysq带条件的分页查询数据结果错误
    jstack生成的Thread Dump日志线程 分析
    jquery将表单序列化
    java jdk动态代理学习记录
  • 原文地址:https://www.cnblogs.com/mrstephen/p/9673675.html
Copyright © 2011-2022 走看看