从batch file更改允许的login计算机的列表

如何从batch file更改此设置? 对于任何给定的用户,我怎样才能使他们只能login到计算机名为abc? vbs或powershell脚本将是我的第二select。

在这里输入图像说明

您需要更新用户的“userWorkstations”AD属性。

在VBS中它会是这样的:

 在错误恢复下一步
 Const ADS_SCOPE_SUBTREE = 2
 Set ObjRootDSE = GetObject(“LDAP:// RootDSE”)
 strOU =“OU = SCRIPT,DC =公司,DC =本地”

 Set objConnection = CreateObject(“ADODB.Connection”)
设置objCommand = CreateObject(“ADODB.Command”)
 objConnection.Provider =“ADsDSOObject”
 objConnection.Open“Active Directory Provider”
设置objCommand.ActiveConnection = objConnection

 objCommand.Properties(“页面大小”)= 1000
 objCommand.Properties(“Searchscope”)= ADS_SCOPE_SUBTREE 
 objCommand.Properties(“Sort On”)=“SN”

 objCommand.CommandText = _
     “SELECT Name,displayName,distinguishedName FROM'LDAP://”&strOU&“'WHERE objectCategory ='user'” 

设置objRecordSet = objCommand.Execute
 objRecordSet.MoveFirst 
直到objRecordSet.EOF

     usrDN = objRecordSet.Fields(“distinguishedName”)。Value
     Set objUser = GetObject(“LDAP://”&objRecordSet.Fields(“distinguishedName”)。Value)

     Err.Clear
    设置objCnt = GetObject(“LDAP://”&usrDN)
        如果(Err.Number> 0)那么
        其他 
             objUser.userWorkstations =“abc”
             objUser.SetInfo
        万一 
     objRecordSet.MoveNext

    循环
 objRecordSet.Close
 Set objRecordSet = Nothing
设置objCommand = Nothing
 objConnection.Close
 Set objConnection = Nothing
 WScript.Quit

这将获取顶级“SCRIPT”OU中的所有用户,并修改每个用户的userWorkstation属性。 显然你可以根据需要操纵它。

此外,正如Greg指出的那样,该属性不是一个数组,并且可以指定多个工作站:

objUser.userWorkstations = "computer1,computer2,computer3"