从批处理文件更改允许登录计算机的列表

从批处理文件更改允许登录计算机的列表

如何从批处理文件更改此设置?对于任何给定用户,我如何才能使他们只能登录名为 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"

相关内容