如何从批处理文件更改此设置?对于任何给定用户,我如何才能使他们只能登录名为 abc 的计算机?vbs 或 powershell 脚本将是我的第二选择。
答案1
您需要更新用户的“userWorkstations”AD 属性。
在 VBS 中它将会像这样:
出错时继续下一步 常量 ADS_SCOPE_SUBTREE = 2 设置 ObjRootDSE = GetObject("LDAP://RootDSE") strOU = "OU=SCRIPT,DC=公司,DC=本地" 设置 objConnection = CreateObject("ADODB.Connection") 设置 objCommand = CreateObject("ADODB.Command") objConnection.Provider = “ADsDSOObject” objConnection.Open“Active Directory 提供程序” 设置 objCommand.ActiveConnection = objConnection objCommand.Properties("页面大小") = 1000 objCommand.Properties("搜索范围") = ADS_SCOPE_SUBTREE objCommand.Properties("排序依据") = "SN" objCommand.命令文本 = _ “从‘LDAP://’&strOU&“ 中选择名称、显示名称、专有名称,其中 objectCategory=‘用户’” 设置 objRecordSet = objCommand.Execute 记录集.MoveFirst
执行直到 objRecordSet.EOF usrDN = objRecordSet.Fields("distinguishedName").值 设置 objUser = GetObject("LDAP://" & objRecordSet.Fields("distinguishedName").Value) 清除错误 设置 objCnt = GetObject("LDAP://" & usrDN) 如果 (Err.Number > 0) 那么 别的 objUser.userWorkstations = “abc” 设置用户信息 万一 移动下一个记录 环形 objRecordSet.关闭 设置 objRecordSet = Nothing 设置 objCommand = Nothing 关闭连接 设置 objConnection = Nothing WScript.退出
这将获取顶级“SCRIPT”OU 中的所有用户并修改每个用户的 userWorkstation 属性。显然,您可以根据需要对其进行操作。
另外,正如 Greg 指出的那样,该属性不是一个数组,要指定多个工作站,您可以使用:
objUser.userWorkstations = "computer1,computer2,computer3"