Das mit dem Autostart-Ordner usw. stimmt schon, aber Thomas schrieb ja, es ginge ihm nur um die Starts in der Registry.

Das Problem ist, dass eben keinen Standard gibt. MSConfig macht´s so. Kaufst du dir ein Autostart-Tool, dann geht das u.U. wieder völlig anders vor, usw. Du hast also kaum eine Chance, wirklich 100% aller Einträge zu finden.
Und das MSConfig von XP ist richtig besch****. Also, die Einträge werden aus ihren ursprünglichen Schlüsseln entfernt und unter
Quelltext
1:
| HKLM\Software\Microsoft\Shared Tools\MSConfig\startupreg |
gesichert. Jedes Programm hat dabei seinen eigenen Schlüssel. Der Schlüssel selbst enthält dann folgende wichtige Einträge
Quelltext
1: 2: 3:
| key = ursprünglicher Pfad ("Software\Microsoft\...\Run" bspw.) hkey = ursprünglicher Root in Kurzform (HKLM, HKCU) command = Programm inkl. Pfad |
Es gibt noch ein paar, die aber nicht unbedingt von Interesse sind.
Erkennst du das Problem, @schitho? Wenn du Benutzer bist, hast du normalerweise keine Berechtigung in den HKLM-Schlüssel zu schreiben. Du kannst diesen Weg also nur mit Admin-Rechten verwenden.
Noch schlimmer wird es, wenn dein Benutzer nicht
der Administrator ist, aber selbst Admin-Rechte hat. Dann kannst du zwar in den o.g. Schlüssel schreiben, aber du kannst nicht unterscheiden wem ein deaktivierter HKCU-Eintrag gehört. Jeder Benutzer hat ja seinen eigenen HKCU-Zweig. Aber nur beim angemeldeten Benutzer heißt er auch so. Ist ein Benutzer nicht angemeldet, steckt sein HKCU-Zweig irgendwo unter HKEY_USERS.
Beispiel: Der Admin ist angemeldet und entfernt mit "msconfig" den Messenger aus seinem HKCU-Zweig. Er meldet sich ab, und ein Benutzer mit Admin-Rechten meldet sich an und startet "msconfig". Er setzt den Haken beim deaktivierten Messenger rein, und das Programm wird in
seinen HKCU-Zweig geschrieben und nicht in den des Admin.
Um wirklich 100% auf Nummer Sicher zu gehen, müsste man auslesen, wie viele Benutzer es gibt und wie viele von denen Admin-Rechte haben. Beim Versuch, einen HKCU-Eintrag wiederherzustellen, müsste man dann diese Liste mit den Admin-Benutzern einblenden und fragen, für welchen er geschrieben werden soll. Dann müsste man die SID des ausgewählten Benutzers ermitteln, damit man das Programm unter HKEY_USERS eintragen kann. Ansonsten landet es überall, nur nicht beim gewünschten Benutzer.
Du kannst natürlich auch den alten Weg mit dem Minus im Namen verwenden (etwa "Run-"). Aber der Haken ist, dass dein Programm dann die mit "msconfig" deaktivierten Einträge nicht findet. Und umgekehrt findet "msconfig" dann natürlich auch nicht die von dir deaktivierten Einträge.
Ein Teufelskreis ...
