Cifrar archivos y descifrarlos puede ser un trabajo un poco difícil. Sin embargo, al usar PowerShell , puede simplificar este proceso a solo un comando de una línea. Para hacer esto, necesitamos instalar Gpg4win y un módulo Powershell. Utilice scripts para automatizar el proceso de cifrado y descifrado. Este artículo le mostrará cómo cifrar archivos automáticamente en Windows 10 con un script.
Antes de comenzar, los usuarios deben instalar y configurar las herramientas GPG4Win . Utilizará la funcionalidad de criptografía simétrica de GPG4Win en este módulo.
Este módulo de Powershell maneja el cifrado de archivos con una contraseña en lugar de un par de claves. La seguridad del cifrado depende de la seguridad de la contraseña . Los usuarios deben elegir contraseñas complejas, tal vez utilizando la herramienta LastPass u otro administrador de contraseñas . Finalmente, complete la instalación y pase al módulo Powershell.

Los módulos Powershell son conjuntos empaquetados de funciones que utilizan el formato de archivo PSM1. Puede guardar estos archivos en la carpeta Módulos de su perfil y luego agregar el módulo a su sesión/script usando Import-Module .
Todos los cmdlets del módulo están disponibles. A medida que avance en sus habilidades de Powershell, podrá incluso crear sus propios módulos. Para instalar el módulo de cifrado de archivos, descargue el módulo de TechNet . A continuación, debe copiarlo en una de las carpetas de Módulos. Si desea instalarlo usted mismo, cópielo en PowershellModules en su directorio de usuario. Copie la siguiente línea en el Explorador para crear un acceso directo:
%Perfil de usuario%\Documentos\WindowsPowerShell\Modules
Si desea instalar módulos para todos los usuarios, use la carpeta Archivos de programa\Windows PowerShell\Modules . Pegue la siguiente línea en el Explorador para crear un acceso directo:
%Archivos de programa%\Windows PowerShell\Modules
Cree una nueva carpeta llamada GNUPG en la carpeta Módulos y pegue el archivo PSM1 allí.
![Cifrar archivos automáticamente en Windows usando Powershell Cifrar archivos automáticamente en Windows usando Powershell]()
Debes importar el módulo cada vez que lo uses: Import-Module GnuPG . Sin embargo, puede ajustar la ejecución a Sin restricciones ejecutando el cmdlet Set-ExecutionPolicy RemoteSigned .
![Cifrar archivos automáticamente en Windows usando Powershell Cifrar archivos automáticamente en Windows usando Powershell]()
Como ha cargado este módulo, debe marcarlo como un archivo local. Haga clic derecho en el archivo y seleccione Propiedades . A continuación, en el cuadro de diálogo, marque Desbloquear . Confirme la acción en el cuadro de diálogo UAC y estará listo para usar el módulo.
Comandos de cmdlet
Omita el primer comando cmdlet, utilizado para instalar GPG4Win. Si no ha completado este paso, puede utilizar este cmdlet para instalar y configurar el programa. El cmdlet lo carga en un directorio de su elección y ejecuta el instalador. Los otros dos comandos de cmdlet son adicionales: Add-Encryption y Remove-Encryption . Ambos tienen tres parámetros.
![Cifrar archivos automáticamente en Windows usando Powershell Cifrar archivos automáticamente en Windows usando Powershell]()
El primer parámetro es una carpeta: -FolderPath . Este módulo revisará cada archivo en una carpeta para cifrar o descifrar el archivo. Si no desea que apunte a la carpeta Documentos, debe crear un par de subcarpetas para trabajar con este script. Si observa el código fuente del módulo, utiliza Get-ChildItem para obtener todo lo que hay en el directorio. La función de descifrado restringe la búsqueda a archivos que terminan en .GPG.
![Cifrar archivos automáticamente en Windows usando Powershell Cifrar archivos automáticamente en Windows usando Powershell]()
El siguiente parámetro es la contraseña utilizada para cifrar archivos: -Contraseña . Asegúrese de que esta contraseña sea compleja, ya que protege sus archivos. Esta función recorrerá cada archivo con un bucle ForEach. Archivo y contraseña combinados como argumentos en Start-Process para GPG4Win.
El último parámetro, -GPGPath es opcional. Se instala como la ubicación predeterminada para GPG4Win. Si lo instala en otra unidad, puede actualizarlo usando este parámetro para cambiar el destino de Start-Process .
escribir guiones
Ahora es el momento de automatizar el proceso. Este script cifrará los archivos en una carpeta, moverá los archivos descifrados a una nueva carpeta y eliminará el archivo original.
Primero, importe el módulo usando mport-Module GnuPG . Necesita configurar algunas variables. La primera variable $EncryptionTarget es el directorio de destino. (Por ejemplo, se utiliza una variable de entorno para apuntar al directorio de documentos del usuario actual). Establezca la segunda variable como frase de contraseña; este paso facilita el cambio de contraseña.
Módulo de importación GnuPG
$EncryptionTarget = "$($env:USERPROFILE)\Documentos\Files-ToEncrypt"
$frase de contraseña = "Hacer una frase segura muy larga"
Agregar cifrado $EncryptionTarget -Contraseña $Frase de contraseña
Inicio-Dormir-Segundos 60
$EcnryptedFiles = Get-ChildItem $EncryptionTarget | Donde-Objeto $_.Nombre -como "*.gpg"
foreach ($gpg en $EcnryptedFiles){
Mover elemento -Ruta $gpg.FullName -Destino "$($env:USERPROFILE)\Documentos\$($gpg.Name)"
}
$UnEncryptedFiles = Obtener-ChildItem $EncryptionTarget | Donde-Objeto $_.Nombre -no como "*.gpg"
foreach ($nongpg en $UnEcnryptedFiles){
Eliminar elemento -Ruta $nongpg.FullName -Confirmar $false
}
Estas variables van a Add-Encryption como parámetros. El usuario utiliza Start-Sleep para establecer el tiempo para completar el cifrado de archivos, por ejemplo, el tiempo es de tres minutos. Este tiempo puede variar según el tamaño y la cantidad de archivos en los que se esté trabajando.
Obtienes un archivo .GPG combinando Get-ChildItem con Where-Object . Utilice un bucle ForEach para que cada archivo se copie en un nuevo directorio. Puede repetir estos pasos, pero convertir -like a -notlike para que un segundo bucle ForEach limpie los archivos originales.
Configurar trabajos cron
Ahora que tiene el script, necesita crear una tarea programada. Abra el Programador de tareas y haga clic en Crear tarea .
![Cifrar archivos automáticamente en Windows usando Powershell Cifrar archivos automáticamente en Windows usando Powershell]()
Nómbrelo AutoEncrypt . Si solo desea ejecutar la tarea cuando haya iniciado sesión, deje la configuración predeterminada. Si está configurado para ejecutarse independientemente de que el usuario haya iniciado sesión o no, seleccione " Ejecutar si el usuario ha iniciado sesión o no ", solo podrá acceder a las carpetas de la computadora. Sin embargo, si su destino está en una computadora remota, deberá almacenar la contraseña. Además, puede configurar una cuenta secundaria para proteger su cuenta principal.
![Cifrar archivos automáticamente en Windows usando Powershell Cifrar archivos automáticamente en Windows usando Powershell]()
Haga clic en la pestaña Activadores y establezca las condiciones. A continuación, haga clic en Nuevo para abrir la ventana de programación. Puede dejar la configuración predeterminada, luego hacer clic en el cuadro junto a Repetir tarea cada y configurarlo en 5 minutos . Puedes elegir más tiempo si tu necesidad no es urgente. En el menú desplegable junto a durante: seleccione Indefinidamente , haga clic en Aceptar para volver a la ventana Crear tarea.
![Cifrar archivos automáticamente en Windows usando Powershell Cifrar archivos automáticamente en Windows usando Powershell]()
En la pestaña Acciones , haga clic en Nuevo , en la ventana emergente, establezca la ruta a Powershell en el cuadro Programa :
%SystemRoot%/system32/Windows PowerShell/v1.0/powershell.exe
En el cuadro de argumentos, coloque ./ y la ruta al script. Haga clic en Aceptar dos veces y el script se configurará para ejecutarse como una tarea programada.
Ver más: