使用此powershell脚本在windows中自动执行文件加密

文件加密和解密可以是一个工作位。但是,使用PowerShell扩展,可以将进程精简为一行命令。...

文件加密和解密可以是一个工作位。但是,使用PowerShell扩展,可以将进程精简为一行命令。为此,我们需要安装Gpg4win和Powershell模块。使用脚本,我们可以自动化文件加密和解密过程。

powershell-script-automate-encryption

让我们看看如何用脚本自动加密Windows10中的文件。

先决条件:安装、模块和证书

在开始之前,您需要安装并配置GPG4Win工具。转到项目页面并下载最新版本。(如果您需要一些安装和配置工具的指南,请使用此PDF指南。)您将在本模块中使用GPG4Win的对称密码功能。

此Powershell模块使用密码短语而不是密钥对来处理文件加密。加密的强度取决于密码短语的强度。你应该选择一些复杂的东西。使用LastPass或其他密码管理器生成它。最后,完成安装并转至Powershell模块。

automate file encryption windows powershell

Powershell模块是打包的函数集合。它们使用PSM1文件格式。将这些文件保存在配置文件的Modules目录中。然后,使用Import Module将模块添加到会话/脚本中。

所有模块的cmdlet都可用。当你提高你的Powershell技能时,你甚至可以创建你自己的模块。要安装文件加密模块,请从TechNet下载。

接下来,您需要将其复制到一个Modules目录中。如果您只想自己安装,请将其复制到用户文件夹中的PowershellModules中。将此复制到资源管理器中以获得快捷方式:

%UserProfile%\Documents\WindowsPowerShell\Modules

如果要为所有用户安装模块,请使用Program Files\Windows PowerShell\Modules文件夹。将此粘贴到资源管理器中以获得快捷方式:

%ProgramFiles%\Windows PowerShell\Modules

在Modules目录中创建一个名为GNUPG的新文件夹,并将PSM1文件粘贴到其中。

automate file encryption windows powershell

每次都需要使用import module GnuPG导入模块。但是,您可能需要将执行策略调整为“无限制”。为此,请运行cmdlet Set ExecutionPolicy RemoteSigned。

automate file encryption windows powershell

由于您下载了此模块,因此仍需要将其标记为本地文件。在文件上单击鼠标右键,然后选择“属性”。接下来,在对话框中,单击“取消阻止”。在UAC对话框中确认您的操作,您就可以使用该模块了。

使用cmdlet

跳过用于安装GPG4Win的第一个Cmdlet。你应该已经完成了这个步骤。如果没有,则可以使用此cmdlet安装和配置程序。cmdlet将其下载到您选择的文件夹并运行安装程序。另外两个是互补的:添加加密和删除加密。这两个参数都有三个参数。

automate file encryption windows powershell

第一个是目录,作为-FolderPath传递。该模块将遍历目录中的每个文件以应用或删除文件加密。你不想把它指向你的文档文件夹。您需要创建几个子文件夹来使用此脚本。如果您查看模块的源代码,它将使用Get ChildItem获取目录中的所有内容。解密函数将搜索限制为以.GPG结尾的文件。

automate file encryption windows powershell

下一个参数是用于文件加密的密码短语:-Password。确保这是复杂的,因为它是保护您的文件。该函数使用ForEach循环逐步遍历每个文件。在GPG4Win的启动过程中,文件和密码短语组合为参数。

最后一个参数-GPGPath不是必需的。它被设置为GPG4Win的默认安装位置。如果它在另一个驱动器上,可以使用此参数进行更新。它会更改启动进程的目标。

写剧本

现在是时候自动化这个过程了。此脚本将加密目录中的文件。将解密的文件移到新目录。脚本将删除原始文件。

您可以通过一些准备启动脚本。首先,使用导入模块GnuPG导入模块。你需要设置几个变量。第一个变量$EncryptionTarget是您的目标文件夹。(在本例中,环境变量用于指向当前用户的文档文件夹。)将第二个变量设置为密码短语。这一步使以后更容易更改它。

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

这些变量将作为参数添加加密。您可以使用开始睡眠来给文件加密时间来完成。这个例子用了三分钟。您可以根据正在处理的文件的大小和数量进行更改。

通过将get ChildItem与Where对象组合,可以获得.GPG文件。使用ForEach循环,这些文件中的每一个都被复制到一个新目录。我们重复这些步骤,但是把-喜欢换成-不喜欢。第二个ForEach循环清理原始文件。

设置定期任务

你有了脚本,现在你需要创建一个计划任务。打开“任务计划程序”,然后单击“创建任务”。

automate file encryption windows powershell

把它命名为AutoEncrypt。如果您只想在登录时运行任务,只需保留默认值。如果您将其设置为不管运行,则它只能访问本地目录。但是,如果目标位于远程计算机上,则需要存储要运行的作业的密码。您可能需要设置一个辅助帐户来保护主帐户的安全。

automate file encryption windows powershell

单击触发器选项卡并设置条件。下一步,单击New调出sche****ng窗口。您可以将触发器设置保留为默认值。单击“重复任务间隔”旁边的复选框,并将其设置为5分钟。如果您的需要不是很紧急,您可以选择少运行此操作。在“持续时间:”旁边的下拉列表中,选择“无限期”。单击“确定”返回“创建任务”窗口。

automate file encryption windows powershell

在“操作”选项卡上,单击“新建”。在弹出窗口中,将Powershell的路径放在程序框中:

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

在参数框中输入./和脚本的路径。单击“确定”两次,脚本将设置为作为计划任务运行。

一些安全问题和其他想法

请注意,在存储文件的同一台计算机上,您拥有解密文件的密码。这些类型的文件加密更适用于在发送文件或将其存储在另一台计算机上之前对其进行加密。(如果您想要一个锁定的文件系统,请使用全磁盘加密。)您可以设置一个类似的任务来对解密执行相同的操作。

你有一个项目,需要一个快速和肮脏的文件加密脚本?请在评论中告诉我们。

  • 发表于 2021-03-13 21:58
  • 阅读 ( 344 )
  • 分类:编程

你可能感兴趣的文章

可提高windows管理技能的powershell cmdlet

Powershell是一个完美的方式,一个新的编码器开始在Windows上。Powershell是命令行工具和脚本语言的等价部分。它使您能够通过您用来管理计算机的相同命令使计算机自动化。如果您有一个现代的Windows系统,那么您已经有了Powershell...

  • 发布于 2021-03-13 13:26
  • 阅读 ( 283 )

使用powershell而不是批处理脚本的5个原因

大多数用户从未听说过PowerShell,更不用说触摸它并试用了。这可能是因为这个名字,听起来像是只有铁杆IT极客才会使用的东西。或者是因为PowerShell的好处还不清楚。可能是因为最初的学习曲线。 ...

  • 发布于 2021-03-15 16:49
  • 阅读 ( 277 )

7个简单的windows脚本,为您节省时间和精力

... 使用powershell编写脚本 ...

  • 发布于 2021-03-15 21:37
  • 阅读 ( 280 )

如何在linux上安装和使用powershell

Windows PowerShell是一个优秀的配置管理和自动化框架。它由命令行shell和基于.NET的脚本语言组成。管理员使用PowerShell作为管理Windows、Linux和网络客户端的一种手段。 ...

  • 发布于 2021-03-16 02:34
  • 阅读 ( 299 )

Windows10中打开powershell的9种方法

PowerShell是一种比命令提示符更强大的命令行shell和脚本语言。自从Windows10发布以来,它就成了默认的选择,而且有很多方法可以打开它。 PowerShell的使用更为复杂,但它比命令提示符更加健壮和强大。这就是为什么它成为高级用...

  • 发布于 2021-04-02 10:35
  • 阅读 ( 236 )

如何在windows 10上安装powershell 7

微软于2020年3月4日宣布PowerShell 7.0。这是PowerShell、Microsoft跨平台命令行shell和脚本语言的最新主要更新。下面是什么新的,以及如何在Windows PC上安装它。 powershell 7有什么新功能? 最新版本PowerShell 7是在以前的PowerShell Core 6.1基...

  • 发布于 2021-04-02 11:09
  • 阅读 ( 280 )

windows10的新bashshell所能做的一切

...中运行Windows命令。 您可以将Bash命令合并到批处理脚本或PowerShell脚本中,这非常方便。有关所有这些和更多信息,请参阅我们的指南,以在Windows 10中bash脚本。 从linux shell外部运行linux命令 相关:如何在windows10上从bashshell外部...

  • 发布于 2021-04-06 14:44
  • 阅读 ( 259 )

如何检查您的电脑或手机是否受到保护,以防熔毁和幽灵

...于使用的图形工具,它将向您显示这些信息,而无需运行PowerShell命令和解码技术输出。 运行此工具后,您将看到一些重要的细节: 容易熔毁:如果这上面写着“是的!“,则需要从Windows Update安装修补程序,以保护计算机免...

  • 发布于 2021-04-06 20:54
  • 阅读 ( 290 )

如何在windows10上创建和运行bashshell脚本

...hell脚本了。您还可以将Bash命令合并到Windows批处理文件或PowerShell脚本中。 即使你知道你在做什么,这也不一定像看上去那么简单。Windows和UNIX使用不同的行尾字符,并且Windows文件系统可以在Bash环境中的不同位置访问。 如何在...

  • 发布于 2021-04-09 10:54
  • 阅读 ( 202 )

访问windows 8或10引导选项菜单的三种方法

...高级启动”部分中的“重新启动”按钮。 选项三:使用powershell(或命令提示符)发出命令 相关:如何在Windows上编写批处理脚本 您还可以通过使用PowerShell或命令提示符发出简单命令来访问“高级选项”菜单。我们将在这里使...

  • 发布于 2021-04-11 01:49
  • 阅读 ( 174 )
f116r9o7
f116r9o7

0 篇文章

相关推荐