2010-02-08 5 views
6

Ich habe Code, der seit über einem Jahr nicht berührt wurde, aber die DCs wurden von 2008 auf 2008 R2 aktualisiert. Die AD-Leute behaupten, es ist nicht das DC-Upgrade aber das Problem begann sofort danach in gingVBScript Fehler beim Aufruf von GetObject ("WinNT: // JohnDoe, User")

Microsoft VBScript-Laufzeitfehler ‚800a0046‘
Zugriff verweigert. ‚GetObject‘

Es versagt auf dem Legen Sie die Gruppenlinie fest.

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 

Danke.

+0

In welchem ​​Benutzerkonto Kontext führt das Skript aus? Vielleicht ist es auf Domain-Ebene gesperrt (aber auf dem Rechner zwischengespeichert, auf dem es ausgeführt wird)? – Tomalak

+0

sollte es als COMPUTER-Konto ausgeführt werden. – ryan

+0

"Sollte"? Kannst du überprüfen? Wahrscheinlichkeiten sind, dass es wirklich eine echte "Zugriff verweigert" Nachricht ist. – Tomalak

Antwort

6

Ich musste den Code ändern, um die Benutzer-ID und PWD übergeben.

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 
Verwandte Themen