FRFAM.COM >> Famille >> Technologie &Innovation >> Informatique

Automatisez le chiffrement de fichiers dans Windows avec ce script Powershell

Le cryptage et le décryptage des fichiers peuvent être un peu de travail. Cependant, en utilisant une extension PowerShell, vous pouvez réduire le processus à une commande d'une seule ligne. Pour ce faire, nous devons installer Gpg4win et un module Powershell. À l'aide de scripts, nous pouvons automatiser le processus de cryptage et de décryptage des fichiers.

Voyons comment chiffrer automatiquement des fichiers dans Windows 10 avec un script.

Les prérequis :installations, modules et certificats

Vous voudrez avoir les outils GPG4Win installés et configurés avant de commencer. Rendez-vous sur la page du projet et téléchargez la dernière version. (Si vous avez besoin de conseils pour installer et configurer l'outil, utilisez ce guide PDF.) Vous allez utiliser la fonction de chiffrement symétrique de GPG4Win dans ce module.

Ce module Powershell gère le chiffrement des fichiers à l'aide d'une phrase secrète plutôt que d'une paire de clés. La force de votre cryptage dépend de la force de votre phrase secrète. Vous devez vous assurer de choisir quelque chose de complexe. Générez-le à l'aide de LastPass ou d'un autre gestionnaire de mots de passe. Enfin, terminez l'installation et passez au module Powershell.

Automatisez le chiffrement de fichiers dans Windows avec ce script Powershell

Les modules Powershell sont des collections de fonctions packagées. Ils utilisent le format de fichier PSM1. Vous enregistrez ces fichiers dans le répertoire Modules de votre profil. Ensuite, ajoutez le module à votre session/script en utilisant Import-Module .

Toutes les cmdlets du module sont disponibles. Au fur et à mesure que vous progressez dans 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 depuis TechNet.

Ensuite, vous devez le copier dans l'un des répertoires Modules. Si vous souhaitez l'installer uniquement pour vous-même, copiez-le dans les PowershellModules de votre dossier utilisateur. Copiez ceci dans l'Explorateur pour un raccourci :

%UserProfile%\Documents\WindowsPowerShell\Modules 

Si vous souhaitez installer le module pour tous les utilisateurs, utilisez le Program Files\Windows PowerShell\Modules dossier. Collez ceci dans l'Explorateur pour un raccourci :

%ProgramFiles%\Windows PowerShell\Modules 

Créez un nouveau dossier nommé GNUPG dans le répertoire Modules et collez-y le fichier PSM1.

Automatisez le chiffrement de fichiers dans Windows avec ce script Powershell

Vous devrez importer le module à chaque fois en utilisant :Import-Module GnuPG . Cependant, vous devrez peut-être régler votre politique d'exécution sur Illimité. Pour ce faire, exécutez la cmdlet Set-ExecutionPolicy RemoteSigned .

Automatisez le chiffrement de fichiers dans Windows avec ce script Powershell

Depuis que vous avez téléchargé ce module, vous devez toujours le marquer en tant que fichier local. Faites un clic droit sur le fichier et sélectionnez Propriétés . Ensuite, dans la boîte de dialogue, cliquez sur Débloquer . Confirmez votre action dans la boîte de dialogue UAC et vous êtes prêt à utiliser le module.

Travailler avec les cmdlets

Ignorez la première applet de commande, qui est utilisée pour installer GPG4Win. Vous devriez déjà avoir terminé cette étape. Sinon, vous pouvez utiliser cette applet de commande pour installer et configurer le programme. L'applet de commande le télécharge dans un dossier que vous choisissez et exécute le programme d'installation. Les deux autres sont complémentaires :Add-Encryption et Supprimer le cryptage . Les deux prennent trois paramètres.

Automatisez le chiffrement de fichiers dans Windows avec ce script Powershell

Le premier est un répertoire, passé sous la forme -FolderPath . Le module parcourra chaque fichier d'un répertoire pour appliquer ou supprimer le cryptage des fichiers. Vous ne voudriez pas le pointer vers votre dossier Documents. Vous voudriez créer quelques sous-dossiers pour travailler avec ce script. Si vous regardez le code source du module, il utilise Get-ChildItem pour tout récupérer dans le répertoire. La fonction de déchiffrement limite la recherche aux fichiers se terminant par .GPG.

Automatisez le chiffrement de fichiers dans Windows avec ce script Powershell

Le paramètre suivant est la phrase secrète utilisée pour le chiffrement du fichier :-Mot de passe . Assurez-vous que c'est complexe, car c'est la protection de votre fichier. La fonction parcourt chacun des fichiers avec une boucle ForEach. Le fichier et la phrase secrète se combinent en tant qu'arguments dans Start-Process pour GPG4Win.

Le dernier paramètre, -GPGPath n'est pas obligatoire. Il est défini sur l'emplacement d'installation par défaut de GPG4Win. Si vous l'avez sur un autre lecteur, vous pouvez le mettre à jour à l'aide de ce paramètre. Cela change la cible du Start-Process .

Écrire le script

Il est maintenant temps d'automatiser le processus. Ce script chiffrera les fichiers dans un répertoire. Déplacez les fichiers décryptés vers un nouveau répertoire. Le script supprimera le fichier d'origine.

Vous commencez votre script avec un peu de préparation. Tout d'abord, importez le module en utilisant Import-Module GnuPG . Vous devez configurer quelques variables. La première variable $EncryptionTarget est votre dossier cible. (Dans l'exemple, une variable d'environnement est utilisée pour pointer vers le dossier de documents de l'utilisateur actuel.) Définissez la seconde variable comme phrase secrète. Cette étape facilite sa modification ultérieure.

Module d'importation GnuPG 
$EncryptionTarget ="$($env:USERPROFILE)\Documents\Files-ToEncrypt"
$Passphrase ="MakeAVeryLongSecurePhrase"
Ajouter-Encryption $EncryptionTarget -Mot de passe $Phrase de passe
Start-Sleep -Secondes 60
$EcnryptedFiles =Get-ChildItem $EncryptionTarget | Where-Object $_.Name -like "*.gpg"
foreach ($gpg dans $EcnryptedFiles){
Move-Item -Path $gpg.FullName -Destination "$($env:USERPROFILE)\Documents\$($gpg.Name)"
}
$UnEncryptedFiles =Get-ChildItem $EncryptionTarget | Where-Object $_.Name -notlike "*.gpg"
foreach ($nongpg dans $UnEcnryptedFiles){
Remove-Item -Path $nongpg.FullName -Confirm $false
}

Ces variables vont à Add-Encryption comme paramètres. Vous utilisez un Start-Sleep pour donner au cryptage du fichier le temps de se terminer. L'exemple utilise trois minutes. Vous pouvez le modifier en fonction de la taille et du nombre de fichiers avec lesquels vous travaillez.

Vous obtenez les fichiers .GPG en combinant Get-ChildItem avec Where-Object . Utiliser un ForEach boucle, chacun de ces fichiers est copié dans un nouveau répertoire. Nous répétons ces étapes, mais en changeant le -like pour -pas comme. A seconde PourChaque loop nettoie les fichiers d'origine.

Définir la tâche récurrente

Vous avez le script, vous devez maintenant créer une tâche planifiée. Ouvrez le planificateur de tâches et cliquez sur Créer une tâche .

Automatisez le chiffrement de fichiers dans Windows avec ce script Powershell

Nommez-le quelque chose comme AutoEncrypt . Si vous souhaitez que la tâche ne s'exécute que lorsque vous êtes connecté, laissez simplement la valeur par défaut. Si vous le configurez pour qu'il s'exécute malgré tout, il ne peut accéder qu'aux répertoires locaux. Cependant, si votre destination se trouve sur une machine distante, vous devez stocker votre mot de passe pour que la tâche s'exécute. Vous pouvez configurer un compte secondaire pour protéger la sécurité de votre compte principal.

Automatisez le chiffrement de fichiers dans Windows avec ce script Powershell

Cliquez sur les déclencheurs onglet et la configuration des conditions. Ensuite, cliquez sur Nouveau pour ouvrir la fenêtre de planification. Vous pouvez laisser les paramètres de déclenchement définis par défaut. Cochez la case à côté de Répéter la tâche tous les et réglez-le sur 5 minutes . Vous pouvez choisir de l'exécuter moins souvent 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.

Automatisez le chiffrement de fichiers dans Windows avec ce script Powershell

Sur les Actions onglet, cliquez sur Nouveau . Dans la popup, mettez le chemin vers Powershell dans la case Programme :

%SystemRoot%/system32/Windows PowerShell/v1.0/powershell.exe 

Dans la boîte d'arguments, mettez ./ et le chemin d'accès à votre script. Cliquez sur OK deux fois et votre script est configuré pour s'exécuter en tant que tâche planifiée.

Quelques problèmes de sécurité et autres idées

Sachez que vous avez le mot de passe pour déchiffrer les fichiers sur la même machine où vous les stockez. Ces types de cryptage de fichiers servent davantage à crypter un fichier avant de l'envoyer ou à le stocker sur une autre machine. (Si vous voulez un système de fichiers verrouillé, utilisez Full Disk Encryption.) Vous pouvez configurer une tâche similaire pour faire de même avec le décryptage.

Avez-vous un projet qui nécessite un script de chiffrement de fichier rapide et sale ? Faites-le nous savoir dans les commentaires.


[]