Active Directory Import mit Schrägstrichen
Freitag 26. Februar 2010 von Christian Pohle
Bearbeite gerade ein Fehlerprotokoll von einem Active Directory Import, welches beim Versuch, zum Benutzerobjekt zu binden
Set objUser = GetObject(“GC://” & strDN)
einige Fehler E_ADS_BAD_PATHNAME auswirft. Die Referenz zum Benutzer (“strDN”) kommt aus einer Abfrage des Active Directory mit dem ADsDSOObject. Die fehlerhaften Benutzer enthalten doch tatsächlich in ihrem “distinguishedName” Schrägstriche, also ungefähr so
CN=Pohle, Christian – bis 31/12/2010,OU=…
Interessant dabei ist, daß die Schrägstriche nicht als Special Characters zurückgegeben werden, wie z.B. das Komma, das als “,” zurückgeliefert wird. Eine Suche im Internet fördert einen Artikel zutage, der dieses Problem auch behandelt und darauf hinweist, daß der Schrägstrich (“Slash”) im einschlägigen Microsoft Artikel nicht behandelt wird:
Dieser Microsoft Artikel aus der MSDN allerdings listet den Forward Slash als Special Character auf, erklärt aber nicht, warum dieser dann vom ADsDSOObject nicht auch schon escaped zurückgegeben wird:
Eine mögliche Erklärung liegt vielleicht im Änderungsdatum: Der Microsoft Artikel ist vom 7.7.2009 und der Artikel von Tomek ist vom 27.12.2006 – wahrscheinlich hat Microsoft inzwischen seinen Artikel überarbeitet aber natürlich nicht die Möglichkeit gehabt, das ADsDSOObject via Patches zu überarbeiten – nur eine Theorie. ADSIEdit und andere Tools liefern die Schrägstriche übrigens auch einfach unescaped zurück.
Nachdem ich zuerst überlegt hatte, die ganze Leseroutine auf GUID umzustellen (was aufwändiger gewesen wäre) habe ich als nächstes versucht, die Abfrage über den ADsPath vorzunehmen (Dabei viel mir auf, daß dieser den Slash sehr wohl escaped zurückliefert!), aber auch dazu hätte ich an der Importroutine einiges ändern müssen.
So bleibt es bei der einfachen Lösung: Wenn das ADsDSOObject nicht escaped, dann machen wir’s halt selbst:
‘ Add Escape Character to DNs containing Slashes
strDN = Replace(strDN, “/”, “/”)
Natürlich könnte man auch darüber diskutieren, ob es Sinn macht, im distinguishedName eines Benutzerobjekte Schrägstriche zu verwenden, aber die hier gezeigte Lösung ist einfacher…
Artikel, die Sie auch interessieren könnten:
- Mein Buch über die AS/400
- Hommage an analoge Bücher - ohne i und e
- DoCmd.Save in MS Access funktioniert nicht
- Test der neuen WordPress Thumbnails
- Reset eines WYSE XPe Client
- Unlock des neuen iPhone 3Gs
- Tipps für das Ansehen der Videos in unserem Blog
- Fototweets
- Linksys WRT54G3 V2 - UMTS Router für unterwegs
- Alternative zum CD oder DVD brennen
Dieser Beitrag wurde erstellt am Freitag 26. Februar 2010 um 10:50 und abgelegt unter Consulting, PSAG. Kommentare zu diesen Eintrag im RSS 2.0 Feed. Sie können einen Kommentar schreiben, oder einen Trackback auf Ihrer Seite einrichten. Drucken








