Korben, roi d’internet, logo bébé avec des lunettes en mode thug life Korben, roi d’internet, logo bébé avec des lunettes en mode thug life

Korben Upgrade your mind

Comment copier des dossiers automatiquement au démarrage d’une clé USB ?

Tuto rédigé par WebReveuse sur l’espace communauté du blog. Merci beaucoup !!! Si vous aussi, vous avez envie de partager des tutos ou astuces avec la communauté, n’hésitez pas à l’écrire sur Tech.korben 😉

Bonjour/Bonsoir,

Je vais vous expliquer comment mettre en place simplement et rapidement un « Autorun » sur votre clé USB, ce qui vous permettra d’exécuter un/des script(s) au démarrage de la clé,
au moment où vous aurez branché votre clé USB sur votre Ordinateur.

Pour cela rien de plus simple:

1. Téléchargez le dossier « Autorun_USB_copie.zip » en cliquant sur ce lien :

https://mega.nz/#F!gZpiRAiJ!ff6ohK0u69ZpoM2V8Uew3g


2. Décompressez le dossier ZIP où vous voulez, de toute façon on devra placer les fichiers dans des répertoires différents…


3. Ouvrez le dossier fraîchement créé puis copier le fichier « Usb Autorun.exe » dans le dossier

"C:/ProgramData/Microsoft/Windows/Start Menu/Programs/StartUp"

Cette manipulation permet de lancer automatiquement le logiciel « Usb Autorun.exe » à chaque démarrage de Windows.
Si vous ne voulez pas exécuter ce logiciel à chaque démarrage vous pouvez toujours l’exécuter manuellement. Pour vous, vous pouvez passer cette étape.


4. Copier les fichiers « Autorun.inf », « Copie_Documents.bat », « Copie_Documents.vbs », « chemin_source.txt »
et « chemin_destination.txt » à la racine de la clé USB(Source) :


  • « Autorun.inf » : Fichier utilisé par le logiciel « Usb Autorun.exe » pour exécuter le script dès la détection de ce fichier par le logiciel, en l’occurrence ici dès le branchement de la clé USB.
  • « Copie_Documents.bat » : Script batch réalisant la copie d’un dossier et de ses sous-dossiers de la source (voir « chemin_source.txt ») vers un dossier de destination (voir « chemin_destination.txt? »).
  • « Copie_Documents.vbs » : Script permettant de « cacher » la fenêtre d’invite de commande lorsque celui-ci se lance au démarrage de la clé.
  • « chemin_source.txt » : Fichier contenant le chemin absolu ou relatif (relatif si le fichier est correctement copié à la racine de la source) du dossier source.
  • « chemin_destination.txt » : Fichier contenant le chemin absolu du dossier de destination.

5. Modifier le chemin absolu/relatif contenu dans « chemin_source.txt » avec le chemin absolu/relatif correspondant au chemin source


6. Modifier le chemin absolu contenu dans « chemin_destination.txt » avec le chemin absolu correspondant au chemin destination


7. Redémarrer le PC pour lancer le programme « Usb Autorun.exe » au démarrage de Windows
Le programme se lancera à chaque démarrage de Windows, si vous voulez désinstaller complètement ce logiciel vous devrez le supprimer depuis

"C:/ProgramData/Microsoft/Windows/Start Menu/Programs/StartUp"

8. Brancher la clé USB, la copie se fera en arrière-plan. Vérifiez ensuite que les dossiers/fichiers ont bien été copiés vers le dossier de destination


P.S.: Pour copier manuellement le dossier source vers destination, lancer simplement « Copie_Documents.bat » et un affichage de progression apparaîtra.

Voilà ! Vous pouvez maintenant ne plus vous soucier de la fastidieuse mise à jour de vos données sur clé USB en sauvegarde sur votre Ordinateur grâce à ce tutoriel. En effet maintenant il vous suffira simplement de brancher votre clé USB, attendre quelques secondes au maximum et vos dossiers sélectionnés seront automatiquement copiés et mis à jour sur votre Ordinateur ! Vous pouvez bien entendu faire l’opération inverse et copier des dossiers depuis votre Ordinateur vers votre clé USB dès que celle-ci est détectée ! Vous avez compris, il existe beaucoup d’usages à cette méthode

Ce programme sera sûrement revu à une optimisation et sera automatiquement mis à jour via le lien MEGA (Un numéro de version vous indiquera son état de mise à jour).

N’hésitez pas à me faire des retours constructifs sur ce travail qui m’a prit pas mal de temps et de recherche !

Je tiens particulièrement à remercier TTM97 qui m’a permit d’intégrer sa barre de progression (ici seulement pour le visuel et non avec les valeurs réelles) à mon script, histoire de le rendre plus « confortable » visuellement…
Je vous laisse le lien de sa publication sur un forum externe : http://batch.xoo.it/t4211-Une-barre-de-chargement.htm

Sachez aussi que seule une ligne de code permet cette copie de dossiers automatique au démarrage de la clé :

xcopy %src% %dest% /E /Y

Tout le reste est une optimisation de ce script et permet entre autre de vérifier et créer ou non le dossier de destination s’il n’existe pas.


Blade 15 Full Hd 144 Hz – 512 Go – Noir

Windows 10 core i7 NVIDIA GTX

L’ordinateur portable de jeu de 15,6 pouces le plus petit au monde, le Razer Blade 15, est disponible dans deux modèles différents : de base et avancé. Tous les modèles sont dotés des derniers processeurs Intel® Core™ de 9e génération et des cartes graphiques NVIDIA GeForce RTX.

Le tout est associé à une mémoire importante ainsi qu’à des options de stockage rapides. Le modèle de base dispose d’un écran Full HD de 144 Hz maximum, tandis que le modèle avancé présente un écran tactile Full HD de 240 Hz maximum ou 4K, y compris un nouvel écran OLED offrant des couleurs vives et des noirs profonds. Compact et durable, le châssis en aluminium de haute précision ne fait que 17,8 mm.

Pour découvrir toutes ses caractéristiques



Réponses notables

  1. hello :wink:

    Alors aucune idée, chez moi il passe nickel.
    Voici le lien de l’article:

    Check ton adblock voir ton antivirus (de mon côté j’ai checké avec Virus Total et aucun soucis)

    Sinon je vois pas :wink:

  2. maxxyme,

    Apparemment d’autres lecteurs me remontent qu’eux ont une page blanche au lieu du contenu ça viendrait d’une regle dans un filtre adblock.
    Est-ce que tu as aussi ce problème ?

    ça pourrait venir de là.

  3. Bonjour,
    Sans réelle critique parce qu’il y a bien du boulot derrière tout ça et que le partage du résultat est une excellente pratique (donc merci :slight_smile: ), ma paranoïa prend le dessus lorsqu’il s’agit de télécharger un .exe inconnu…
    Sans être expert, peut-être y a t-il un moyen de distribution de l’outil qui permettrait de relire / vérifier ce qu’on fait ?

  4. @Tramoo Par exemple ceci ? Là, le source de Usb_Autorun.exe n’est pas donné, le reste est lisible.

  5. Ce n’était pas du tout un reproche :wink: Merci à toi pour ton partage !

  6. Excellent. Je reve de pouvoir l’utiliser pour mon stockage dans le cloud, mais ca ne marche pas. J’ai bien copié les fichiers a la racine de mon “drive virtuel” mais je pense que l’exe ne reagit que si il y a insertion d’un disque usb physique, et non montage d’un drive (dans mon cas un disque virtuel vers le service de box.com)
    WebReveuse, penses-tu que tu pourrais adapter ta geniale application a cet usage ? Je pense que dropbox, gdrive et icloud seraient aussi des candidats… Merci !

  7. Hello. Pas exactement. Comme pour l’usb, j’aimerais copier des fichiers de mon pc (local) vers mon dossier virtuel. Ce dossier virtuel n’apparait qu’après que l’application soit lancée (box drive). Ou l’inverse, du dossier virtuel vers un dossier local.
    Merci.

  8. Merci. Je verrais au prochain reboot si ca marche :slight_smile:

    Petites questions: je comprends que la ligne 2 est censée lancer box drive, mais il se lance tout seul de toute facon, et il ne se trouve pas dans programs/startup. J’espère qu’il se lance assez vite …
    La derniere ligne du nouveau script copie_documents.bat je suppose doit aver le chemin complet, c-a-d cheminlocal\copie_documents ?
    J’ai compris que je dois utiliser tous les fichiers sauf autorun.inf Du coup par curiosité j’ai ouvert autorun.inf et il contient la ligne Copie_IUT_Documents.vbs c’est normal ?
    Merci beaucoup pour ta réactivité !

  9. Hello WebReveuse, alors je me suis bien battu avec le script avant de voir ta réponse :slight_smile: la seule ligne qui posait problème etait celle qui lance box, et comme tu l’as conseillé, après l’avoir enlevée, tout marche ! C’est magique ! Bravo pour ton travail.
    Ca me donne envie d’utiliser ta barre de progression dans un de mes scripts qui fait des copies de fichiers, j’ai regardé un peu tes scripts, et franchement … ce n’est pas simple de comprendre ou commence et ou finit la fonction “progress bar” … il y a meme un ping a la fin de ton script :wink: penses-tu que c’est possible ?

  10. Je viens de penser qu’en fait il suffirait simplement de vérifier que ton répertoire source existe pour exécuter le script ça serait moins hasardeux que de mettre un timer aléatoire… :thinking:

    Pour cela rien de plus simple il suffit de rajouter une condition dans une boucle ! Ce sont les 6 lignes à ajouter dans le fichier "Copie_Document.bat" juste après le :copie


    :copie
    if not exist %src% (
    echo Si “Box.exe” est lance, mais que ce message ne s’efface pas automatiquement au bout d’un certain temps.Le fichier source est peut-etre invalide… Rappel : chemin source = %src%
    timeout 10 /NOBREAK
    cls
    goto copie)
    if exist %dest% (

    Du coup maintenant le fichier "Box.bat" que je t’avais fais créer ne sert plus à rien, tu peux le supprimer !

    Il te suffit simplement de créer un raccourci du fichier "Copie_Documents.bat" ou "Copie_Documents.vbs" dans ton répertoire de démarrage Windows, et plus besoin de s’embêter à chercher le temps que met l’application à démarrer ça se fait tout seul maintenant…

    Voilà j’espère l’avoir bien optimisé pour le moment, mais le temps me gêne encore… J’essaierais de modifier ça quand je trouverais le moyen ! Sinon en soit il fonctionne, et il ne tournera pas à fond en arrière plan si tu t’es trompé de chemin source, d’ailleurs il te le fera remarquer et tu pourras arrêter le processus en toute sécurité.

  11. fofo says:

    Quelle inconscience ce truc ! À ne sourtout pas suivre, la partie exécutée étant sur la clé, n’importe quelle clé insérée peut exécuter n’importe quoi !!!
    @tous : Ne surtout pas suivre cette manip
    @l’auteur de cette m… il faut coder la partie de copie dans l’exe résidant, et ne surtout pas exécuter un script provenant d’une clé USB.

  12. Ouai, j’approuve le code est vraiment pas beau, et la logique pas terrible.

    Pour ceux que ça intéresse :

    On défini une requête WMI event, qui cherche les nouvelles instances dans Win32_LogicalDisk ou DriveType est “2”

    http://msdn.microsoft.com/en-us/library/aa394173(v=vs.85).aspx

    $Query = “select * from __InstanceCreationEvent within 5 where TargetInstance ISA ‘Win32_LogicalDisk’ and TargetInstance.DriveType = 2”;

    On défini un PowerShell ScriptBlock qui va être executé :

    $Action = { & C:\test\script.ps1; };

    On enregistre l’event

    Register-WmiEvent -Query $Query -Action $Action -SourceIdentifier USBFlashDrive;

    2 minutes de recherche google, j’ai la flemme. https://stackoverflow.com/questions/21805166/start-powershell-script-when-usb-drive-is-inserted

    penser à faire un installateur pour vos scripts avec 7zip, ça prend 5 minutes, https://fr.tipsandtrics.com/how-make-an-exe-installation-file-752682

    et penser également à faire un script de désinstallation.

    Si vous n’aimez pas PowerShell, le code si dessus peut-être fait via AutoIt également en 2 minutes, avec TrayIcon, etc.

    Bon code.

  13. Bonjour,

    Je ne suis bien sûr pas un expert du tout dans ce domaine pour l’instant et je ne demande qu’une chose c’est apprendre.

    Je partage ce que je recherche, car pour moi ça fonctionne très bien, j’ai déjà expliqué qu’il suffit de tuer le processus “USB autorun” pour éviter justement des problèmes avec les clés inconnues…

    Tu me dis de coder directement dans l’exe ? :thinking: Tu aurais une piste pour m’aider ? Au lieu de simplement critiquer sans réel apport à la communauté ?

    Merci :wink::+1:

  14. Hello,

    Je t’ai fais un petit script autoit qui te demande de l’approuver, si tu acceptes, cela l’ajoute dans un fichier ini, ou se trouve l’exe, et copie les fichiers vers C:\temp\leserialnumberdelaclé. Il faut corriger la partie FileCopy, cela ne copie pas en récursif les sous dossiers.

    Tu peux, compiler en exe les scripts autoit.

    le site autoit : https://www.autoitscript.com/site/

    il y a un forum français : https://www.autoitscript.fr/forum/

    bon code ^^

     #cs ----------------------------------------------------------------------------
    
     AutoIt Version: 3.3.14.5
     Author:         myName
    
     Script Function:
    	Template AutoIt script.
    
    #ce ----------------------------------------------------------------------------
    
    ; Script Start - Add your code below here
    
    #include <FileConstants.au3>
    #include <MsgBoxConstants.au3>
    #include <WinAPIFiles.au3>
    
    ;Chemin de destination pour enregister les clés trusted
    Const $FilePathToSettings = @ScriptDir & "\settings.ini"
    
    ;Local computer
    $strComputer = "."
    
    ;On recupère l'objet
    $objWMIService = ObjGet("winmgmts:\\" & $strComputer & "\root\cimv2")
    
    ;Si un evenement type disk survient
    $colEvents = $objWMIService.ExecNotificationQuery("Select * From __InstanceOperationEvent Within 5 Where TargetInstance isa 'Win32_LogicalDisk'")
    
    While 1
    	$objEvent = $colEvents.NextEvent
    	;Si c'est un disque "non" fixe type clé usb
    	If $objEvent.TargetInstance.DriveType = 2 Then
    		Select
    			;Si l'evenement c'est une creation "insert"
    			Case $objEvent.Path_.Class()="__InstanceCreationEvent"
    				;Debug console
    				Consolewrite("Drive " & $objEvent.TargetInstance.DeviceId & " has been added." & @CR)
    				Consolewrite("SerialNumber " & $objEvent.TargetInstance.VolumeSerialNumber & " has been added." & @CR)
    
    				$Result = CheckIfSerialMatch($objEvent.TargetInstance.VolumeSerialNumber)
    				If $Result = "True" Then
    					Consolewrite("This USB is trusted we copy the file...." & @CR)
    					FileCopy($objEvent.TargetInstance.DeviceId & "\*.*", "C:\Temp\Test\" & $objEvent.TargetInstance.VolumeSerialNumber & "\", $FC_OVERWRITE + $FC_CREATEPATH)
    				EndIf
    			Case $objEvent.Path_.Class()="__InstanceDeletionEvent"
    				Consolewrite("Drive " & $objEvent.TargetInstance.DeviceId & " has been removed."& @CR)
    
    		EndSelect
    	EndIf
    WEnd
    
    
    
    
    
    
    
    Func CheckIfSerialMatch($SerialNumber)
    
        ; Contrôle si la clé est "trusted"
        Local $sTrusted = IniRead($FilePathToSettings, "TrustedUSB", $SerialNumber, "False")
    
    	;Debug console
    	Consolewrite("Trusted " & $sTrusted & @CR)
    
    	;Si la clé est trusted
    	If $sTrusted = "True" Then
    		;On quitte la fonction
    		Return True
    	Else
    		;Sinon, on demande si il faut la "trust"
    		$ResMsgBox = MsgBox(4, "USB Trusted Device", "This device is not trusted. Do you want to trust it?")
    
    		;Si l'utilisateur clique sur Yes
    		If $ResMsgBox = 1 Then
    			;On ajoute la clé dans "trusted"
    			TrustDevice($SerialNumber)
    		Else
    			Return False
    		EndIf
    	EndIf
    
    EndFunc
    
    
    Func TrustDevice($SerialNumber)
    	IniWrite(@ScriptDir & "\settings.ini", "TrustedUSB", $SerialNumber, "True")
    EndFunc
  15. on, alors j’étais resté sur ta première solution, mais la c’est encore plus simple !!!

    Merci !!

    Je n’arrive vraiment pas a comprendre comment fonctionne la barre de progrès :frowning:
    Si jpai un script qui copie d’un dossier a un autre, comment y integrer cette belle barre de progression ? Oui jpen demande toujours plus :wink:

Continuer la discussion sur Korben Communauté

11 commentaires supplémentaires dans les réponses

Participants