使用此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
  • 閱讀 ( 106 )
  • 分類:程式設計

你可能感興趣的文章

什麼是shell指令碼,為什麼要使用它

...1977年,bourneshell緊隨其後,至今仍作為root帳戶的預設Shell使用。這個shell增加了指令碼能力,這在多年的實踐中證明是非常有用的。 ...

  • 發佈於 2021-03-13 04:53
  • 閲讀 ( 53 )

7個免費的windows工具來自動執行重複的任務

使用電腦最糟糕的一個部分就是它的無意識重複性:在數百個資料夾中搜索一個檔案,或者日復一日地鍵入相同的文字,或者清理和組織上千個不同的檔案。。。 ...

  • 發佈於 2021-03-14 01:07
  • 閲讀 ( 53 )

使用powershell而不是批處理指令碼的5個原因

大多數使用者從未聽說過PowerShell,更不用說觸控它並試用了。這可能是因為這個名字,聽起來像是隻有鐵桿IT極客才會使用的東西。或者是因為PowerShell的好處還不清楚。可能是因為最初的學習曲線。 ...

  • 發佈於 2021-03-15 16:49
  • 閲讀 ( 92 )

7個簡單的windows指令碼,為您節省時間和精力

... 使用powershell編寫指令碼 ...

  • 發佈於 2021-03-15 21:37
  • 閲讀 ( 53 )

初學者快速自動熱鍵指南

學習系統和軟體的鍵盤快捷鍵會改變使用者體驗。在大多數情況下,它會讓你更有效率,並能在更短的時間內取得更大的成就。其他捷徑旨在提高生活質量。 ...

  • 發佈於 2021-03-21 16:59
  • 閲讀 ( 49 )

如何在windows和mac上自動將檔案從一個資料夾移動到另一個資料夾

...個可能的原因是,你有一個資料夾,你儲存檔案,但你不使用這些檔案,一旦你完成了他們的工作。您可以設定一個規則,自動將檔案從該資料夾移到計算機上的存檔資料夾。 ...

  • 發佈於 2021-03-27 06:07
  • 閲讀 ( 57 )

如何使用Windows10的軟體包管理器輕鬆安裝應用程式(使用winstall)

...想要的。 要安裝它們,請開啟Windows終端、命令提示符或PowerShell視窗。例如,您可以右鍵單擊開始按鈕或按Windows+X並選擇“Windows PowerShell”以開啟PowerShell視窗。您不必以管理員身份啟動它。 將該命令從網頁複製貼上到命令列...

  • 發佈於 2021-04-01 08:28
  • 閲讀 ( 61 )

如何使用windows defender掃描對映的網路驅動器

...您使用的是Windows 10 Home,則必須編輯Windows登錄檔或使用PowerShell,稍後我們將介紹如何進行此更改。如果您使用的是windows10professional或Enterprise,但在登錄檔中工作比在組策略編輯器中工作更舒服,您也可以這樣做。(但是,如果...

  • 發佈於 2021-04-02 09:36
  • 閲讀 ( 50 )

Windows10中開啟powershell的9種方法

PowerShell是一種比命令提示符更強大的命令列shell和指令碼語言。自從Windows10釋出以來,它就成了預設的選擇,而且有很多方法可以開啟它。 PowerShell的使用更為複雜,但它比命令提示符更加健壯和強大。這就是為什麼它成為高階...

  • 發佈於 2021-04-02 10:35
  • 閲讀 ( 79 )

如何在Windows10中自動連線到特定應用的vpn

使用Windows10的PowerShellcmdlet,您可以輕鬆地新增應用程式,以便在啟動時自動觸發VPN連線。自動化這個任務意味著當你使用某些應用程式時,你甚至不必考慮連線到VPN。 要利用PowerShell中的此功能,如果您還沒有VPN服務,則必須...

  • 發佈於 2021-04-02 15:58
  • 閲讀 ( 82 )
f116r9o7
f116r9o7

0 篇文章

作家榜

  1. admin 0 文章
  2. 孫小欽 0 文章
  3. JVhby0 0 文章
  4. fvpvzrr 0 文章
  5. 0sus8kksc 0 文章
  6. zsfn1903 0 文章
  7. w91395898 0 文章
  8. SuperQueen123 0 文章

相關推薦