Le cryptage et le décryptage de fichiers peuvent être une tâche un peu difficile. Cependant, en utilisant PowerShell , vous pouvez simplifier ce processus en une seule commande sur une seule ligne. Pour ce faire, nous devons installer Gpg4win et un module Powershell. Utilisez des scripts pour automatiser le processus de cryptage et de décryptage. Cet article vous montrera comment chiffrer automatiquement des fichiers dans Windows 10 avec un script.
Avant de commencer, les utilisateurs doivent installer et configurer les outils GPG4Win . Vous utiliserez la fonctionnalité de cryptographie symétrique de GPG4Win dans ce module.
Ce module Powershell gère le cryptage des fichiers avec un mot de passe plutôt qu'une paire de clés. La force du cryptage dépend de la force du mot de passe . Les utilisateurs doivent choisir des mots de passe complexes, peut-être en utilisant l' outil LastPass ou un autre gestionnaire de mots de passe . Enfin, terminez l'installation et passez au module Powershell.
Les modules Powershell sont des ensembles de fonctions packagés, utilisant le format de fichier PSM1. Vous pouvez enregistrer ces fichiers dans le dossier Modules de votre profil, puis ajouter le module à votre session/script à l'aide de Import-Module .
Toutes les applets de commande de module sont disponibles. Au fur et à mesure que vous perfectionnez vos compétences Powershell, vous pouvez même créer vos propres modules. Pour installer le module de chiffrement de fichiers, téléchargez le module depuis TechNet . Ensuite, vous devez le copier dans l'un des dossiers Modules. Si vous souhaitez l'installer vous-même, copiez-le dans PowershellModules dans votre répertoire utilisateur. Copiez la ligne ci-dessous dans l'Explorateur pour créer un raccourci :
%UserProfile%\Documents\WindowsPowerShell\Modules
Si vous souhaitez installer des modules pour tous les utilisateurs, utilisez le dossier Program Files\Windows PowerShell\Modules . Collez la ligne suivante dans l'Explorateur pour créer un raccourci :
%ProgramFiles%\Windows PowerShell\Modules
Créez un nouveau dossier appelé GNUPG dans le dossier Modules et collez-y le fichier PSM1.
Vous devez importer le module à chaque fois que vous l'utilisez : Import-Module GnuPG . Toutefois, vous pouvez régler l'exécution sur Unrestricted en exécutant la cmdlet Set-ExecutionPolicy RemoteSigned .
Puisque vous avez chargé ce module, vous devez le marquer comme fichier local. Faites un clic droit sur le fichier et sélectionnez Propriétés . Ensuite, dans la boîte de dialogue, cochez Débloquer . Confirmez l'action dans la boîte de dialogue UAC et vous êtes prêt à utiliser le module.
Commandes d'applet de commande
Ignorez la première commande Cmdlet, utilisée pour installer GPG4Win. Si vous n'avez pas terminé cette étape, vous pouvez utiliser cette applet de commande pour installer et configurer le programme. L'applet de commande le charge dans un répertoire de votre choix et exécute le programme d'installation. Les deux autres commandes d'applet de commande sont supplémentaires : Add-Encryption et Remove-Encryption . Les deux ont trois paramètres.
Le premier paramètre est un dossier : -FolderPath . Ce module parcourra chaque fichier d'un dossier pour crypter ou déchiffrer le fichier. Si vous ne souhaitez pas le pointer vers le dossier Documents, vous devez créer une paire de sous-dossiers pour travailler avec ce script. Si vous regardez le code source du module, il utilise Get-ChildItem pour obtenir tout ce qui se trouve dans le répertoire. La fonction de décryptage limite la recherche aux fichiers se terminant par .GPG.
Le paramètre suivant est le mot de passe utilisé pour le cryptage du fichier : -Password . Assurez-vous que ce mot de passe est complexe, car il protège vos fichiers. Cette fonction parcourra chaque fichier avec une boucle ForEach. Fichier et mot de passe combinés comme arguments dans Start-Process pour GPG4Win.
Le dernier paramètre, -GPGPath est facultatif. Il est installé comme emplacement par défaut pour GPG4Win. Si vous l'installez sur un autre lecteur, vous pouvez le mettre à jour à l'aide de ce paramètre pour modifier la cible de Start-Process .
Écrire des scripts
Il est maintenant temps d'automatiser le processus. Ce script cryptera les fichiers dans un dossier, déplacera les fichiers décryptés dans un nouveau dossier et supprimera le fichier d'origine.
Tout d’abord, importez le module en utilisant mport-Module GnuPG . Vous devez configurer quelques variables. La première variable $EncryptionTarget est le répertoire cible. (Par exemple, une variable d'environnement est utilisée pour pointer vers le répertoire de documents de l'utilisateur actuel). Définissez la deuxième variable comme phrase secrète, cette étape facilite la modification du mot de passe.
Module d'importation GnuPG
$EncryptionTarget = "$($env:USERPROFILE)\Documents\Files-ToEncrypt"
$Phrase de passe = "MakeAVeryLongSecurePhrase"
Ajouter-Encryption $EncryptionTarget -Mot de passe $Phrase de passe
Démarrer-Sommeil-Secondes 60
$EcnryptedFiles = Get-ChildItem $EncryptionTarget | Où-Objet $_.Name -like "*.gpg"
foreach ($gpg dans $EcnryptedFiles){
Move-Item -Chemin $gpg.FullName -Destination "$($env:USERPROFILE)\Documents\$($gpg.Name)"
}
$UnEncryptedFiles = Get-ChildItem $EncryptionTarget | Where-Object $_.Name -pas comme "*.gpg"
foreach ($nongpg dans $UnEcnryptedFiles){
Remove-Item -Chemin $nongpg.FullName -Confirm $false
}
Ces variables vont dans Add-Encryption en tant que paramètres. L'utilisateur utilise un mode Start-Sleep pour définir l'heure nécessaire au cryptage du fichier, par exemple la durée est de trois minutes. Ce temps peut varier en fonction de la taille et du nombre de fichiers sur lesquels vous travaillez.
Vous obtenez un fichier .GPG en combinant Get-ChildItem avec Where-Object . Utilisez une boucle ForEach pour que chaque fichier soit copié dans un nouveau répertoire. Vous pouvez répéter ces étapes, mais convertir -like en -notlike afin qu'une deuxième boucle ForEach nettoie les fichiers d'origine.
Configurer des tâches cron
Maintenant que vous disposez du script, vous devez créer une tâche planifiée. Ouvrez le Planificateur de tâches et cliquez sur Créer une tâche .
Nommez-le AutoEncrypt . Si vous souhaitez exécuter la tâche uniquement lorsque vous êtes connecté, laissez les paramètres par défaut. S'il est configuré pour s'exécuter que l'utilisateur soit connecté ou non, sélectionnez « Exécuter que l'utilisateur soit connecté ou non », il ne peut accéder qu'aux dossiers de l'ordinateur. Toutefois, si votre destination se trouve sur un ordinateur distant, vous devez stocker le mot de passe. De plus, vous pouvez créer un compte secondaire pour protéger votre compte principal.
Cliquez sur l' onglet Déclencheurs et définissez les conditions. Ensuite, cliquez sur Nouveau pour ouvrir la fenêtre de planification. Vous pouvez laisser les paramètres par défaut, puis cliquer sur la case à côté de Répéter la tâche toutes les et la définir sur 5 minutes . Vous pouvez choisir plus de temps si votre besoin n’est pas urgent. Dans le menu déroulant à côté de pour la durée de : sélectionnez Indéfiniment , cliquez sur OK pour revenir à la fenêtre Créer une tâche.
Dans l' onglet Actions , cliquez sur Nouveau , dans la fenêtre contextuelle, définissez le chemin d'accès à Powershell dans la zone Programme :
%SystemRoot%/system32/Windows PowerShell/v1.0/powershell.exe
Dans la zone d'argument, mettez ./ et le chemin d'accès au script. Cliquez deux fois sur OK et le script est configuré pour s'exécuter en tant que tâche planifiée.
En savoir plus :