Programm ausführen, bevor der Anmeldebildschirm angezeigt wird [duplizieren]

2

Mögliches Duplikat:
Wie kann ich ein Programm starten, bevor Windows selbst startet?

Ich möchte, dass Windows ein Befehlszeilenprogramm ausführt, bevor es den Anmeldebildschirm (oder den Begrüßungsbildschirm) lädt. Wenn Sie diesen Bildschirm jemals gesehen haben, wissen Sie, was ich meine: Bildbeschreibung hier eingeben

Ich möchte, dass dieses Programm genau auf der obigen Stufe / dem obigen Bildschirm ausgeführt wird (bevor ein Treiber geladen wird). Der Grund und Zweck sind zu kompliziert, um hier erklärt zu werden. Aber ist das möglich?

Larssend
quelle
Dieser Bildschirm erscheint tatsächlich, NACHDEM (zumindest einige) Treiber geladen wurden, oder Windows kann das Dateisystem des Laufwerks nicht erkennen, um die Datenträgerprüfung auszuführen.
ƬᴇcƬᴇιᴇ007
Welche XP-Version verwenden Sie? Pro oder zu Hause?
KCotreau
1
@ techie007: Belastungen stimmen. Der Treiber ist zu diesem Zeitpunkt noch nicht geladen. Chkdsk muss in der Lage sein, das C: Volume im RAW-Modus zu lesen. Dies ist nur möglich, wenn keine Datei darin geöffnet ist. Aus diesem Grund kann chkdsk in der Win32-Umgebung nicht mit der Option / r auf Laufwerk C: ausgeführt werden.
Larssend
@Larssend - Sie können / F oder / R nicht auf einem Systemlaufwerk ausführen, während Windows (vollständig) ausgeführt wird, da Systemdateien (Auslagerungsdateien usw.) gesperrt sind oder gerade verwendet werden. (Zumindest) müssen die Kernel-Treiber geladen sein, sonst könnte Windows die Hardware nicht verwenden, geschweige denn das Dateisystem (RAW oder anders). Stellen Sie sich ein RAID vor, für das XP keine native Unterstützung bietet. Wie können Sie ein Laufwerk verwenden oder überprüfen, das Windows nicht erkennt, weil Sie es nicht mit dem F6-Treiber ausgestattet haben? :)
ƬᴇcƬᴇιʜ007
1
@ techie007: Ja, du gibst nur Details zu meiner Antwort an.
Larssend

Antworten:

7

Leider können Sie zu diesem Zeitpunkt nicht jedes Programm ausführen. Nur Anwendungen, die die 'native' NT-API (bereitgestellt von NTDLL.dll) verwenden, können ausgeführt werden, bevor das Win32-Subsystem geladen wird.

Gehen Sie folgendermaßen vor, um zu überprüfen, ob ein Programm in dieser bestimmten Phase ausgeführt werden kann:

  1. Führen Sie den Registrierungseditor ( regedit.exe) aus.
  2. Navigieren Sie zu HKLM\SYSTEM\CurrentControlSet\Control\Session Managereinem Eintrag mit mehreren Zeichenfolgen ( REG_MULTI_SZ ), der aufgerufen wird , und suchen Sie ihnBootExecute .
  3. Doppelklicken Sie auf den Eintrag und fügen Sie den Namen der ausführbaren Datei hinzu, die Sie ohne Pfad testen möchten. Die ausführbare Datei muss sich in befinden %windir%\system32.
  4. Starten Sie neu.

Wenn das Programm in der Native NT-Umgebung ausgeführt wird, gewinnen Sie. Andernfalls können Sie nichts dagegen tun, es sei denn, Sie haben Zugriff auf den Quellcode des Programms.

In diesem Technet-Artikel finden Sie weitere Informationen zur Native NT-Anwendung.

Larssend
quelle
1
Yup, viel Spaß damit! Es wird sicher kein Kuchenlauf zum Testen.
Surfasb