Szyfrowanie i deszyfrowanie plików może być trudnym zadaniem. Jednak korzystając z programu PowerShell , można uprościć ten proces do polecenia jednowierszowego. Aby to zrobić musimy zainstalować Gpg4win i moduł Powershell. Użyj skryptów, aby zautomatyzować proces szyfrowania i deszyfrowania. W tym artykule dowiesz się, jak automatycznie szyfrować pliki w systemie Windows 10 za pomocą skryptu.
Przed rozpoczęciem użytkownicy muszą zainstalować i skonfigurować narzędzia GPG4Win . W tym module wykorzystasz funkcjonalność kryptografii symetrycznej GPG4Win.
Ten moduł Powershell obsługuje szyfrowanie plików za pomocą hasła, a nie pary kluczy. Siła szyfrowania zależy od siły hasła . Użytkownicy powinni wybierać złożone hasła, być może korzystając z narzędzia LastPass lub innego menedżera haseł . Na koniec zakończ instalację i przejdź do modułu Powershell.

Moduły Powershell to spakowane zestawy funkcji korzystające z formatu pliku PSM1. Możesz zapisać te pliki w folderze Modules w swoim profilu, a następnie dodać moduł do swojej sesji/skryptu za pomocą Import-Module .
Dostępne są wszystkie polecenia cmdlet modułu. W miarę rozwijania umiejętności PowerShell możesz nawet tworzyć własne moduły. Aby zainstalować moduł szyfrowania plików, pobierz moduł z TechNet . Następnie musisz skopiować go do jednego z folderów Moduły. Jeśli chcesz zainstalować go samodzielnie, skopiuj go do PowershellModules w katalogu użytkownika. Skopiuj poniższy wiersz do Eksploratora, aby utworzyć skrót:
%UserProfile%\Documents\WindowsPowerShell\Modules
Jeśli chcesz zainstalować moduły dla wszystkich użytkowników, użyj folderu Program Files\Windows PowerShell\Modules . Wklej następujący wiersz do Eksploratora, aby utworzyć skrót:
%ProgramFiles%\Windows PowerShell\Modules
Utwórz nowy folder o nazwie GNUPG w folderze Modules i wklej tam plik PSM1.
![Automatycznie szyfruj pliki w systemie Windows za pomocą programu PowerShell Automatycznie szyfruj pliki w systemie Windows za pomocą programu PowerShell]()
Musisz zaimportować moduł za każdym razem, gdy go używasz: Import-Module GnuPG . Można jednak dostosować wykonanie do nieograniczonego, uruchamiając polecenie cmdlet Set-ExecutionPolicy RemoteSigned .
![Automatycznie szyfruj pliki w systemie Windows za pomocą programu PowerShell Automatycznie szyfruj pliki w systemie Windows za pomocą programu PowerShell]()
Ponieważ załadowałeś ten moduł, musisz oznaczyć go jako plik lokalny. Kliknij plik prawym przyciskiem myszy i wybierz Właściwości . Następnie w oknie dialogowym zaznacz Odblokuj . Potwierdź akcję w oknie dialogowym UAC i możesz zacząć korzystać z modułu.
Polecenia cmdletu
Pomiń pierwsze polecenie cmdlet używane do instalacji GPG4Win. Jeśli nie wykonałeś tego kroku, możesz użyć tego polecenia cmdlet do zainstalowania i skonfigurowania programu. Polecenie cmdlet ładuje go do wybranego katalogu i uruchamia instalator. Pozostałe dwa polecenia cmdlet są dodatkowe: Add-Encryption i Remove-Encryption . Oba mają trzy parametry.
![Automatycznie szyfruj pliki w systemie Windows za pomocą programu PowerShell Automatycznie szyfruj pliki w systemie Windows za pomocą programu PowerShell]()
Pierwszym parametrem jest folder: -FolderPath . Moduł ten przejrzy każdy plik w folderze, aby zaszyfrować lub odszyfrować plik. Jeśli nie chcesz wskazywać folderu Dokumenty, powinieneś utworzyć parę podfolderów do pracy z tym skryptem. Jeśli spojrzysz na kod źródłowy modułu, użyje on Get-ChildItem , aby pobrać wszystko z katalogu. Funkcja deszyfrowania ogranicza wyszukiwanie do plików kończących się na .GPG.
![Automatycznie szyfruj pliki w systemie Windows za pomocą programu PowerShell Automatycznie szyfruj pliki w systemie Windows za pomocą programu PowerShell]()
Kolejnym parametrem jest hasło użyte do szyfrowania pliku: -Password . Upewnij się, że to hasło jest złożone, ponieważ chroni Twoje pliki. Ta funkcja przejdzie przez każdy plik za pomocą pętli ForEach. Plik i hasło połączone jako argumenty w procesie startowym dla GPG4Win.
Ostatni parametr, -GPGPath, jest opcjonalny. Jest instalowany jako domyślna lokalizacja dla GPG4Win. Jeśli zainstalujesz go na innym dysku, możesz go zaktualizować za pomocą tego parametru, aby zmienić cel dla Start-Process .
Pisz skrypty
Teraz przyszedł czas na automatyzację procesu. Ten skrypt zaszyfruje pliki w folderze, przeniesie odszyfrowane pliki do nowego folderu i usunie oryginalny plik.
Najpierw zaimportuj moduł za pomocą mport-Module GnuPG . Musisz ustawić kilka zmiennych. Pierwsza zmienna $EncryptionTarget to katalog docelowy. (Na przykład zmienna środowiskowa wskazuje katalog dokumentów bieżącego użytkownika). Ustaw drugą zmienną jako hasło. Ten krok ułatwi zmianę hasła.
Moduł importu GnuPG
$EncryptionTarget = "$($env:USERPROFILE)\Documents\Files-ToEncrypt"
$Passphrase = "MakeAVeryLongSecurePhrase"
Add-Encryption $EncryptionTarget -Hasło $Passphrase
Start-uśpienie-sekundy 60
$EcnryptedFiles = Get-ChildItem $EncryptionTarget | Where-Object $_.Name -jak "*.gpg"
foreach ($gpg w $EcnryptedFiles){
Move-Item -Path $gpg.FullName -Destination "$($env:USERPROFILE)\Documents\$($gpg.Name)"
}
$UnEncryptedFiles = Get-ChildItem $EncryptionTarget | Where-Object $_.Name -nie jak "*.gpg"
foreach ($nongpg w $UnEcnryptedFiles){
Usuń element - Ścieżka $nongpg.FullName -Potwierdź $false
}
Zmienne te trafiają do Add-Encryption jako parametry. Użytkownik korzysta z funkcji Start-Sleep, aby ustawić czas zakończenia szyfrowania pliku, na przykład czas ten wynosi trzy minuty. Czas ten może się różnić w zależności od rozmiaru i liczby plików, nad którymi pracujesz.
Otrzymujesz plik .GPG, łącząc Get-ChildItem z Where-Object . Użyj pętli ForEach , aby każdy plik został skopiowany do nowego katalogu. Możesz powtórzyć te kroki, ale przekonwertuj -like na -notlike, aby druga pętla ForEach wyczyściła oryginalne pliki.
Skonfiguruj zadania cron
Teraz, gdy masz już skrypt, musisz utworzyć zaplanowane zadanie. Otwórz Harmonogram zadań i kliknij Utwórz zadanie .
![Automatycznie szyfruj pliki w systemie Windows za pomocą programu PowerShell Automatycznie szyfruj pliki w systemie Windows za pomocą programu PowerShell]()
Nazwij to AutoEncrypt . Jeśli chcesz uruchomić zadanie tylko po zalogowaniu, pozostaw ustawienia domyślne. Jeśli ustawiono uruchamianie niezależnie od tego, czy użytkownik jest zalogowany, czy nie, wybierz opcję „ Uruchom niezależnie od tego, czy użytkownik jest zalogowany, czy nie ”, dostęp będzie możliwy tylko do folderów na komputerze. Jeśli jednak miejsce docelowe znajduje się na komputerze zdalnym, musisz zapisać hasło. Dodatkowo możesz skonfigurować konto dodatkowe, aby chronić swoje konto główne.
![Automatycznie szyfruj pliki w systemie Windows za pomocą programu PowerShell Automatycznie szyfruj pliki w systemie Windows za pomocą programu PowerShell]()
Kliknij zakładkę Wyzwalacze i ustaw warunki. Następnie kliknij Nowy , aby otworzyć okno planowania. Możesz pozostawić ustawienia domyślne, a następnie kliknąć pole obok Powtarzaj zadanie co i ustawić je na 5 minut . Możesz wybrać więcej czasu, jeśli Twoja potrzeba nie jest pilna. W rozwijanym menu obok na czas trwania: wybierz Bezterminowo , kliknij OK , aby powrócić do okna Utwórz zadanie.
![Automatycznie szyfruj pliki w systemie Windows za pomocą programu PowerShell Automatycznie szyfruj pliki w systemie Windows za pomocą programu PowerShell]()
Na karcie Akcje kliknij Nowy , w wyskakującym oknie ustaw ścieżkę do PowerShell w polu Program :
%SystemRoot%/system32/Windows PowerShell/v1.0/powershell.exe
W polu argumentu umieść ./ i ścieżkę do skryptu. Kliknij dwukrotnie OK , a skrypt zostanie ustawiony do uruchomienia jako zaplanowane zadanie.
Zobacz więcej: