2010-02-08 27 views
6

Ho codice che non è stato toccato in un anno, ma i controller di dominio sono stati aggiornati dal 2008 al 2008 R2. La gente AD sostengono che non è l'aggiornamento continua, ma il problema ha iniziato subito dopo che è andato inErrore VBScript quando si chiama GetObject ("WinNT: // JohnDoe, Utente")

Microsoft VBScript errore di runtime '800a0046'
Autorizzazione negata:. 'GetObject'

E 'mancato il Imposta la linea di gruppo.

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 

Grazie.

+0

In quale contesto di account utente viene eseguito lo script? Forse è bloccato a livello di dominio (ma memorizzato nella cache sulla macchina su cui viene eseguito)? – Tomalak

+0

dovrebbe essere in esecuzione come account COMPUTER. – ryan

+0

"Dovrebbe"? Puoi controllare? È probabile che sia davvero un messaggio di "accesso negato". – Tomalak

risposta

6

ho dovuto modificare il codice per passare in userid e 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 
Problemi correlati