Criptografar e descriptografar arquivos pode ser uma tarefa um pouco difícil. No entanto, usando o PowerShell , você pode simplificar esse processo para apenas um comando de uma linha. Para fazer isso, precisamos instalar o Gpg4win e um módulo Powershell. Use scripts para automatizar o processo de criptografia e descriptografia. Este artigo mostrará como criptografar arquivos automaticamente no Windows 10 com um script.
Antes de começar, os usuários precisam instalar e configurar as ferramentas GPG4Win . Você usará a funcionalidade de criptografia simétrica do GPG4Win neste módulo.
Este módulo Powershell lida com a criptografia de arquivos com uma senha em vez de um par de chaves. A força da criptografia depende da força da senha . Os usuários devem escolher senhas complexas, talvez usando a ferramenta LastPass ou outro gerenciador de senhas . Por fim, conclua a instalação e passe para o Módulo Powershell.

Módulos Powershell são conjuntos de funções empacotados, usando o formato de arquivo PSM1. Você pode salvar esses arquivos na pasta Módulos do seu perfil e, em seguida, adicionar o Módulo à sua sessão/script usando Import-Module .
Todos os cmdlets do módulo estão disponíveis. À medida que você aprimora suas habilidades em Powershell, você pode até criar seus próprios módulos. Para instalar o módulo de criptografia de arquivos, baixe o módulo do TechNet . Em seguida, você precisa copiá-lo para uma das pastas Módulos. Se você quiser instalá-lo sozinho, copie-o para PowershellModules em seu diretório de usuário. Copie a linha abaixo no Explorer para criar um atalho:
%UserProfile%\Documents\WindowsPowerShell\Modules
Se você quiser instalar módulos para todos os usuários, use a pasta Program Files\Windows PowerShell\Modules . Cole a seguinte linha no Explorer para criar um atalho:
%ProgramFiles%\Windows PowerShell\Módulos
Crie uma nova pasta chamada GNUPG na pasta Módulos e cole o arquivo PSM1 lá.
![Criptografe arquivos automaticamente no Windows usando Powershell Criptografe arquivos automaticamente no Windows usando Powershell]()
Você precisa importar o módulo toda vez que usá-lo: Import-Module GnuPG . No entanto, você pode ajustar a Execução como Irrestrita executando o cmdlet Set-ExecutionPolicy RemoteSigned .
![Criptografe arquivos automaticamente no Windows usando Powershell Criptografe arquivos automaticamente no Windows usando Powershell]()
Como você carregou este módulo, será necessário marcá-lo como um arquivo local. Clique com o botão direito no arquivo e selecione Propriedades . A seguir, na caixa de diálogo, marque Desbloquear . Confirme a ação na caixa de diálogo do UAC e você estará pronto para usar o módulo.
Comandos de cmdlet
Ignore o primeiro comando Cmdlet, usado para instalar o GPG4Win. Se não tiver concluído esta etapa, você poderá usar este cmdlet para instalar e configurar o programa. O cmdlet carrega-o num diretório à sua escolha e executa o instalador. Os outros dois comandos cmdlet são adicionais: Add-Encryption e Remove-Encryption . Ambos têm três parâmetros.
![Criptografe arquivos automaticamente no Windows usando Powershell Criptografe arquivos automaticamente no Windows usando Powershell]()
O primeiro parâmetro é uma pasta: -FolderPath . Este módulo percorrerá cada arquivo em uma pasta para criptografar ou descriptografar o arquivo. Se não quiser apontar para a pasta Documentos, você deve criar um par de subpastas para trabalhar com este script. Se você observar o código-fonte do Módulo, ele usa Get-ChildItem para obter tudo no diretório. A função de descriptografia restringe a pesquisa a arquivos que terminam em .GPG.
![Criptografe arquivos automaticamente no Windows usando Powershell Criptografe arquivos automaticamente no Windows usando Powershell]()
O próximo parâmetro é a senha usada para criptografia de arquivo: -Password . Certifique-se de que esta senha seja complexa, pois protege seus arquivos. Esta função percorrerá cada arquivo com um loop ForEach. Arquivo e senha combinados como argumentos em Start-Process para GPG4Win.
O último parâmetro, -GPGPath é opcional. Ele é instalado como local padrão para GPG4Win. Se você instalá-lo em outra unidade, poderá atualizá-lo usando este parâmetro para alterar o destino de Start-Process .
Escreva roteiros
Agora é hora de automatizar o processo. Este script criptografará os arquivos em uma pasta, moverá os arquivos descriptografados para uma nova pasta e excluirá o arquivo original.
Primeiro, importe o módulo usando mport-Module GnuPG . Você precisa configurar algumas variáveis. A primeira variável $EncryptionTarget é o diretório de destino. (Por exemplo, uma variável de ambiente é usada para apontar para o diretório de documentos do usuário atual). Defina a segunda variável como senha. Esta etapa facilita a alteração da senha.
Módulo de importação GnuPG
$EncryptionTarget = "$($env:USERPROFILE)\Documents\Files-ToEncrypt"
$Passphrase = "MakeAVeryLongSecurePhrase"
Adicionar-Encryption $EncryptionTarget -Password $Passphrase
Iniciar-Sleep -Segundos 60
$EcnryptedFiles = Get-ChildItem $EncryptionTarget | Where-Object $_.Name -como "*.gpg"
foreach ($gpg em $EcnryptedFiles){
Mover-Item -Caminho $gpg.FullName -Destino "$($env:USERPROFILE)\Documents\$($gpg.Name)"
}
$UnEncryptedFiles = Get-ChildItem $EncryptionTarget | Where-Object $_.Name -notlike "*.gpg"
foreach ($nongpg em $UnEcnryptedFiles){
Remove-Item -Path $nongpg.FullName -Confirm $false
}
Essas variáveis vão para Add-Encryption como parâmetros. O usuário usa Start-Sleep para definir o tempo para concluir a criptografia do arquivo, por exemplo, o tempo é de três minutos. Esse tempo pode variar de acordo com o tamanho e a quantidade de arquivos em que você está trabalhando.
Você obtém um arquivo .GPG combinando Get-ChildItem com Where-Object . Use um loop ForEach para que cada arquivo seja copiado para um novo diretório. Você pode repetir essas etapas, mas converter -like em -notlike para que um segundo loop ForEach limpe os arquivos originais.
Configurar tarefas agendadas
Agora que você tem o script, precisa criar uma tarefa agendada. Abra o Agendador de tarefas e clique em Criar tarefa .
![Criptografe arquivos automaticamente no Windows usando Powershell Criptografe arquivos automaticamente no Windows usando Powershell]()
Nomeie-o como AutoEncrypt . Se você deseja executar a tarefa apenas quando estiver logado, deixe as configurações como padrão. Se definido para executar com o usuário conectado ou não, selecione " Executar com o usuário conectado ou não ", ele só pode acessar pastas no computador. No entanto, se o seu destino estiver em um computador remoto, será necessário armazenar a senha. Além disso, você pode configurar uma conta secundária para proteger sua conta principal.
![Criptografe arquivos automaticamente no Windows usando Powershell Criptografe arquivos automaticamente no Windows usando Powershell]()
Clique na guia Triggers e defina as condições. Em seguida, clique em Novo para abrir a janela de agendamento. Você pode deixar as configurações como padrão e clicar na caixa ao lado de Repetir tarefa a cada e defini-la como 5 minutos . Você pode escolher mais tempo se sua necessidade não for urgente. No menu suspenso ao lado de durante: selecione Indefinidamente e clique em OK para retornar à janela Criar Tarefa.
![Criptografe arquivos automaticamente no Windows usando Powershell Criptografe arquivos automaticamente no Windows usando Powershell]()
Na guia Ações , clique em Novo , na janela pop-up, defina o caminho para Powershell na caixa Programa :
%SystemRoot%/system32/Windows PowerShell/v1.0/powershell.exe
Na caixa de argumentos, coloque ./ e o caminho para o script. Clique em OK duas vezes e o script será configurado para ser executado como uma tarefa agendada.
Ver mais: