【问题标题】:Creating list of user's groups and nested groups in VBScript在 VBScript 中创建用户组和嵌套组的列表
【发布时间】:2014-08-04 17:31:01
【问题描述】:

我在 VBScript 中遇到了一个问题,我的登录脚本只能看到用户直接所在的组,而不是用户间接所在的嵌套组。例如,如果 User1 在 GroupA 中,而 GroupA 在 GroupB 中,则脚本无法识别 User1 也是 GroupB 的成员。

Set objNetwork = WScript.CreateObject("WScript.Network")
strUserName = objNetwork.UserName
strComputerName = objNetwork.ComputerName
strUserDomain = objNetwork.UserDomain
Set objUser = GetObject("WinNT://" & strUserDomain & "/" & strUserName & ",user"
strGroupList = ""
For Each objGroup In objUser.Groups
    strGroupList = strGroupList & "[" + objGroup.Name & "] " 
    GetNested(objGroup)
Next 

GetNested 定义如下(从嘿,脚本专家的文章中得到,稍作修改)

Function GetNested(objGroup)
    On Error Resume Next
    colMembers = objGroup.GetEx("memberOf")
    For Each strMember in colMembers
        strPath = "LDAP://" & strMember
        Set objNestedGroup = GetObject(strPath)
        strGroupList = strGroupList & "[" + objNestedGroup.Name & "] "
        GetNested(objNestedGroup)
    Next
End Function

感谢任何帮助。

【问题讨论】:

    标签: windows vbscript active-directory


    【解决方案1】:

    找到我自己的答案。这里的问题似乎源于 WinNT 和 LDAP 的混合。

    Set objSysInfo = CreateObject("ADSystemInfo")
    strUser = objSysInfo.UserName
    Set objUser = GetObject("LDAP://" & strUser)
    

    使用 LDAP 创建 objUser 有效。希望这对其他人也有帮助

    【讨论】:

      猜你喜欢
      • 2014-02-02
      • 2019-04-16
      • 2015-04-29
      • 1970-01-01
      • 1970-01-01
      • 2021-08-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多