Shemeneto 11 Geschrieben 15. Juli 2010 Melden Teilen Geschrieben 15. Juli 2010 Hallo, verstehe gerade mal die Welt nicht mehr... :eek: Kurz erklärt lese ich, mit diesem Script" den ADSPath aller User in unserer Domäne aus um damit mit GetObject den User als Object zu holen, damit ich danach das HomeDirectory ändern kann. Den Pfad lese ich dann über objRS.Fields(0).Value (siehe Code unten) aus. Das Ganze sieht dann so aus: LDAP://CN=Administrator,CN=Users,DC=domain,DC=local Wenn ich nun versuche ein Userobject mit GetObject und dem ADSPath als Parameter zu holen, bekomme ich, wenn ich die Eigenschaften und Attribute des Userobjectes folgende Fehlermeldung: "...Der Moniker "" ist unbekannt..." Kopiere ich den ADSPath manuell als Parameter von GetObject funktioniert es wunderbar. Wo ist mein Fehler. Ich habe nun schon hundertmal drübergeschaut, ich kann keinen Fehler finden... :( Gruß, Shemeneto Dim strDomainDN, strBase, strFilter, strAttrs, strScope, objConn, objRS, objUser, homeD, newServer, newHomeD, ldapPath strDomainDN = "dc=bsgn,dc=mkk,dc=local" strBase = "<LDAP://" & strDomainDN & ">;" strFilter = "(&(objectclass=user)(objectcategory=person));" strAttrs = "ADSPath;" strScope = "subtree" Set objConn = CreateObject("ADODB.Connection") objConn.Provider = "ADsDSOObject" objConn.Open "Active Directory Provider" Set objRS = objConn.Execute(strBase & strFilter & strAttrs & strScope) objRS.MoveFirst While Not objRS.EOF Set objUser = GetObject(objRS.Fields(0).Value) homeD = objUser.Get("homeDirectory") homeD = Split(homeD, "\") If LCase(homeD(2)) = LCase("alterServer") Then newServer = "neuerServer" newHomeD = "\\" & newServer & "\" & homeD(3) & "\" & homeD(4) WScript.Echo newHomeD objUser.Put "homeDirectory", newHomeD objUser.SetInfo End If Set objUser = Nothing objRS.MoveNext Wend Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.