Das Verschlüsseln und Entschlüsseln von Dateien kann eine schwierige Aufgabe sein. Durch die Verwendung von PowerShell können Sie diesen Vorgang jedoch auf einen einzeiligen Befehl vereinfachen. Dazu müssen wir Gpg4win und ein Powershell-Modul installieren. Verwenden Sie Skripte, um den Ver- und Entschlüsselungsprozess zu automatisieren. In diesem Artikel erfahren Sie, wie Sie Dateien in Windows 10 mit einem Skript automatisch verschlüsseln.
Bevor Sie beginnen, müssen Benutzer die GPG4Win- Tools installieren und konfigurieren . In diesem Modul nutzen Sie die symmetrische Kryptografiefunktion von GPG4Win.
Dieses Powershell-Modul übernimmt die Dateiverschlüsselung mit einem Passwort statt mit einem Schlüsselpaar. Die Stärke der Verschlüsselung hängt von der Passwortstärke ab . Benutzer sollten komplexe Passwörter wählen, vielleicht mit dem LastPass- Tool oder einem anderen Passwort-Manager . Schließen Sie abschließend die Installation ab und fahren Sie mit dem Powershell-Modul fort.
Powershell-Module sind gepackte Funktionssätze, die das PSM1-Dateiformat verwenden. Sie können diese Dateien im Ordner „Module“ in Ihrem Profil speichern und das Modul dann mit „ Import-Module“ zu Ihrer Sitzung/Ihrem Skript hinzufügen .
Alle Modul-Cmdlets sind verfügbar. Wenn Sie Ihre Powershell-Kenntnisse weiterentwickeln, können Sie sogar Ihre eigenen Module erstellen. Um das Dateiverschlüsselungsmodul zu installieren, laden Sie das Modul von TechNet herunter . Als nächstes müssen Sie es in einen der Modulordner kopieren. Wenn Sie es selbst installieren möchten, kopieren Sie es nach PowershellModules in Ihrem Benutzerverzeichnis. Kopieren Sie die folgende Zeile in den Explorer, um eine Verknüpfung zu erstellen:
%UserProfile%\Documents\WindowsPowerShell\Modules
Wenn Sie Module für alle Benutzer installieren möchten, verwenden Sie den Ordner Programme\Windows PowerShell\Modules . Fügen Sie die folgende Zeile in den Explorer ein, um eine Verknüpfung zu erstellen:
%ProgramFiles%\Windows PowerShell\Modules
Erstellen Sie im Modulordner einen neuen Ordner mit dem Namen GNUPG und fügen Sie die PSM1-Datei dort ein.
Sie müssen das Modul jedes Mal importieren, wenn Sie es verwenden: Import-Module GnuPG . Sie können die Ausführung jedoch auf „Uneingeschränkt“ einstellen, indem Sie das Cmdlet „Set-ExecutionPolicy RemoteSigned“ ausführen .
Da Sie dieses Modul geladen haben, müssen Sie es als lokale Datei markieren. Klicken Sie mit der rechten Maustaste auf die Datei und wählen Sie Eigenschaften aus . Aktivieren Sie als Nächstes im Dialogfeld die Option „Entsperren“ . Bestätigen Sie die Aktion im UAC-Dialogfeld und Sie können das Modul verwenden.
Cmdlet-Befehle
Überspringen Sie den ersten Cmdlet-Befehl, der zur Installation von GPG4Win verwendet wird. Wenn Sie diesen Schritt nicht abgeschlossen haben, können Sie dieses Cmdlet verwenden, um das Programm zu installieren und zu konfigurieren. Das Cmdlet lädt es in ein Verzeichnis Ihrer Wahl und führt das Installationsprogramm aus. Die beiden anderen Cmdlet-Befehle sind zusätzlich: Add-Encryption und Remove-Encryption . Beide haben drei Parameter.
Der erste Parameter ist ein Ordner: -FolderPath . Dieses Modul durchsucht jede Datei in einem Ordner, um die Datei zu verschlüsseln oder zu entschlüsseln. Wenn Sie nicht auf den Ordner „Dokumente“ verweisen möchten, sollten Sie ein Paar Unterordner erstellen, um mit diesem Skript zu arbeiten. Wenn Sie sich den Quellcode des Moduls ansehen, verwendet es Get-ChildItem , um alles im Verzeichnis abzurufen. Die Entschlüsselungsfunktion beschränkt die Suche auf Dateien mit der Endung .GPG.
Der nächste Parameter ist das für die Dateiverschlüsselung verwendete Passwort: -Password . Stellen Sie sicher, dass dieses Passwort komplex ist, da es Ihre Dateien schützt. Diese Funktion durchläuft jede Datei mit einer ForEach-Schleife. Datei und Passwort kombiniert als Argumente im Start-Prozess für GPG4Win.
Der letzte Parameter, -GPGPath, ist optional. Es wird als Standardspeicherort für GPG4Win installiert. Wenn Sie es auf einem anderen Laufwerk installieren, können Sie es mit diesem Parameter aktualisieren, um das Ziel für Start-Process zu ändern .
Schreiben Sie Skripte
Jetzt ist es an der Zeit, den Prozess zu automatisieren. Dieses Skript verschlüsselt Dateien in einem Ordner, verschiebt die entschlüsselten Dateien in einen neuen Ordner und löscht die Originaldatei.
Importieren Sie zunächst das Modul mit mport-Module GnuPG . Sie müssen einige Variablen einrichten. Die erste Variable $EncryptionTarget ist das Zielverzeichnis. (Eine Umgebungsvariable wird beispielsweise verwendet, um auf das Dokumentenverzeichnis des aktuellen Benutzers zu verweisen.) Legen Sie die zweite Variable als Passphrase fest. Dieser Schritt erleichtert das Ändern des Passworts.
Import-Modul GnuPG
$EncryptionTarget = "$($env:USERPROFILE)\Documents\Files-ToEncrypt"
$Passphrase = „MakeAVeryLongSecurePhrase“
Add-Encryption $EncryptionTarget -Password $Passphrase
Start-Schlaf-Sekunden 60
$EcnryptedFiles = Get-ChildItem $EncryptionTarget | Where-Object $_.Name -like "*.gpg"
foreach ($gpg in $EcnryptedFiles){
Move-Item -Path $gpg.FullName -Destination "$($env:USERPROFILE)\Documents\$($gpg.Name)"
}
$UnEncryptedFiles = Get-ChildItem $EncryptionTarget | Where-Object $_.Name -notlike "*.gpg"
foreach ($nongpg in $UnEcnryptedFiles){
Remove-Item -Path $nongpg.FullName -Confirm $false
}
Diese Variablen gehen als Parameter an Add-Encryption . Der Benutzer verwendet einen Start-Sleep-Befehl , um die Zeit bis zum Abschluss der Dateiverschlüsselung festzulegen, beispielsweise beträgt die Zeit drei Minuten. Diese Zeit kann je nach Größe und Anzahl der bearbeiteten Dateien variieren.
Sie erhalten eine .GPG-Datei, indem Sie Get-ChildItem mit Where-Object kombinieren . Verwenden Sie eine ForEach- Schleife , damit jede Datei in ein neues Verzeichnis kopiert wird. Sie können diese Schritte wiederholen, aber „-like“ in „-notlike“ konvertieren, sodass eine zweite ForEach -Schleife die Originaldateien bereinigt.
Cronjobs einrichten
Da Sie nun über das Skript verfügen, müssen Sie eine geplante Aufgabe erstellen. Öffnen Sie den Taskplaner und klicken Sie auf Aufgabe erstellen .
Nennen Sie es AutoEncrypt . Wenn Sie die Aufgabe nur ausführen möchten, wenn Sie angemeldet sind, belassen Sie die Einstellungen auf den Standardeinstellungen. Wenn die Ausführung unabhängig davon eingestellt ist, ob der Benutzer angemeldet ist oder nicht, wählen Sie „ Ausführen, unabhängig davon, ob der Benutzer angemeldet ist oder nicht “. Dadurch kann nur auf Ordner auf dem Computer zugegriffen werden. Wenn sich Ihr Ziel jedoch auf einem Remote-Computer befindet, müssen Sie das Passwort speichern. Darüber hinaus können Sie ein Zweitkonto einrichten, um Ihr Hauptkonto zu schützen.
Klicken Sie auf die Registerkarte „Trigger“ und legen Sie die Bedingungen fest. Klicken Sie anschließend auf Neu , um das Planungsfenster zu öffnen. Sie können die Standardeinstellungen beibehalten, dann auf das Kästchen neben „ Aufgabe alle wiederholen“ klicken und es auf „ 5 Minuten“ einstellen . Sie können mehr Zeit wählen, wenn Ihr Bedarf nicht dringend ist. Wählen Sie im Dropdown-Menü neben „ Für die Dauer von“ die Option „Unbegrenzt“ aus und klicken Sie auf „ OK“ , um zum Fenster „Aufgabe erstellen“ zurückzukehren.
Klicken Sie auf der Registerkarte „Aktionen“ auf „Neu“ und legen Sie im Popup-Fenster im Feld „ Programm“ den Pfad zu Powershell fest :
%SystemRoot%/system32/Windows PowerShell/v1.0/powershell.exe
Geben Sie im Argumentfeld ./ und den Pfad zum Skript ein. Klicken Sie zweimal auf „OK“ und das Skript wird so eingestellt, dass es als geplante Aufgabe ausgeführt wird.
Mehr sehen: