Leider kann ich das Problem nicht nachvollziehen. Alle Programme, die MEIN Dienst startet, sagen mir auch, dass sie unter dem aktuellen Benutzernamen laufen (höhere Rechte hab ich jetzt nicht geprüft).
Hast du vielleicht einen Fehler in deinem Code? - Hat CreateProcessAsUser das
UNICODE-Flag? - Dump mal den Environment-Block. Steht da wenigstens alles richtig drin?
Bernhard
PS: Mit aktueller Benutzername ist auch gemeint, dass sowohl ProcessExplorer, TaskManager als auch GetUserName() das gleiche Ergebnis liefern.