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

6

我有一段代码已经一年没有改动了,但是DC从2008升级到了2008 R2。AD人员声称这不是DC升级的问题,但问题确实在DC升级后很快出现了。

Microsoft VBScript runtime error '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

谢谢。

脚本在哪个用户账户上下文中执行?也许在域级别上被锁定(但在执行该脚本的计算机上被缓存)? - Tomalak
它应该作为计算机账户运行。 - ryan
“应该”?你能检查一下吗?很有可能这是一个真正的“访问被拒绝”的消息。 - Tomalak
它正在计算机账户下运行。 - ryan
1个回答

7

我必须更改代码以传递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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接