ADPREP "multi-language" ;-)

ADPREP "multi-language" ;-)

  • Comments 8
  • Likes

Servus, Fabian am Bildschirm. Neulich habe ich mit einem Kunden an einem Problem gearbeitet, welches ich hier nicht vorenthalten will. Da es sich um eine sehr spezielle und wahrscheinlich seltene Konstellation handelt, wird wohl eher kein KB-Artikel dazu erscheinen ;-) : 

Ein Kunde von uns hatte einen ersten Windows Server 2008 installiert, der Member-Server in einer Windows Server 2003 Active Directory Testumgebung war. Um ein geplantes Schema-Update für den Produktions-Forest zu testen, war der Test-Forest ähnlich dem Produktions-Forest eingerichtet, inklusive des Schemas bzw. der vorhandenen Schema-Erweiterungen.

Es sollte nun mittels ADPREP der Test-Forest von Windows Server 2003 R2 Schema-Version 31 auf Schema-Version 44, also Windows Server 2008, angehoben werden. Also: DVD herausgesucht, ADPREP /FORESTPREP aufgerufen und auf Rückmeldung gewartet. Und gewartet... Und gewartet...

Aber es passierte nichts - die CMD blieb schwarz. Das Schema wurde natürlich auch "im Hintergrund" nicht erweitert, das leere Fenster ließ sich nur über die Tastenkombination <CTRL> + <C> dazu bewegen, wieder einen Command Prompt anzuzeigen.

Nach einiger Zeit des Testens kamen wir dann eigentlich nebenbei darauf, daß der installierte Server ein mit englischer MUI installierter Server war, die verwendete DVD jedoch eine deutsche. Ok dachte ich, das dürfte doch nun wirklich nicht das Problem sein, schließlich ist das ab Windows Vista bzw. Windows Server 2008 kein Thema mehr. Aber gut, lieber noch einmal getestet, bevor man lange nach einem Problem sucht, welches so nah liegt.

Ich schickte also das ADPREP-Verzeichnis einer englischen Installations-DVD vom Windows Server 2008 per E-Mail an unseren Kunden und er testete dieses ADPREP - und siehe da, es funktionierte. ADPREP lieferte den gewünschten Bildschirm mit den wichtigen Hinweisen, was während des ADPREPs passiert. Nach dem Bestätigen der Hinweise wurde das Schema-Update problemlos durchgeführt.

Nun gut, also lag es wohl doch an der unterschiedlichen Sprache - nur warum?

Wir zogen dann mittels Process Monitor einen Trace des Starts von ADPREP und konnten folgende Zugriffe filtern (Fettschrift manuell eingefügt):

10806 13:35:53,8176748 adprep.exe 3300 IRP_MJ_CREATE D:\adprep\en-US\adprep.exe.mui PATH NOT FOUND Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: n/a, ShareMode: Read, Delete, AllocationSize: n/a


10807 13:35:53,8178237 adprep.exe 3300 IRP_MJ_CREATE D:\adprep\en\adprep.exe.mui PATH NOT FOUND Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: n/a, ShareMode: Read, Delete, AllocationSize: n/a

10808 13:35:53,8180276 adprep.exe 3300 IRP_MJ_CREATE D:\adprep\adprep.exe.mui NAME NOT FOUND Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: n/a, ShareMode: Read, Delete, AllocationSize: n/a

Aha! ADPREP nutzt die Datei "adprep.exe.mui", um die Textausgaben während der Ausführung zu generieren. In dieser Datei sind also die Texte gespeichert, die zur Ausführung des Programms notwendig sind bzw. zur Kommunikation mit dem Administrator davor. Diese Datei liegt standardmäßig im ADPREP Locale-Verzeichnis (z.B. en-US, de-DE, fr-FR) der Installations-DVD, etwa "%DVD_DRIVE%\SOURCES\ADPREP\en-US\adprep.exe.mui".

Während der Ausführung liest ADPREP das Locale des Servers aus, auf dem es läuft. Es versucht dann, den Locale-Pfad auf der DVD zu finden (oder natürlich beispielsweise den lokalen Pfad, wenn das Verzeichnis vorher lokal auf das System kopiert wurde). Ist der Server also, wie in unserem Fall, ein en-US System bzw. mit diesem Locale installiert, wird die Datei "adprep.exe.mui" im Unterverzeichnis "en-US" des Installationsverzeichnisses von ADPREP gesucht werden. Auf der deutschen Installations-DVD ist die Datei jedoch unter dem Verzeichnis "de-DE" gespeichert. Da liegt das Problem.

Wie man im oben gezeigten Procmon Trace sehen kann, wird die Datei automatisch an drei Orten gesucht:

  1. D:\adprep\en-US\adprep.exe.mui
  2. D:\adprep\en\adprep.exe.mui
  3. D:\adprep\adprep.exe.mui

Da die Datei jedoch in allen drei Verzeichnissen nicht gefunden werden konnte, gab ADPREP keinerlei Meldungen auf dem Schirm aus und die CMD blieb "leer".

"Verantwortlich" für dieses Verhalten ist der Universal Installer, den ADPREP zum Einlesen der benötigten Daten (so auch der Sprachdatei) nutzt.

Mögliche Lösungen für dieses Problem können also sein:

  1. Man kann das Sprachverzeichnis umbenennen, in unserem Beispiel einfach von "de-DE" in "en-US".
  2. Es wäre auch möglich, die "adprep.exe.mui" in das gleiche Verzeichnis zu kopieren, in der die Datei "adprep.exe" liegt.
  3. Der letzte und empfohlene Punkt ist, schlichtweg eine Installations-DVD der selben Sprache, wie die Installationsprache des Windows Server 2008 Systems es ist, zu verwenden. ;-)

Bis dann, Fabian.

Comments
  • Hallo Fabian,

    vielen Dank für diesen interessanten Artikel. Aber ich glaube scho, dass es solche Umgebungen öfter gibt, also mit unterschiedlichen Sprachen. Vermutlich wird dort aber häufig sofort eine englisches Installationsmedium verwendet, daher fällt es nicht auf.

    2 Fragen dazu:

    Wie sieht soetwas denn Kostentechnisch aus. Muss der Kunde für ein Problem welches hier ja eindeutig vorliegt auch die Kosten des Supports tragen?

    Wird soetwas von euch intern dann getrackt um zB in einer der nächsten Versionen des OS behoben zu sein?

    Schöne Grüße

    Peter Forster

    MVP Virtual Machine

  • Hallo Peter,

    vielen Dank für Deine Rückmeldung.

    Du hast grundsätzlich Recht – das Problem kann theoretisch öfters auftreten. In der Praxis haben wir davon jedoch - außer in diesem einen Fall - bisher nichts davon gehört (und wir haben natürlich auch ein Auge auf die Community ;-) …). Daher dieser Blog Eintrag.

    Unsere Empfehlung ist in jedem Fall, die DVD gleich der Installationssprache zu wählen, dann vermeidet man unnötige Probleme. Das gilt sicherlich auch für andere Szenarien.

    Zu Deinen Fragen:

    a) Es muß immer im Einzelfall entschieden werden ob wir das als Bug behandeln oder als nicht getestetes Szenario. Davon ist die Einstufung dann abhängig. Im Zweifel also direkt und offiziell beim Microsoft Support nachfragen. Siehe Punkt 1 und 2 in http://blogs.technet.com/deds/about.aspx ;-).

    b) Auf jeden Fall werden solche Dinge von uns getrackt. Dadurch können wir ggf. bei Wiederholungsfällen die Lösung intern schneller finden und natürlich auch – falls notwendig – KB-Artikel verfassen, das Problem fixen oder in neueren Versionen beheben. Im Moment gibt es für die konkrete Problematik keinen Hotfix – jedoch haben wir das für das nächste Release mit eingestreut. Zum jetzigen Zeitpunkt kann man jedoch noch nicht sagen, inwieweit das dann auch mit einfließt (Stichworte „Business Impact“, Anzahl der gemeldeten Probleme etc.).

    Viele Grüße,

    Fabian

  • Hallo Fabian,

    ad a) Schon klar dass im Einzelfall entschieden wird, das mit dem About kenne ich bereits... *gg*

    ad b) Verstehe ich auch. Ich bin davon ausgegangen dass Ihr soetwas intern trackt und klar ist es abhängig wie oft dieser Fehler in Live-Systemem auftritt.

    Danke für deine Ausführungen

    Peter Forster

    MVP Virtual Machine

    Austria

  • Hi,

    Danke für die Hilfe, bin gerade über das Problem gestolpert und war sehr froh, so eine gut dokumentierte Hilfe gefunden zu haben, also kann es dann doch nicht der von ihnen beschriebene Einzelfall sein ;)

    Danke und Gruß

    Sebastian

  • Hi Sebastian,

    es freut mich, daß Dir dieser Blog-Eintrag weitergeholfen hat. :-)

    Jetzt am besten auch gleich den "Aktives Verzeichnis" Blog als RSS-Feed mit in Deinen Feed-Reader aufnehmen und zukünftig immer mit interessanten Artikeln versorgt werden. ;-)

    Viele Grüße

    Fabian

  • Auch ich möchte mich für den Blog bedanken, weil ich genau das selbe Problem hatte. Da ist ein gut dokumentierter Erfahrungswert wie ihr ihn eingestellt habt schon viel wert.

    lg

    Fritz

  • VIelen Dank, hat mir Heute den Ar*** gerettet. ;-)

    Gruß aus Fürth

  • Mensch, Du hast mir eine schnelle Lösung mit dem kopieren von adprep gebracht! Besten Dank!!!

Your comment has been posted.   Close
Thank you, your comment requires moderation so it may take a while to appear.   Close
Leave a Comment