天天看點

活動目錄管理---批量使用者添加登入到指定計算機

     需求:公司采用域環境管理,所有使用者都綁定到隻能登入到某一台電腦使用,隻在會議室增加一台公用電腦,為了友善資源通路,讓所有使用者都可以登入這台電腦使用,如果一個一個使用者這樣添加登入到指定電腦,是可以實作的,但工作量相當的大,因為有使用者好幾百,或幾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、批量删除,如撤銷上述操作:

    If InStr(strUserWS,strNewComputer) <> 0 Then

            strTemp = Replace(strUserWS,"," & strNewComputer,"")

把上述腳本儲存為delete.vbs ,以域管理者權限在域伺服器上執行即可。

注:1、紅色字型為根據使用者實際環境修改;

    2、上述操作不影響原來已經添加有的計算機;

    3、由于實際環境的差異,請測試後再在生産環境下使用!

本文轉自pimg200551CTO部落格,原文連結: http://blog.51cto.com/pimg2005/1059737,如需轉載請自行聯系原作者

繼續閱讀