Comment puis-je exécuter automatiquement un script lorsque je me connecte à Windows?
Je voudrais exécuter quelque chose comme ça chaque fois que je me connecte à mon ordinateur:
echo %USERNAME% logged on at %DATE% %TIME% >> log.txt
Un bonus serait de pouvoir exécuter le même script chaque fois que je déverrouille également l'économiseur d'écran.
Vous pouvez créer une tâche planifiée qui s'exécutera lorsque votre ordinateur sera déverrouillé:
Aussi, j'ai modifié le chemin dans le script pour lire
echo %USERNAME% logged on at %DATE% %TIME% >> %USERPROFILE%\log.txt
Si vous avez déjà un script:
Pour affecter un script de connexion à un utilisateur ou à un groupe
Où? Outils système/Utilisateurs et groupes locaux/Utilisateurs
Sinon, voici un "HowTo" pratique de Microsoft
Création de scripts de connexion
Vous pouvez utiliser des scripts de connexion pour attribuer des tâches à exécuter lorsqu'un utilisateur ouvre une session sur un ordinateur particulier. Les scripts peuvent exécuter des commandes du système d'exploitation, définir des variables d'environnement système et appeler d'autres scripts ou programmes exécutables. La famille Windows Server 2003 prend en charge deux environnements de script: le processeur de commandes exécute des fichiers contenant des commandes de langage par lots et Windows Script Host (WSH) exécute des fichiers contenant des commandes VBScript (Microsoft Visual Basic Scripting Edition) ou Jscript. Vous pouvez utiliser un éditeur de texte pour créer des scripts de connexion. Certaines tâches couramment effectuées par les scripts d'ouverture de session incluent:
Il mappe le lecteur H: sur le répertoire de base de l'utilisateur en appelant la méthode MapNetworkDrive de l'objet Network WSH en combinaison avec la propriété UserName de l'objet Network WSH. Il utilise l'objet ADSI IADsADSystemInfo pour obtenir le nom distinctif de l'utilisateur actuel, qui est utilisé pour se connecter à l'objet utilisateur correspondant dans Active Directory. Une fois la connexion établie, la liste des groupes dont l'utilisateur est membre est récupérée à l'aide de l'attribut memberOf de l'utilisateur. La liste à plusieurs valeurs des noms de groupe est jointe en une seule chaîne à l'aide de la fonction Join de VBScript afin de faciliter la recherche de noms de groupes cibles.
Si l'utilisateur actuel est membre de l'un des trois groupes définis en haut du script, le script mappe le lecteur G: de l'utilisateur sur le lecteur partagé du groupe et définit l'imprimante par défaut de l'utilisateur comme étant l'imprimante de groupe. Pour créer un exemple de script de connexion
Copiez et collez ou tapez ce qui suit:
Const ENGINEERING_GROUP = "cn=engineering"
Const FINANCE_GROUP = "cn=finance"
Const HUMAN_RESOURCES_GROUP = "cn=human resources"
Set wshNetwork = CreateObject("WScript.Network")
wshNetwork.MapNetworkDrive "h:",
"\\FileServer\Users\" & wshNetwork.UserName
Set ADSysInfo = CreateObject("ADSystemInfo")
Set CurrentUser = GetObject("LDAP://" &
ADSysInfo.UserName)
strGroups = LCase(Join(CurrentUser.MemberOf))
If InStr(strGroups, ENGINEERING_GROUP) Then
wshNetwork.MapNetworkDrive "g:",
"\\FileServer\Engineering\"
wshNetwork.AddWindowsPrinterConnection
"\\PrintServer\EngLaser"
wshNetwork.AddWindowsPrinterConnection
"\\PrintServer\Plotter"
wshNetWork.SetDefaultPrinter
"\\PrintServer\EngLaser"
ElseIf InStr(strGroups, FINANCE_GROUP) Then
wshNetwork.MapNetworkDrive "g:",
"\\FileServer\Finance\"
wshNetwork.AddWindowsPrinterConnection
"\\PrintServer\FinLaser"
wshNetWork.SetDefaultPrinter
"\\PrintServer\FinLaser"
ElseIf InStr(strGroups, HUMAN_RESOURCES_GROUP) Then
wshNetwork.MapNetworkDrive "g:",
"\\FileServer\Human Resources\"
wshNetwork.AddWindowsPrinterConnection
"\\PrintServer\HrLaser"
wshNetWork.SetDefaultPrinter
"\\PrintServer\HrLaser"
End If
Dans le menu Fichier, cliquez sur Enregistrer sous.
Le moyen le plus simple auquel je puisse penser serait de le mettre dans un fichier .bat dans votre dossier de démarrage.
Une méthode plus compliquée consisterait à ajouter le fichier de commandes au registre dans
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
clé d'enregistrement.
Ce n'est pas nécessaire! Windows a déjà un mécanisme pour enregistrer cela pour vous dans le journal des événements. L'ID d'événement est 4624 (528 sur les systèmes antérieurs à Vista).
Quelqu'un sait si cela peut être utilisé pour fonctionner lorsque l'écran est également verrouillé/déverrouillé?
Il existe un moyen pour Windows 7 et/ou Windows Server 2008.
Utilisez le Planificateur de tâches, créez une nouvelle tâche de base, car le déclencheur utilise "Quand je me connecte".
Une autre méthode consiste à créer un fichier de commandes avec les commandes à exécuter. Vous allez ensuite spécifier dans l'éditeur de politique de la machine qu'elle exécute un script de connexion dans le cadre du processus de connexion. Une note rapide est que cette option est uniquement disponible sur XP Pro et non sur la version d'origine.