Het coderen van bestanden en het decoderen van bestanden kan een lastige klus zijn. Door PowerShell te gebruiken, kunt u dit proces echter vereenvoudigen tot slechts een opdracht van één regel. Om dit te doen, moeten we Gpg4win en een Powershell-module installeren. Gebruik scripts om het coderings- en decoderingsproces te automatiseren. Dit artikel laat zien hoe u bestanden in Windows 10 automatisch kunt versleutelen met een script.
Voordat gebruikers beginnen, moeten ze de GPG4Win- tools installeren en configureren . In deze module maakt u gebruik van de symmetrische cryptografiefunctionaliteit van GPG4Win.
Deze Powershell-module verwerkt bestandsversleuteling met een wachtwoord in plaats van met een sleutelpaar. De sterkte van de codering is afhankelijk van de wachtwoordsterkte . Gebruikers moeten complexe wachtwoorden kiezen, misschien met behulp van de LastPass- tool of een andere wachtwoordbeheerder . Voltooi ten slotte de installatie en ga verder met de Powershell-module.

Powershell-modules zijn pakketfuncties met het PSM1-bestandsformaat. U kunt deze bestanden opslaan in de map Modules in uw profiel en vervolgens de module toevoegen aan uw sessie/script met behulp van Import-Module .
Alle module-cmdlets zijn beschikbaar. Naarmate u uw Powershell-vaardigheden verbetert, kunt u zelfs uw eigen modules maken. Om de bestandscoderingsmodule te installeren, downloadt u de module van TechNet . Vervolgens moet u het naar een van de Modules-mappen kopiëren. Als u het zelf wilt installeren, kopieert u het naar PowershellModules in uw gebruikersmap. Kopieer de onderstaande regel naar Explorer om een snelkoppeling te maken:
%Gebruikersprofiel%\Documenten\WindowsPowerShell\Modules
Als u modules voor alle gebruikers wilt installeren, gebruikt u de map Program Files\Windows PowerShell\Modules . Plak de volgende regel in Explorer om een snelkoppeling te maken:
%ProgramFiles%\Windows PowerShell\Modules
Maak een nieuwe map met de naam GNUPG in de map Modules en plak het PSM1-bestand daar.
![Codeer automatisch bestanden in Windows met Powershell Codeer automatisch bestanden in Windows met Powershell]()
Elke keer dat u deze gebruikt, moet u de module importeren: Import-Module GnuPG . U kunt de uitvoering echter aanpassen naar onbeperkt door de cmdlet Set-ExecutionPolicy RemoteSigned uit te voeren .
![Codeer automatisch bestanden in Windows met Powershell Codeer automatisch bestanden in Windows met Powershell]()
Omdat u deze module hebt geladen, moet u deze markeren als een lokaal bestand. Klik met de rechtermuisknop op het bestand en selecteer Eigenschappen . Vink vervolgens in het dialoogvenster Unblock aan . Bevestig de actie in het UAC-dialoogvenster en u bent klaar om de module te gebruiken.
Cmdlet-opdrachten
Sla de eerste Cmdlet-opdracht over die wordt gebruikt om GPG4Win te installeren. Als u deze stap nog niet hebt voltooid, kunt u deze cmdlet gebruiken om het programma te installeren en configureren. De cmdlet laadt het in een map naar keuze en voert het installatieprogramma uit. De andere twee cmdlet-opdrachten zijn extra: Add-Encryption en Remove-Encryption . Beide hebben drie parameters.
![Codeer automatisch bestanden in Windows met Powershell Codeer automatisch bestanden in Windows met Powershell]()
De eerste parameter is een map: -FolderPath . Deze module doorloopt elk bestand in een map om het bestand te coderen of te decoderen. Als u het niet naar de map Documenten wilt laten verwijzen, moet u een paar submappen maken om met dit script te werken. Als je naar de broncode van de module kijkt, gebruikt deze Get-ChildItem om alles in de map op te halen. De decoderingsfunctie beperkt de zoekopdracht tot bestanden die eindigen op .GPG.
![Codeer automatisch bestanden in Windows met Powershell Codeer automatisch bestanden in Windows met Powershell]()
De volgende parameter is het wachtwoord dat wordt gebruikt voor bestandscodering: -Password . Zorg ervoor dat dit wachtwoord complex is, omdat het uw bestanden beschermt. Deze functie doorloopt elk bestand met een ForEach-lus. Bestand en wachtwoord gecombineerd als argumenten in Start-Process voor GPG4Win.
De laatste parameter, -GPGPath , is optioneel. Het wordt geïnstalleerd als de standaardlocatie voor GPG4Win. Als u het op een ander station installeert, kunt u het bijwerken met deze parameter om het doel voor Start-Process te wijzigen .
Schrijf scripts
Nu is het tijd om het proces te automatiseren. Dit script codeert bestanden in een map, verplaatst de gedecodeerde bestanden naar een nieuwe map en verwijdert het originele bestand.
Importeer eerst de module met behulp van mport-Module GnuPG . U moet een paar variabelen instellen. De eerste variabele $EncryptionTarget is de doelmap. (Er wordt bijvoorbeeld een omgevingsvariabele gebruikt om naar de documentenmap van de huidige gebruiker te verwijzen). Stel de tweede variabele in als wachtwoordzin. Deze stap maakt het wijzigen van het wachtwoord eenvoudiger.
Importmodule GnuPG
$EncryptionTarget = "$($env:USERPROFILE)\Documenten\Files-ToEncrypt"
$Passphrase = "MakeAVeryLongSecurePhrase"
Add-Encryption $EncryptionTarget -Wachtwoord $Passphrase
Start-Sleep-Seconden 60
$EcnryptedFiles = Get-ChildItem $EncryptionTarget | Where-Object $_.Name -zoals "*.gpg"
foreach ($gpg in $EcnryptedFiles){
Move-Item -Pad $gpg.FullName -Bestemming "$($env:USERPROFILE)\Documenten\$($gpg.Name)"
}
$UnEncryptedFiles = Get-ChildItem $EncryptionTarget | Where-Object $_.Name -niet zoals "*.gpg"
foreach ($nongpg in $UnEcnryptedFiles){
Item verwijderen -Pad $nongpg.FullName -Bevestig $false
}
Deze variabelen gaan als parameters naar Add-Encryption . De gebruiker gebruikt Start-Sleep om de tijd in te stellen voor het voltooien van de bestandscodering, de tijd is bijvoorbeeld drie minuten. Deze tijd kan variëren, afhankelijk van de grootte en het aantal bestanden waaraan wordt gewerkt.
U krijgt een .GPG-bestand door Get-ChildItem te combineren met Where-Object . Gebruik een ForEach- lus zodat elk bestand naar een nieuwe map wordt gekopieerd. U kunt deze stappen herhalen, maar -like naar -notlike converteren, zodat een tweede ForEach- lus de originele bestanden opruimt.
Cronjobs instellen
Nu u het script heeft, moet u een geplande taak maken. Open Taakplanner en klik op Taak maken .
![Codeer automatisch bestanden in Windows met Powershell Codeer automatisch bestanden in Windows met Powershell]()
Noem het AutoEncrypt . Als u de taak alleen wilt uitvoeren als u bent ingelogd, laat u de instellingen op standaard staan. Indien ingesteld om te worden uitgevoerd ongeacht of de gebruiker is aangemeld of niet, selecteert u " Uitvoeren, ongeacht of de gebruiker is aangemeld of niet ". Het programma heeft alleen toegang tot mappen op de computer. Als uw bestemming zich echter op een externe computer bevindt, moet u het wachtwoord opslaan. Bovendien kunt u een secundair account instellen om uw hoofdaccount te beschermen.
![Codeer automatisch bestanden in Windows met Powershell Codeer automatisch bestanden in Windows met Powershell]()
Klik op het tabblad Triggers en stel de voorwaarden in. Klik vervolgens op Nieuw om het planningsvenster te openen. U kunt de instellingen op de standaard laten staan, vervolgens op het vakje naast Taak herhalen elke klikken en dit instellen op 5 minuten . U kunt meer tijd kiezen als uw behoefte niet dringend is. In het vervolgkeuzemenu naast voor de duur van: selecteer Onbepaald en klik op OK om terug te keren naar het venster Taak maken.
![Codeer automatisch bestanden in Windows met Powershell Codeer automatisch bestanden in Windows met Powershell]()
Klik op het tabblad Acties op Nieuw en stel in het pop-upvenster het pad in naar Powershell in het vak Programma :
%SystemRoot%/system32/Windows PowerShell/v1.0/powershell.exe
Plaats in het argumentvak ./ en het pad naar het script. Klik tweemaal op OK en het script wordt uitgevoerd als een geplande taak.
Bekijk meer: