And winlogon is the one that starts the Service Control Manager, and so, the services, and so, your AutoExnt.bat. This means that winlogon is necessarily started before AutoExnt.bat.
Which, provided that minlogon (which is NOT Winlogon) behaves the same (IMHO it should) might (or might not) work to start a .bat or .vbs before the Explorer Shell (which is was the OP asked).
To recap, what was asked was "how to start a process before the Explorer shell is launched?" (and not "before Winkogon" and not any other question)
The provided scenario is:
- the os is Windows XP (and NOT a PE)
- the os is at SP2 (and not at any other Service Pack level)
- the os starts using the minlogon component (and not Winlogon)
It was NOT specified (missing data)
- if the launched process needed to be interactive or not
- if the launched process should display *anything* to the user
Until OP does not correct/update the provided parameters and supplies the missing data (and also tests the suggested approach and reports) we are only making (more or less educated ) guesses.
Using the AutoExecNT approach, BTW, is not much different from the suggestion Betrand originally made here:
and it is very possible that being a "MS original" solution, the AutoExecNT service starts either "very fast" or "very early" avoiding the "timing problems" I cited.
As I see it , an important point that everyone seems to ignore/skip over is that the minlogon is d@mn faster in booting and logging in than "normal" Winlogon, even if the system is set to "autologon".