jft*_*uga 1 login active-directory batch-file
如何从批处理文件更改此设置?对于任何给定的用户,我怎样才能让他们只能登录名为 abc 的计算机?vbs 或 powershell 脚本将是我的第二选择。

您需要为用户更新“userWorkstations”AD 属性。
在 VBS 中,它会是这样的:
出错时继续下一步
常量 ADS_SCOPE_SUBTREE = 2
Set ObjRootDSE = GetObject("LDAP://RootDSE")
strOU = "OU=SCRIPT,DC=公司,DC=本地"
Set objConnection = CreateObject("ADODB.Connection")
Set objCommand = CreateObject("ADODB.Command")
objConnection.Provider = "ADsDSOObject"
objConnection.Open“活动目录提供程序”
设置 objCommand.ActiveConnection = objConnection
objCommand.Properties("页面大小") = 1000
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE
objCommand.Properties("Sort On") = "SN"
objCommand.CommandText = _
“选择名称、显示名称、专有名称 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)
错误清除
Set objCnt = GetObject("LDAP://" & usrDN)
如果 (Err.Number > 0) 那么
别的
objUser.userWorkstations = "abc"
objUser.SetInfo
万一
objRecordSet.MoveNext
环形
objRecordSet.Close
设置 objRecordSet = 无
设置 objCommand = 无
objConnection.Close
设置 objConnection = 无
WScript.退出
这将获取顶级“SCRIPT”OU 中的所有用户,并为每个用户修改 userWorkstation 属性。显然,您可以根据需要对其进行操作。
此外,正如 Greg 指出的,该属性不是数组,要指定多个工作站,您将使用:
objUser.userWorkstations = "computer1,computer2,computer3"
Run Code Online (Sandbox Code Playgroud)