Zulässige Windows-Anwendung oder nicht?

Aus der Kategorie „unglaublich“ kommt heute eine Problemmeldung eines Kunden. Sein Windows Server 2008 scheiterte, beim Versuch einen bestimmten Dienst (nennen wir ihn hier XYZ) zu starten, und schrieb den Fehlercode „%%193“ mit der Meldung „XYZ ist keine zulässige Win32-Anwendung“ ins Ereignisprotokoll.

Spontan denkt man natürlich an ein beschädigtes Binary, wobei da ja bereits der Installer hätte aufschreien müssen, aber zur Sicherheit prüft man es und ruft das Binary auf der Konsole im Debug-Modus auf und… es läuft anstandslos.

Das Rätsels Lösung ist ein Windows-Fehler der unter Q325680 bei Microsoft bekannt ist: Wenn der Pfad, unter dem ein Dienst installiert ist, mit einem Wort (!) beginnt und es eine Datei im Wurzelverzeichnis das Datenträgers gibt, die dasselbe Wort als Name hat, dann kann der Dienst nicht gestartet werden.

In diesem Fall war der Dienst unter „C:\Program Files (x86)\ABX\XYZ.exe“ installiert und es gab – von einem anderen Programm – eine Logdatei „C:\Program“. Für Windows Grund genug um den Dienst XYZ nicht mehr starten zu wollen.