Jeder Windows-Benutzer ist dankbar für die Möglichkeit beim Start der Oberfläche
Programme automatisch starten zu lassen. Meist geschieht dies durch das Hinzufügen
einer Verknüpfung in den Autostart-Ordner des Startmenüs. Dies ist jedoch nur
ein möglicher Weg zum Ziel. Microsoft hat z.B. Windows XP mehr als 15 Autostart-Möglichkeiten
spendiert, sieht man mal von der alten WIN.INI und anderen Relikten aus der
Vergangenheit ab, die unter XP immer noch existieren. Alle hier vorgestellten
Wege beziehen sich immer auf wiederkehrende Autostarts und einige davon sind
sogar undokumentiert.
Dokumentiert
Fange wir mal vorne an, mit den besagten Autostart-Ordnern des Startmenüs.
Es gibt derer zwei, denn wird Windows in einem bestimmten Benutzer-Kontext geladen,
werden alle Verknüpfungen des Ordners
(1) C:\Dokumente und Einstellungen\<username>\Startmenü\Programme\Autostart
geladen und zudem die der sog. "All Users" (gilt für alle Benutzer, die sich
an der Maschine anmelden) unter
(2) C:\Dokumente und Einstellungen\All Users\Startmenü\Programme\Autostart
Weitere wiederkehrende Autostarts verbergen sich in der der Registry. Der bekannteste
davon ist der sog. RUN-Schlüssel unter
(3) HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
gültig für die Maschine, d.h. für alle Benutzer und
(4) HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
gültig lediglich für den aktuell angemeldeten Benutzer.
Für letzteren gibt es zwei weitere Einträge in der Registry:
(5) HKEY_CURRENT_USER\Software\Microsoft\Windows
NT\CurrentVersion\Windows\Run
(6) HKEY_CURRENT_USER\Software\Microsoft\Windows
NT\CurrentVersion\Windows\Load
Wer mit Policies arbeitet, dem bieten sich zudem die beiden folgenden Alternativen:
(7) HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run
(8) HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run
Weiterhin werden beim Login folgende Registry-Schlüssel ausgewertet:
(9) HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\System\Scripts\Logon
(10) HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\System\Scripts\Logon
Undokumentiert
Damit wären die klassischen Registry-Autostarts beschrieben. Es gibt jedoch
noch zwei weitere, die es jedoch in sich haben. Wie wir wissen ist der Desktop
nichts anderes als eine Sicht des Windows Explorers. Der Start des Desktops
ist jedoch nicht fest verdrahtet. Vielmehr wird durch ein recht merkwürdiges
Konstrukt aus der Registry ausgelesen welches Programm als sog. Shell des Windows-Systems
dienen soll. Im Schlüssel
(11) HKEY_LOCAL_MACHINE\Software\Microsoft\Windows
NT\CurrentVersion\Winlogon\Userinit
ist das Programm USERINI.EXE eingetragen, das nicht anderes tut, als
den Wert eines weiteren Registry-Schlüssels auszulesen und das dort enthaltene
Programm zu starten:
(12) HKEY_LOCAL_MACHINE\Software\Microsoft\Windows
NT\CurrentVersion\Winlogon\Shell
Im Normalfall steht im Schlüssel 12 EXPLORER.EXE. Es gibt aber nicht
was uns daran hindert einen weiteren Eintrag hinzuzufügen und beide Einträge
mit einem Komma zu separieren. Das gleiche funktioniert auch mit Schlüssel 11!
Folgenden Schlüsselwerte sind gültig:
11 = C:\WINDOWS\system32\userinit.exe,notepad.exe,calc.exe
12 = explorer.exe,sol.exe
Es werden der Desktop, der Taschenrechner, der Editor und das Spiel Solitär
gestartet. Wichtig ist jedoch die Einträge C:\WINDOWS\system32\userinit.exe
und explorer.exe zu belassen, denn sonst klappts nicht mit dem Desktop-Start.
Bezüglich der Shell gibt's es jedoch noch drei weitere Einträge, die sich
jedoch gegenseitig ausschließen, wobei sich immer die Benutzer-bezogenen Einträge
bzw. Policy-bezogenen Einträge auswirken.
(13) HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System\Shell
(14) HKEY_CURRENT_USER\Software\Microsoft\Windows
NT\CurrentVersion\Winlogon\Shell
(15) HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System\Shell