Automatische Anmeldung von Windows XP / Win-7 mithilfe einer Batchdatei (oder eines VB-Skripts), die in einem Standard-USB-Stick gespeichert ist

1592
Ajaib Singh

Warum ich das brauche :

Ich habe Pen Drive voll mit Batch-Scrips und anderen Diagnosewerkzeugen. Ich habe 75 eigenständige (nicht vernetzte) PCs, meistens mit Win-XP-Pro SP-2, in 2 Labs. Ich muss häufig jeden PC mit einem Admin-Konto anmelden, um etwas zu konfigurieren oder zu diagnostizieren.

Wenn ich also einen PC starte, muss ich jedes Mal manuell den Benutzernamen auf dem Anmeldebildschirm auswählen und auch sein Kennwort eingeben.

Jetzt möchte ich mich bei Admin Acc anmelden. Automatisch (programmgesteuert), wenn mein USB-Stick an den PC angeschlossen ist.

Was ich weiß:

Ich weiß, dass es möglich ist, Scripts (Batch-Dateien) vor der Benutzeranmeldung in XP / Win7 auszuführen. Ich habe eine Batchdatei geschrieben und auf dem lokalen PC gespeichert. Ich habe es in Gruppenrichtlinien so konfiguriert, dass es beim Systemstart ausgeführt wird (GPO-Speicherort: Computerkonfiguration \ Windows-Einstellungen \ Skripts (Start / Herunterfahren) \ Sartup ). Diese Batch-Datei hat erfolgreich erkannt, ob der USB-Stick angeschlossen ist oder nicht.

Ich habe eine andere Batchdatei (derzeit leer) auf Pen Drive gespeichert.

Die 1. Batchdatei durchsucht alle Laufwerke von C bis Z nach der zweiten Batchdatei (login.bat) mithilfe einer Schleife. Wenn die Datei vorhanden ist, wird davon ausgegangen, dass ein USB-Stick vorhanden ist. Außerdem wird die zweite Batchdatei (login.bat) aufgerufen, um fortzufahren.

Was ich nicht weiß:

Jetzt weiß ich nicht, was der Code der login.bat-Datei sein soll, oder ich weiß nicht, wie ich mich pragmatisch einloggen soll.

Was sind andere Alternativen?

Es ist nicht notwendig, nur eine Batchdatei zu verwenden. Ich kann auch überlegen, ob Sie eine andere Option für die automatische Anmeldung haben VB Script, z.

Bearbeiten:

Gemäß dieser Frage Benutzer für automatische Anmeldung bei Windows über Batch-Skript festlegen Ich kann ein Skript erstellen, um Registrierungseinträge zu ändern und die automatische Anmeldung zuzulassen. Obwohl dies funktioniert, müssen Sie Ihren PC neu starten, damit die Änderungen übernommen werden. Welches ist etwas, das ich vermeiden möchte. Es dauert länger, das Skript auszuführen und neu zu starten, als sich nur persönlich anzumelden.

Ich möchte mich bei Bedarf automatisch anmelden können. Das bedeutet, dass sich das Skript nach dem Anschließen des Pen Drive an das Administratorkonto anmelden kann, ohne den PC neu zu starten.

Ich habe im Web gelesen, dass dies durch das Erstellen einer GINA-DLL-Datei erreicht werden kann, aber ich habe keine Erfahrung auf diesem Gebiet. Irgendwelche Ideen, wie dies umgesetzt werden kann?

9
Mögliches Duplikat von [Benutzer für automatische Anmeldung bei Windows über Batch-Skript festlegen] (https://superuser.com/questions/514265/set-user-for-auto-logon-on-windows-via-batch-script) Jimmy_A vor 6 Jahren 1
@ DA-Wie kannst du sagen, es ist ein Duplikat von "Benutzer für automatische Anmeldung festlegen ...".? Haben Sie die vollständige Erklärung der Frage gelesen? Und wissen Sie, was unter "Festlegen eines Benutzers für die automatische Anmeldung" zu verstehen ist. Dies ist nicht das von Ihnen angegebene Duplikat. Ich möchte nicht, dass bei jedem Einschalten des PCs ein Benutzer für die automatische Anmeldung festgelegt wird. Dadurch wird die Benutzer können sich automatisch anmelden, unabhängig davon, ob der Pen Drive angeschlossen ist oder nicht. Ich benötige eine Batchdatei oder eine VBScript-Datei, um die Anmeldung zu initiieren. "Nur wenn mein Pen Drive am PC angeschlossen ist. Lesen Sie die gesamte Frage sorgfältig durch. Ajaib Singh vor 6 Jahren 0
@DA Sir, ich habe die angegebene Antwort sorgfältig gelesen. Sogar das Internet ist voll mit diesem Tutorial. 1. Es wird nicht geprüft, ob Pen Drive vorhanden ist, um die automatische Anmeldung bedingt zuzulassen. 2. 'Wenn Sie die Option "Festlegen, wie oft sich anmelden soll" markiert haben. Es ist nicht für mich geeignet. Lass mich erklären warum. Ich habe nur 2 mögliche Werte, denen "Festlegen, wie oft es sich anmelden soll" zugewiesen werden kann. 1st ist 1 und 2nd ist 'größer als eins' Ajaib Singh vor 6 Jahren 0
Wenn ich es als 1 eingestellt habe: Es erlaubt nur einmal die automatische Anmeldung. Bei den nächsten Start-ups muss ich Benutzername und Passwort eingeben. Wenn ich es größer als 1 (Say 10) setze, wird die angegebene Anzahl von Malen automatisch angemeldet. Jetzt, bis die angegebene Anzahl von Malen abgelaufen ist, wird jeder Benutzer standardmäßig beim Administratorkonto angemeldet. Was ich nicht will Meine Anforderung ist: "Unbegrenzte Anzahl von Anmeldungen zulassen", solange mein USB-Stick angeschlossen ist, andernfalls lassen Sie die automatische Anmeldung nicht zu. Ajaib Singh vor 6 Jahren 0
Ok, Sir, ich werde es testen, indem ich beide Skripte kombiniere. Wenn jedoch ein Neustart erforderlich ist, um reg anzuwenden. ändert 'es ist wieder unbrauchbar. Obwohl es durch Tests jetzt klar sein wird. Vielen Dank. Ajaib Singh vor 6 Jahren 0
Wenn Sie keine Mausbewegungen und Tastatureingaben mit einem Skript replizieren können, kann ich Ihnen sagen, dass die Registrierung Ihre beste Chance wäre Jimmy_A vor 6 Jahren 0
Leider ist ein Neustart erforderlich. Ajaib Singh vor 6 Jahren 0
Ja, das ist das einzige Problem, wie ich schon gesagt habe. Noch ein Gedanke. Warum nutzen Sie nicht den Fernzugriff? Sie können Ihre Sitzungen und Anmeldeinformationen speichern und Ihre Skripts von Ihrem PC aus ausführen Jimmy_A vor 6 Jahren 0
@DA Sir, ich brauche das für meine eigenständigen (nicht vernetzten) PCs. Ich habe ein anderes Netzwerklabor, in dem ich bereits Remote Access verwende. Ajaib Singh vor 6 Jahren 0
Ich habe im Web gelesen, dass dies durch Erstellen einer GINA-DLL-Datei erreicht werden kann. Aber ich bin kein professioneller Programmierer. Ich weiß also nicht, wie ich das implementieren soll, auch wenn ich nicht weiß, welche Tools zum Erstellen einer benutzerdefinierten GINA-DLL-Datei erforderlich sind. Ich habe zwar einige Kenntnisse in C ++, etwas mehr von VB.Net. Wenn Sie eine Idee haben, teilen Sie es mir bitte mit ... Ajaib Singh vor 6 Jahren 0
Fragen: (1) Haben Sie nur eine Anmeldung für alle Computer mit demselben Benutzer / Passwort? (2) Können Sie eine Softwarelösung (falls vorhanden) auf allen Computern installieren? (3) Würden Sie für ein kommerzielles Produkt bezahlen? harrymc vor 6 Jahren 2
Hi @ harrymc; Ich habe denselben Benutzernamen und Passwort für alle Computer? Ajaib Singh vor 6 Jahren 0
@ harrymc 2) Ich kann dazu Software von Drittanbietern installieren. 3) Meine Organisation erlaubt mir nicht, für kommerzielle Produkte zu bezahlen. Ajaib Singh vor 6 Jahren 0

2 Antworten auf die Frage

2
wp78de

Es ist möglich, sich programmgesteuert bei Windows anzumelden, jedoch nicht mit einer einfachen Batchdatei. Stattdessen müssen Sie eine DLL mit C ++ (oder möglicherweise C # - erstellen, was jedoch nicht empfohlen wird ). In Windows XP (und zuvor) heißt diese Funktion GINA .
(Ab Vista müssen Sie einen Anmeldeinformationsanbieter erstellen.)

Referenz: Melden Sie sich programmgesteuert bei Windows XP an

Hallo wp78de "; Ich habe mein Problem mit VB Script gelöst. Die schicken einfach Keys auf dem Anmeldebildschirm und Mein Admin-Account wird angemeldet. Danke für die Antwort. Ajaib Singh vor 6 Jahren 0
1
Ajaib Singh

I accidentally found the solution by myself. As mentioned in question i have 2 scripts: 1st resides in local computer and 2nd resides in Pen Drive. 1st (.bat) is preconfigured to run on system startup (See how to assign computer startup scripts?) and it calls 2nd (.vbs) if pen drive is connected.

How it works:

The working of 1st file is already described in Question; and working of 2nd script is very simple but fulfills my needs. This script just sends key strokes on login screen in same sequence as i type on keyboard for Login. Here i would like to share the whole code of both scripts. Hope this will help many like me, who don't want to interfere with internal operating system files such as GINA.

The code is:

1st Script (Logon Script)

Name: "Find PD.bat"

Location:

"%SYSTEMROOT%\System32\GroupPolicy\Machine\Scripts\Startup\Find PD.bat"

Code

@ECHO OFF SET vCount=1 set LogFl=%~d0%~p0%Find PD.log echo Process Started...>"%LogFl%" :RECHK SET PD= for %%i in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) DO ( IF EXIST "%%i:\OTHER\RESTORE\OTHER\FillCred.vbs" ( SET PD=%%i ) ) :FOUND echo:>>"%LogFl%" IF /I DEFINED PD ( echo %time% : Pen Drive Found with '%PD%' Drive Letter>>"%LogFl%" "%PD%:\OTHER\RESTORE\OTHER\FillCred.vbs" ) ELSE ( IF %vCount% LSS 11 ( set /a "vCount=vCount+1" echo %time% : Retry: %vCount% >>"%LogFl%" ping -n 2 -w 200 1.1.1.1>nul GOTO RECHK ) ELSE ( echo %time% : Pen Drive Not Found. Exiting>>"%LogFl%" EXIT /b 1 ) ) :EOF 

2nd Script:

Name: "FillCred.vbs"

Location:

"<PenDriveRoot>\OTHER\RESTORE\OTHER\FillCred.vbs"

Code:

set WshShell = CreateObject("WScript.Shell") WScript.sleep 1000 WshShell.SendKeys "" WScript.sleep 50 WshShell.SendKeys "ReplaceThisWithYourPassword" WScript.sleep 50 WshShell.SendKeys "" 

Remember:

1) This is only tested on windows XP.

2) This will only work if your Windows shows default logon screen (aka 'Welcome Screen')

3) You have to modify 2nd script for your key sequences.

4) This will not work if your system require pressing Ctrl+Alt+Delete before login.

5) This is very basic solution, but you may make it advanced by editing the 2nd Script. this will work as long as you system allows key strokes on login screen.

Thanks.