Автоматизируйте шифрование файлов в Windows с помощью этого скрипта Powershell

Шифрование файлов и дешифрование файлов может быть немного работы

, Однако, используя расширение PowerShell, вы можете сократить процесс до однострочной команды. Для этого нам нужно установить Gpg4win и модуль Powershell. Используя скрипты, мы можем автоматизировать процесс шифрования и дешифрования файлов.

Давайте рассмотрим, как автоматически шифровать файлы в Windows 10 с помощью сценария.

Предварительные условия: установки, модули и сертификаты

Вам нужно будет установить и настроить инструменты GPG4Win перед началом работы. Перейдите на страницу проекта и загрузите последнюю версию. (Если вам требуется руководство по установке и настройке инструмента, используйте это руководство в формате PDF.) В этом модуле вы собираетесь использовать функцию симметричного шифра GPG4Win.

Этот модуль Powershell обрабатывает шифрование файлов с использованием ключевой фразы, а не пары ключей.

, Сила вашего шифрования зависит от силы вашей парольной фразы. Вы должны убедиться, что выбрали что-то сложное. Создайте его, используя LastPass или другой менеджер паролей

, Наконец, завершите установку и перейдите к модулю Powershell.

автоматизировать шифрование файлов Windows PowerShell

Модули Powershell — это упакованные наборы функций. Они используют формат файла PSM1. Вы сохраняете эти файлы в каталоге модулей вашего профиля. Затем добавьте модуль в ваш сеанс / скрипт, используя Import-Module.

Доступны все командлеты модуля. По мере развития ваших навыков Powershell вы можете даже создавать свои собственные модули. Чтобы установить модуль шифрования файлов, загрузите его с сайта TechNet.

Затем вам нужно скопировать его в один из каталогов модулей. Если вы хотите установить его для себя, скопируйте его в PowershellModules в вашей пользовательской папке. Скопируйте это в проводник для ярлыка:

%UserProfile%\Documents\WindowsPowerShell\Modules

Если вы хотите установить модуль для всех пользователей, используйте Программные файлы \ Windows PowerShell \ Модули папка. Вставьте это в проводник для ярлыка:

%ProgramFiles%\Windows PowerShell\Modules

Создайте новую папку с именем GNUPG в каталоге модулей и вставьте в нее файл PSM1.

автоматизировать шифрование файлов Windows PowerShell

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

автоматизировать шифрование файлов Windows PowerShell

Поскольку вы загрузили этот модуль, вам все равно нужно пометить его как локальный файл. Щелкните правой кнопкой мыши файл и выберите, свойства. Далее в диалоговом окне нажмите открыть. Подтвердите свое действие в диалоговом окне UAC, и вы настроены на использование модуля.

Работа с командлетами

Пропустите первый командлет, который используется для установки GPG4Win

, Вы должны были уже выполнить этот шаг. Если нет, вы можете использовать этот командлет для установки и настройки программы. Командлет загружает его в выбранную вами папку и запускает установщик. Два других дополняют друг друга: Надстройка Шифрование а также Remove-шифрование. Оба они принимают три параметра.

автоматизировать шифрование файлов Windows PowerShell

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

автоматизировать шифрование файлов Windows PowerShell

Следующим параметром является фраза-пароль, используемая для шифрования файла: -пароль. Убедитесь, что это сложно, так как это защита вашего файла. Функция просматривает каждый из файлов с помощью цикла ForEach. Файл и пароль объединяются в качестве аргументов в Запуск процесса для GPG4Win.

Конечный параметр, -GPGPath не является обязательным Он установлен по умолчанию для установки GPG4Win. Если он установлен на другом диске, вы можете обновить его с помощью этого параметра. Это меняет цель для Запуск процесса.

Написание сценария

Теперь пришло время автоматизировать процесс. Этот скрипт будет шифровать файлы в каталоге. Переместите расшифрованные файлы в новый каталог. Скрипт удалит исходный файл.

Вы начинаете свой сценарий с некоторой подготовки. Сначала импортируйте модуль, используя Импорт-Модуль GnuPG. Вам нужно настроить пару переменных. Первая переменная $ EncryptionTarget ваша целевая папка. (В этом примере переменная окружения используется для указания на папку документа текущего пользователя.) Установите вторую переменную в качестве ключевой фразы. Этот шаг облегчает его изменение позже.

Import-Module GnuPG
$EncryptionTarget = "$($env:USERPROFILE)\Documents\Files-ToEncrypt"
$Passphrase = "MakeAVeryLongSecurePhrase"
Add-Encryption $EncryptionTarget -Password $Passphrase
Start-Sleep -Seconds 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
}

Эти переменные идут в Надстройка Шифрование в качестве параметров. Вы используете Start-Sleep дать время шифрования файла для завершения. Пример использует три минуты. Вы можете изменить его в зависимости от размера и количества файлов, с которыми вы работаете.

Вы получаете файлы .GPG, комбинируя Get-ChildItem с Where-Object. Используя Для каждого цикл, каждый из этих файлов копируется в новый каталог. Мы повторяем эти шаги, но переключаем -лайк для -не нравится. второй Для каждого цикл очищает исходные файлы.

Установка повторяющейся задачи

У вас есть сценарий, теперь вам нужно создать запланированное задание

, Откройте планировщик задач и нажмите Создать задачу.

автоматизировать шифрование файлов Windows PowerShell

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

для защиты безопасности вашего основного аккаунта.

автоматизировать шифрование файлов Windows PowerShell

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

автоматизировать шифрование файлов Windows PowerShell

На действия нажмите вкладку новый. Во всплывающем окне укажите путь к Powershell в поле «Программа»:

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

В поле аргументов положить ./ и путь к вашему сценарию. Нажмите Хорошо дважды, и ваш сценарий настроен для запуска в качестве запланированной задачи.

Некоторые проблемы безопасности и другие идеи

Имейте в виду, что у вас есть пароль для расшифровки файлов на том же компьютере, где вы их храните. Эти типы шифрования файлов больше подходят для шифрования файла перед его отправкой или хранением на другом компьютере. (Если вы хотите заблокированную файловую систему, используйте Full Disk Encryption

.) Вы можете настроить аналогичное задание, чтобы сделать то же самое с расшифровкой.

У вас есть проект, которому нужен быстрый и грязный скрипт шифрования файлов? Дайте нам знать об этом в комментариях.

Ссылка на основную публикацию
Adblock
detector