如何从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"