Automatice el cifrado de archivos en Windows con este script de PowerShell

Automatice el cifrado de archivos en Windows con este script de PowerShell / Programación

El cifrado de archivos y el descifrado de archivos pueden ser un poco de trabajo. ¡No crea estos 5 mitos sobre el cifrado! ¡No creas estos 5 mitos sobre el cifrado! El cifrado suena complejo, pero es mucho más sencillo de lo que la mayoría piensa. Sin embargo, puede que te sientas un poco demasiado oscuro para utilizar el cifrado, ¡así que vamos a romper algunos mitos de cifrado! Lee mas . Sin embargo, al usar una extensión de PowerShell, puede reducir el proceso a un comando de una línea. Para hacer esto, necesitamos instalar Gpg4win y un módulo Powershell. Usando scripts, podemos automatizar el proceso de cifrado y descifrado de archivos..

Echemos un vistazo a cómo cifrar archivos en Windows 10 automáticamente con un script.

Los requisitos previos: instalaciones, módulos y certificados

Usted querrá tener las herramientas GPG4Win instaladas y configuradas antes de comenzar. Dirígete a la página del proyecto y descarga la última versión. (Si necesita alguna guía para instalar y configurar la herramienta, use esta guía PDF.) En este módulo, usará la función de cifrado simétrico de GPG4Win..

Este módulo de Powershell maneja el cifrado de archivos usando una frase de contraseña en lugar de un par de llaves. ¿Cómo funciona el cifrado, y es realmente seguro? ¿Cómo funciona el cifrado, y es realmente seguro? Lee mas . La fuerza de su cifrado depende de la fuerza de su frase de contraseña. Debes asegurarte de elegir algo complejo. Genérelo con LastPass u otro administrador de contraseñas. Domine sus contraseñas para siempre con el desafío de seguridad de Lastpass. Domine sus contraseñas para siempre con el desafío de seguridad de Lastpass. Pasamos tanto tiempo en línea, con tantas cuentas, que recordar las contraseñas puede ser realmente difícil. ¿Preocupado por los riesgos? Descubra cómo usar el Desafío de seguridad de LastPass para mejorar su higiene de seguridad. Lee mas . Finalmente, complete la instalación y continúe con el Módulo Powershell.

Los módulos Powershell son conjuntos de funciones empaquetadas. Utilizan el formato de archivo PSM1. Guarda estos archivos en el directorio de módulos de su perfil. Luego, agregue el Módulo a su sesión / script usando Módulo de Importación.

Todos los cmdlets del módulo están disponibles. A medida que avanzas en tus habilidades Powershell, incluso puedes crear tus propios módulos. Para instalar el módulo de cifrado de archivos, descárguelo de TechNet.

A continuación, debe copiarlo en uno de los directorios de módulos. Si desea instalarlo solo para usted, cópielo en los módulos Powershell en su carpeta de usuario. Copia esto en Explorer para un atajo:

% UserProfile% \ Documents \ WindowsPowerShell \ Modules

Si desea instalar el módulo para todos los usuarios, utilice el Archivos de programa \ Windows PowerShell \ Módulos carpeta. Pega esto en el Explorador para un atajo:

% Archivos de programa% \ Windows PowerShell \ Módulos

Cree una nueva carpeta llamada GNUPG en el directorio de Módulos y pegue el archivo PSM1 en ella.

Tendrá que importar el módulo cada vez que use: Módulo de Importación GnuPG. Sin embargo, es posible que deba ajustar su política de Ejecución a Sin restricciones. Haga esto ejecutando el cmdlet Set-ExecutionPolicy RemoteSigned.

Desde que descargó este Módulo, aún necesita marcarlo como un archivo local. Haga clic derecho en el archivo y seleccione, Propiedades. A continuación, en el diálogo, haga clic en Desatascar. Confirme su acción en el cuadro de diálogo UAC, y está listo para usar el módulo.

Trabajando con los cmdlets

Omita el primer cmdlet, que se utiliza para instalar GPG4Win PGP Me: Explicación de privacidad bastante buena PGP Me: Explicación de privacidad bastante buena Pretty Good Privacy es un método para cifrar mensajes entre dos personas. Así es como funciona y si resiste el escrutinio. Lee mas . Ya deberías haber completado este paso. De lo contrario, puede usar este cmdlet para instalar y configurar el programa. El cmdlet lo descarga a la carpeta que elija y ejecuta el instalador. Los otros dos son complementarios: Add-Encryption y Eliminar Cifrado. Ambos toman tres parámetros.

El primero es un directorio, pasado como -Ruta de la carpeta. El módulo recorrerá todos los archivos de un directorio para aplicar o eliminar el cifrado de archivos. No querrías apuntarlo a tu carpeta de Documentos. Desea crear un par de subcarpetas para trabajar con este script. Si miras el código fuente del Módulo, está usando Get-ChildItem para conseguir todo en el directorio. La función de descifrado limita la búsqueda a los archivos que terminan en .GPG.

El siguiente parámetro es la frase de contraseña utilizada para el cifrado de archivos: -Contraseña. Asegúrese de que esto sea complejo, ya que es la protección de su archivo. La función recorre cada uno de los archivos con un bucle ForEach. El archivo y la frase de contraseña se combinan como argumentos en Proceso de inicio para GPG4Win.

El parametro final, -GPGPath no es obligatorio Se establece en la ubicación de instalación predeterminada para GPG4Win. Si lo tiene en otra unidad, puede actualizarlo usando este parámetro. Cambia el objetivo para el Proceso de inicio.

Escribiendo el guión

Ahora es el momento de automatizar el proceso. Este script cifrará los archivos en un directorio. Mueva los archivos descifrados a un nuevo directorio. El script borrará el archivo original..

Comienzas tu guión con alguna preparación. Primero, importa el módulo usando Módulo de Importación GnuPG. Es necesario configurar un par de variables. La primera variable $ EncryptionTarget es su carpeta de destino. (En el ejemplo, una variable de entorno se usa para apuntar a la carpeta de documentos del usuario actual). Establezca la segunda variable como su frase de contraseña. Este paso hace que sea más fácil cambiarlo más tarde..

Import-Module GnuPG $ EncryptionTarget = "$ ($ env: USERPROFILE) \ Documents \ Files-ToEncrypt" $ Passphrase = "MakeAVeryLongSecurePhrase" Add-Encryption $ Encriptación EncryptionTarget | Where-Object $ _. Name -like "* .gpg" foreach ($ gpg en $ EcnryptedFiles) Move-Item -Path $ gpg.FullName -Destination "$ ($ env: USERPROFILE) \ Documents \ $ ($ gpg. Nombre) " $ UnEncryptedFiles = Get-ChildItem $ EncryptionTarget | Donde-Objeto $ _. Nombre -no como "* .gpg" para cada ($ nongpg en $ UnEcnryptedFiles) Remove-Item -Path $ nongpg.FullName -Confirm $ false 

Esas variables van a Add-Encryption como parametros Usas un Inicio-sueño para dar el tiempo de cifrado de archivos para completar. El ejemplo usa tres minutos. Puede modificarlo según el tamaño y la cantidad de archivos con los que está trabajando.

Usted obtiene los archivos .GPG combinando Get-ChildItem con Donde-objeto. Usando un Para cada bucle, cada uno de esos archivos se copia en un nuevo directorio. Repetimos estos pasos, pero cambiando el -me gusta para -no como. UNA segundo Para cada bucle limpia los archivos originales.

Configuración de la tarea recurrente

Tiene la secuencia de comandos, ahora necesita crear una tarea programada. Ejecutar programas automáticamente con el Programador de tareas de Windows. Ejecutar programas automáticamente con el Programador de tareas de Windows. Leer más. Abra el Programador de tareas y haga clic en Crear tarea.

Nombre algo así como AutoEncrypt. Si solo desea que la tarea se ejecute cuando está conectado, simplemente deje el valor predeterminado. Si lo configura para ejecutarse independientemente, solo puede acceder a los directorios locales. Sin embargo, si su destino está en una máquina remota, debe almacenar su contraseña para que se ejecute el trabajo. Es posible que desee configurar una cuenta secundaria Cómo crear cuentas de invitados restringidas en Windows 10 de la manera fácil Cómo crear cuentas de invitados restringidas en Windows 10 de la manera fácil Windows 10 eliminó la cuenta de invitado, pero puede crear la suya en solo unos pocos minutos. Esta es una excelente manera de permitir que cualquiera use su computadora sin acceder a sus datos. Lea más para proteger la seguridad de su cuenta principal.

Haga clic en el Gatillos pestaña y configurando las condiciones. A continuación, haga clic en Nuevo para abrir la ventana de programación. Puede dejar la configuración de activación predeterminada. Haga clic en la casilla de verificación junto a Repetir la tarea cada y configurarlo para 5 minutos. Puede elegir ejecutar esto con menos frecuencia si su necesidad no es urgente. En el desplegable junto a por la duración de: seleccionar Indefinidamente. Hacer clic DE ACUERDO para volver a la ventana Crear tarea.

Sobre el Comportamiento pestaña, haga clic en Nuevo. En la ventana emergente, coloque la ruta a Powershell en el cuadro Programa:

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

En el cuadro de argumentos pone. ./ y el camino a tu guión. Hacer clic DE ACUERDO dos veces y su script está configurado para ejecutarse como una tarea programada.

Algunas preocupaciones de seguridad y otras ideas

Tenga en cuenta que tiene el código de acceso para descifrar los archivos en la misma máquina donde los almacena. Estos tipos de cifrado de archivos son más para cifrar un archivo antes de enviarlo o almacenarlo en otra máquina. (Si desea un sistema de archivos bloqueado, use Full Disk Encryption TrueCrypt está muerto: 4 alternativas de cifrado de disco para Windows TrueCrypt está muerto: 4 alternativas de cifrado de disco para Windows TrueCrypt no es más, pero afortunadamente hay otros programas de cifrado útiles. Es posible que no sean reemplazos exactos, deben adaptarse a sus necesidades. Lea más.) Puede configurar una tarea similar para hacer lo mismo con el descifrado.

¿Tiene un proyecto que necesita un script de cifrado de archivos rápido y sucio? Háganos saber en los comentarios..

Explorar más sobre: ​​cifrado, seguridad en línea.