Шифрование и расшифровка файлов может оказаться довольно сложной задачей. Однако, используя PowerShell , вы можете упростить этот процесс до одной команды. Для этого нам нужно установить Gpg4win и модуль Powershell. Используйте скрипты для автоматизации процесса шифрования и дешифрования. Эта статья покажет вам, как автоматически шифровать файлы в Windows 10 с помощью скрипта.
Перед началом пользователям необходимо установить и настроить инструменты GPG4Win . В этом модуле вы будете использовать функциональность симметричной криптографии GPG4Win.
Этот модуль Powershell обрабатывает шифрование файлов с помощью пароля, а не пары ключей. Надежность шифрования зависит от надежности пароля . Пользователям следует выбирать сложные пароли, возможно, используя инструмент LastPass или другой менеджер паролей . Наконец, завершите установку и перейдите к модулю Powershell.

Модули Powershell представляют собой упакованные наборы функций, использующие формат файлов PSM1. Вы можете сохранить эти файлы в папке «Модули» в своем профиле, а затем добавить модуль в свой сеанс/скрипт с помощью Import-Module .
Доступны все командлеты модулей. По мере того, как вы совершенствуете свои навыки работы с Powershell, вы даже можете создавать свои собственные модули. Чтобы установить модуль шифрования файлов, загрузите модуль с сайта TechNet . Далее вам нужно скопировать его в одну из папок модулей. Если вы хотите установить его самостоятельно, скопируйте его в PowershellModules в своем пользовательском каталоге. Скопируйте строку ниже в Проводник, чтобы создать ярлык:
%UserProfile%\Documents\WindowsPowerShell\Modules
Если вы хотите установить модули для всех пользователей, используйте папку Program Files\Windows PowerShell\Modules . Вставьте следующую строку в проводник, чтобы создать ярлык:
%ProgramFiles%\Windows PowerShell\Модули
Создайте новую папку под названием GNUPG в папке «Модули» и вставьте туда файл PSM1.

Вам необходимо импортировать модуль каждый раз, когда вы его используете: Import-Module GnuPG . Однако вы можете настроить «Выполнение» на «Неограниченное», запустив командлет Set-ExecutionPolicy RemoteSigned .

Поскольку вы загрузили этот модуль, вам необходимо пометить его как локальный файл. Щелкните правой кнопкой мыши по файлу и выберите «Свойства» . Далее в диалоговом окне установите флажок Разблокировать . Подтвердите действие в диалоговом окне UAC, и вы готовы к использованию модуля.
Команды командлета
Пропустите первую команду командлета, используемую для установки GPG4Win. Если вы не выполнили этот шаг, вы можете использовать этот командлет для установки и настройки программы. Командлет загружает его в выбранный вами каталог и запускает установщик. Две другие команды командлета являются дополнительными: Add-Encryption и Remove-Encryption . Оба имеют три параметра.

Первый параметр — это папка: -FolderPath . Этот модуль просматривает каждый файл в папке, чтобы зашифровать или расшифровать файл. Если вы не хотите указывать папку «Документы», вам следует создать пару подпапок для работы с этим скриптом. Если вы посмотрите исходный код модуля, он использует Get-ChildItem для получения всего, что находится в каталоге. Функция дешифрования ограничивает поиск файлами, заканчивающимися на .GPG.

Следующий параметр — это пароль, используемый для шифрования файла: -Password . Убедитесь, что этот пароль сложный, поскольку он защищает ваши файлы. Эта функция будет проходить через каждый файл с помощью цикла ForEach. Файл и пароль объединены в качестве аргументов в Start-Process для GPG4Win.
Последний параметр -GPGPath является необязательным. Он устанавливается в качестве местоположения по умолчанию для GPG4Win. Если вы устанавливаете его на другой диск, вы можете обновить его, используя этот параметр, чтобы изменить цель для Start-Process .
Написание сценариев
Теперь пришло время автоматизировать процесс. Этот скрипт зашифрует файлы в папке, переместит расшифрованные файлы в новую папку и удалит исходный файл.
Сначала импортируйте модуль с помощью mport-Module GnuPG . Вам нужно настроить несколько переменных. Первая переменная $EncryptionTarget — это целевой каталог. (Например, переменная среды используется для указания каталога документов текущего пользователя). Установите вторую переменную в качестве парольной фразы. Этот шаг облегчит смену пароля.
Импорт-модуль GnuPG
$EncryptionTarget = "$($env:USERPROFILE)\Documents\Files-ToEncrypt"
$Passphrase = "MakeAVeryLongSecurePhrase"
Добавить-шифрование $EncryptionTarget -Password $Passphrase
Старт-Сон -Секунды 60
$EcnryptedFiles = Get-ChildItem $EncryptionTarget | Где-Объект $_.Имя - например "*.gpg"
Еогеасп ($gpg в $EcnryptedFiles){
Move-Item -Path $gpg.FullName -Destination "$($env:USERPROFILE)\Documents\$($gpg.Name)"
}
$UnEncryptedFiles = Get-ChildItem $EncryptionTarget | Где-Объект $_.Имя, а не "*.gpg"
foreach ($nongpg в $UnEcnryptedFiles){
Remove-Item -Path $nongpg.FullName -Подтвердить $false
}
Эти переменные передаются в Add-Encryption в качестве параметров. Пользователь использует Start-Sleep , чтобы установить время завершения шифрования файла, например, это время составляет три минуты. Это время может варьироваться в зависимости от размера и количества обрабатываемых файлов.
Вы получаете файл .GPG, комбинируя Get-ChildItem с Where-Object . Используйте цикл ForEach , чтобы каждый файл копировался в новый каталог. Вы можете повторить эти шаги, но преобразовать -like в -notlike, чтобы второй цикл ForEach очистил исходные файлы.
Настройка заданий cron
Теперь, когда у вас есть сценарий, вам нужно создать запланированное задание. Откройте планировщик задач и нажмите «Создать задачу» .

Назовите его AutoEncrypt . Если вы хотите запускать задачу только при входе в систему, оставьте настройки по умолчанию. Если настроен запуск независимо от того, вошел пользователь в систему или нет, выберите « Запускать независимо от того, вошел пользователь в систему или нет », он сможет получить доступ только к папкам на компьютере. Однако если пункт назначения находится на удаленном компьютере, вам необходимо сохранить пароль. Кроме того, вы можете настроить дополнительную учетную запись для защиты своей основной учетной записи.

Перейдите на вкладку «Триггеры» и установите условия. Затем нажмите «Создать» , чтобы открыть окно планирования. Вы можете оставить настройки по умолчанию, затем установить флажок « Повторять задачу каждые» и установить значение « 5 минут» . Вы можете выбрать больше времени, если ваша потребность не является срочной. В раскрывающемся меню рядом с надписью « Продолжительность»: выберите « На неопределенный срок» и нажмите «ОК» , чтобы вернуться в окно «Создать задачу».

На вкладке «Действия» нажмите «Создать» , во всплывающем окне задайте путь к Powershell в поле «Программа» :
%SystemRoot%/system32/Windows PowerShell/v1.0/powershell.exe
В поле аргумента укажите ./ и путь к скрипту. Дважды нажмите «ОК» , и сценарий будет запущен как запланированное задание.
Узнать больше: