Connexion automatique à Windows XP / Win-7 à l'aide d'un fichier batch (ou script VB) stocké dans une clé USB standard

10

Pourquoi j'ai besoin de ça :

J'ai Pen Drive plein de scripts batch et d'autres outils de diagnostic. J'ai 75 PC autonomes (non en réseau), principalement avec Win-XP-Pro SP-2, dans 2 laboratoires. J'ai souvent besoin de me connecter à chaque PC avec un compte administrateur pour configurer ou diagnostiquer quelque chose.

Ainsi, lorsque je démarre un PC, chaque fois que je dois sélectionner manuellement le nom d'utilisateur sur l'écran de connexion et également taper son mot de passe.

Maintenant, je veux me connecter à Admin Acc. Automatiquement (par programme) si ma clé USB est connectée au PC.

Ce que je sais:

Je sais qu'il est possible d'exécuter des scripts (fichiers batch) avant la connexion de l'utilisateur sous XP / Win7. J'ai écrit un fichier batch et enregistré sur un PC local. Je l'ai configuré dans la stratégie de groupe pour l'exécuter au démarrage du système (Emplacement GPO: Configuration ordinateur \ Paramètres Windows \ Scripts (démarrage / arrêt) \ Sartup ). Ce fichier de commandes détecte avec succès «si la clé USB est connectée ou non.

J'ai un autre fichier de commandes (actuellement vide) stocké sur Pen Drive.

Le 1er fichier de commandes recherche tous les lecteurs de C à Z pour le deuxième fichier de commandes (login.bat) à l'aide d'une boucle, si le fichier est présent, il suppose que la clé USB est présente et appelle en outre le fichier de commandes 2e (login.bat) pour continuer.

Ce que je ne sais pas:

Maintenant, je ne sais pas quel devrait être le code du fichier login.bat ou je ne sais pas comment me connecter de manière pragmatique.

Quelles sont les autres alternatives à l'esprit:

Il n'est pas nécessaire d'utiliser uniquement un fichier de commandes. Je peux également considérer "si vous avez une autre option pour la connexion automatique comme l'utilisation VB Scriptou tout autre exécutable tiers",

Éditer:

Selon cette question, définir l'utilisateur pour la connexion automatique sur Windows via un script de traitement par lots, je peux créer un script pour modifier les entrées de registre et autoriser la connexion automatique. Même si cela fonctionne, vous devez redémarrer votre PC pour que les modifications soient appliquées. C'est quelque chose que je veux éviter. L'exécution du script et le redémarrage prennent plus de temps que la simple connexion personnelle.

Je souhaite pouvoir me connecter automatiquement, sur demande. Cela signifie qu'une fois que j'ai connecté mon Pen Drive, le script devrait pouvoir me connecter, dans le compte administrateur sans redémarrer le PC.

J'ai lu sur le Web que cela peut être réalisé en créant un fichier dll GINA, mais je n'ai aucune expérience dans ce domaine. Des idées sur la façon dont cela peut être mis en œuvre?

Ajaib Singh
la source
@ DA-Comment pouvez-vous dire qu'il s'agit d'un doublon de "Définir l'utilisateur pour la connexion automatique ...".? Avez-vous lu l'explication complète de la question? Et savez-vous ce que signifie «configurer un utilisateur pour la connexion automatique. Ce n'est pas le double de celui que vous avez spécifié. Je ne veux pas définir un utilisateur pour la connexion automatique à chaque fois que vous allumez le PC. l'utilisateur doit se connecter automatiquement, que la clé USB soit connectée ou non. J'ai besoin d'un fichier de commandes ou d'un fichier vbscript pour lancer la connexion "Uniquement si ma clé USB est connectée au PC. Lisez attentivement la question complète.
Ajaib Singh
@DA Monsieur, j'ai lu attentivement la réponse indiquée. Même Internet est plein avec ce tutoriel. 1er 'il ne vérifie pas la présence de Pen Drive pour autoriser conditionnellement la connexion automatique. 2e 'Comme vous l'avez souligné l'option "Définir combien de fois il doit se connecter". Cela ne me convient pas. Laissez-moi vous expliquer pourquoi. Je n'ai que 2 valeurs possibles qui peuvent être affectées à "Définir combien de fois il doit se connecter". Le 1er est 1 et le 2e est «supérieur à un»
Ajaib Singh
Si je le mets à 1: il n'autorisera la connexion automatique qu'une seule fois. Lors des prochaines démarrages, je dois saisir un nom d'utilisateur et un mot de passe. Si je le règle plus que 1 (disons 10), il se connectera automatiquement le nombre de fois spécifié. Maintenant, jusqu'à ce que le nombre de fois spécifié soit expiré, chaque utilisateur sera connecté au compte administrateur par défaut. Ce que je ne veux pas. Mon exigence est: "Autoriser un nombre infini de connexions" tant que ma clé USB est connectée, sinon n'autorisez pas la connexion automatique.
Ajaib Singh
2
Questions: (1) Avez-vous une seule connexion pour tous les ordinateurs avec le même utilisateur / mot de passe? (2) Pouvez-vous installer une solution logicielle (si elle existe) sur tous les ordinateurs? (3) Seriez-vous prêt à payer pour un produit commercial?
harrymc

Réponses:

2

Il est possible de se connecter par programme à Windows, mais pas avec un simple fichier batch. Au lieu de cela, vous devez créer une DLL en utilisant C ++ (ou peut-être C # - mais ce n'est pas recommandé ). Dans Windows XP (et versions antérieures), cette fonctionnalité est appelée GINA .
(À partir de Vista, vous devez créer un fournisseur d'informations d'identification.)

Référence: connexion à Windows XP par programmation

wp78de
la source
Salut wp78de "; J'ai résolu mon problème avec le script VB. Il suffit d'envoyer des clés sur l'écran de connexion et mon compte d'administrateur est connecté. Merci pour la réponse.
Ajaib Singh
1

J'ai accidentellement trouvé la solution par moi-même. Comme mentionné à la question, j'ai 2 scripts: le 1er réside dans l'ordinateur local et le 2ème réside dans Pen Drive. Le 1er (.bat) est préconfiguré pour s'exécuter au démarrage du système ( voir comment attribuer des scripts de démarrage de l'ordinateur? ) Et il appelle le 2e (.vbs) si la clé USB est connectée.

Comment ça fonctionne:

Le fonctionnement du 1er fichier est déjà décrit dans Question; et le travail du 2ème script est très simple mais répond à mes besoins. Ce script envoie simplement des touches sur l'écran de connexion dans la même séquence que je tape sur le clavier pour la connexion. Ici, je voudrais partager tout le code des deux scripts. J'espère que cela aidera beaucoup de gens comme moi, qui ne veulent pas interférer avec les fichiers du système d'exploitation interne tels que GINA.

Le code est:

1er script (script d'ouverture de session)

Nom: "Find PD.bat"

Emplacement:

"%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

2e script:

Nom: "FillCred.vbs"

Emplacement:

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

Code:

set WshShell = CreateObject("WScript.Shell")
WScript.sleep 1000
WshShell.SendKeys "{DOWN}"
WScript.sleep 50
WshShell.SendKeys "ReplaceThisWithYourPassword"
WScript.sleep 50
WshShell.SendKeys "{ENTER}"

Rappelles toi:

1) Ceci n'est testé que sur Windows XP.

2) Cela ne fonctionnera que si votre Windows affiche un écran de connexion par défaut (également appelé «écran de bienvenue»)

3) Vous devez modifier le 2ème script pour vos séquences de touches.

4) Cela ne fonctionnera pas si votre système nécessite d'appuyer sur Ctrl + Alt + Suppr avant de vous connecter.

5) C'est une solution très basique, mais vous pouvez la faire évoluer en éditant le 2nd Script. cela fonctionnera tant que votre système autorisera les frappes sur l'écran de connexion.

Merci.

Ajaib Singh
la source