调用GetObject时出现VBScript错误("WinNT:// JohnDoe,User")

rya*_*yan 6 vbscript activex adsi active-directory

我有一年多没有涉及的代码,但DC从2008年升级到2008 R2.AD人员声称这不是DC升级,但问题在此之后很快就开始了.

Microsoft VBScript运行时错误'800a0046'
权限被拒绝:'GetObject'

它在Set Group系列上失败了.

Set Group = GetObject("WinNT://" & Logon_name & ",User")

For each Member in Group.Groups
  If Member.Class = "Group" then
    If Member.Name = "TEST_AD_GROUP" Or Member.Name = "TEST_AD_GROUP2" then
      x = "true"
      Exit For
    End If
  End If
Next
Run Code Online (Sandbox Code Playgroud)

谢谢.

rya*_*yan 6

我不得不更改代码以传递userid和pwd.

Set objIADS = GetObject("WinNT:").OpenDSObject("WinNT://" & strDomain, strUsername, strPassword, ADS_SECURE_AUTHENTICATION)
Set objIADSUser = objIADS.GetObject("user", strUsername)

For each Member in objIADSUser.Groups
    If Member.Class = "Group" then
        If Member.Name = "TEST_AD_GROUP" then
            x = "true"
            EXIT FOR
        End If
    End If
Next
Run Code Online (Sandbox Code Playgroud)