pcwAutostart: Autostart-Wächter
Download zu diesem Artikel:
Selbstherrliche Tools, autoritäre Administratoren und schädliche Trojaner pflegen nicht zu fragen, was der Anwender wünscht. Mit unserem Tool pcwAutoStart behalten Sie die Kontrolle über den Windows-Start
Herzlich willkommen im Labyrinth des Windows-Autostarts: Im Systray wuchern bunte Icons, und der Task-Manager offenbart Programme, von denen Sie noch nie gehört haben. Jeder Software- oder Viren-Entwickler kann sein Programm automatisch bei jedem Windows-Start aufrufen, ohne dass Sie es merken. Und wenn doch, stehen Sie vor dem beträchtlichen Problem, die Laderampe des Programms zu finden und zu leeren. Immerhin gibt es in allen Windows-Versionen stolze 29 Autostart-Quellen – ein Teil davon undokumentiert.
Ganz hilflos sind Sie nicht: Wenn Sie als Anwender kontrollieren möchten, was auf Ihrem System alles “Auto” fährt, können Sie unter Windows 98/ME und XP auf das Standard-Systemprogramm Msconfig.EXE zurückgreifen. Nur Windows-2000-Anwender stehen zunächst ohne Bordmittel im Autostart-Bombardement, die Version aus Windows XP läuft allerdings auch unter Windows 2000 anstandslos. Der Haken an diesem Tool: Msconfig ist nicht ganz auf dem Laufenden und erkennt nur einen Teil der zahlreichen Autostart-Quellen.
Einen deutlich besseren Überblick über wirklich alle automatisch gestarteten Anwendungen liefert unser Script pcwAutostart.HTA für Windows 98/ME, 2000 und XP. Neben der zuverlässigen Kontrolle bietet pcwAutostart natürlich auch die Option, unerwünschte Autostart-Kandidaten zu entfernen.
Autostart, Run und die verborgenen Quellen
Warum Microsoft neben gut zugänglichen und einfach kontrollierbaren Stellen eine ganze Reihe weiterer Autostart-Rampen in die Windows-Systeme eingebaut hat, ist nicht nachzuvollziehen. Zusätzlich zum Autostart-Ordner im Start-Menü oder zum Registry Schlüssel “Hkey_Local_Machine\Software\Microsoft\Windows\CurrentVersion\Run” gibt es in jedem Windows undokumentierte Start-Plattformen. Eine komplette Aufstellung aller Systemorte liefert unsere Tabelle pcwStartrampen.XLS. Sie finden diese Infos auch im Code unserer HTA-Anwendung. Wir nennen hier nur die wichtigsten Stellen, die Msconfig.EXE unterschlägt:
1. Unter Windows 2000/XP erscheint im Registry-Schlüssel “Hkey_Local_Machine\Software\Microsoft\Windows NT\CurrentVersion\Winlogon” die Zeichenfolge “Userinit”. Die dort genannte “Userinit.EXE” lädt die Anwendung als System-Shell, die im Winlogon-Schlüssel “Shell” eingetragen ist – in der Regel ist das die “Explorer.EXE”. Der Userinit-Eintrag kann nach “Userinit.EXE” noch weitere Einträge enthalten, die einfach durch ein Komma getrennt an den Standard-Wert angehängt werden. Alle so addierten Einträge lädt Windows beim Start automatisch.
2. In den Windows-Versionen 98/ME verweist – analog zu Punkt 1 – der Eintrag “shell=” in der System.INI auf die Standard-Shell Explorer.EXE. Und auch in der INI-Datei ist es möglich, diese Zeile zu erweitern. Nachfolgende Programme starten dann ebenfalls automatisch. Als Trennzeichen für die Einträge dient hier ein Leerzeichen.
3. Eine weitere Startrampe bietet der Registry-Schlüssel “Hkey_Local_Machine\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run” unter Windows 2000 und XP. Diese Autostart-Methode findet man nur nach Experimentieren mit relativ abgelegenen Policies der “Gruppenrichtlinie” Gpedit.MSC.
4. Der normale Registry-Autostart über “Hkey_Local_Machine\Software\Microsoft\Windows\CurrentVersion\Run” hat unter Windows ME und 2000 einen Fehler: Anders als bei den Windows-Versionen 98 und XP akzeptiert er hier beliebige weitere Unterschlüssel und arbeitet beim Windows-Start alle dort enthaltenen Programme ab. Msconfig berücksichtigt diese Unterschlüssel aber nicht.
Ein Script, sie zu finden, vom Rechner zu treiben ...
Während Msconfig diese und weitere Autostart-Methoden unterschlägt, spürt pcwAutostart alle derzeit bekannten Laderampen auf und entfernt auf Wunsch die dort eingetragenen Anwendungen. Kopieren Sie unser Script in ein beliebiges Verzeichnis, und rufen Sie es auf. Es prüft 21 Schlüssel der Registry, fünf Dateien und drei Ordner auf Einträge oder Verknüpfungen zu Anwendungen, die automatisch gestartet werden. Wird es fündig, zeigt es im oberen Teil des Fensters den Systemort an. Nach dem Scan können Sie auf den jeweiligen Eintrag klicken und sehen dann im unteren Teil die Programmnamen. Um einzelne Anwendungen aus dem Autostart-Bereich zu verbannen, aktivieren Sie die Klickbox neben dem Programm und klicken auf “Entfernen”.
Die Anwendungen selbst bleiben bei dieser Aktion natürlich intakt, gelöscht wird lediglich der automatische Aufruf. Trotzdem ist Sorgfalt geboten: Nicht jede Autostart-Anwendung ist überflüssig oder gar gefährlich. Überlegen Sie also vor dem Entfernen eines Eintrags oder Links, ob Sie auf den automatischen Start der betreffenden Anwendung wirklich verzichten können. Die Qualität der gefundenen Programme kann das Script natürlich nicht analysieren. Vor allem Teilnehmer eines Netzwerks sollten erst nachfragen, ob Programme oder Scripts der Bereitstellung wesentlicher Netzressourcen dienen, bevor sie sie entfernen.
Das Script erweitern: Nur für Profis
Das Script pcwAutostart erfasst alle derzeit bekannten und relevanten Autostart-Quellen. Nun lässt sich nicht ausschließen, dass in Zukunft keine weiteren entdeckt werden. Aus diesem Grund haben wir pcwAutostart so aufgebaut, dass Sie neue Quellen hinzufügen können. Voraussetzung ist, dass die Autostart-Anwendungen dieser Quelle in derselben Form abgelegt werden wie in einem der bereits vorhandenen Einträge.
In den Zeilen 63 bis 153 sind die diversen Quellen jeweils in zwei Kommandozeilen aufgelistet. Die erste der beiden Zeilen definiert die Quelle – etwa:
MasterKey = "Hkey_Local_Machine\Software\Microsoft\Windows\CurrentVersion\Run"
Eine neu entdeckte Autostart-Quelle in der Registry fügen Sie nach diesem Muster am Ende der bisherigen Aufstellung hinzu, wobei Sie einfach nach “Masterkey” den neuen Schlüssel eintragen. In der zweiten Zeile rufen Sie für den neuen Schlüssel mit
ReadReg "RegRunLM", MasterKey, Ubound(Divkey)
die Script-Funktion “ReadReg” mit einigen Parametern auf. Wenn Sie das Script erweitern, ist das die entscheidende Zeile. Die Zeichenfolge nach “ReadReg” darf frei gewählt werden, muss aber mit “Reg” beginnen und eindeutig sein. Ein Eintrag in der Registry ist technisch völlig anders auszulesen und zu löschen als etwa eine Verknüpfung im Autostart-Ordner, diese wiederum anders als ein Eintrag etwa der System.INI. Selbst innerhalb der Registry ist weiter zu unterscheiden, ob dort jede Anwendung ihre eigene Zeichenfolge besitzt oder ob – wie im Falle “Userinit” – ein Programm an einen bestehenden String angehängt ist. Deshalb gibt es im Script für jeden Typ eine eigene Funktion.
Welche Scriptfunktion für einen neu entdeckten Autostart in Frage kommt (ReadReg, ReadLoad, ReadFold, ReadBat ...), müssen Sie selbst entscheiden und testen.
