The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

解決 “為這個系統所設定的修復原則含有不正確的修復憑證”

前陣子在實驗 .NET Framework 裡面的 File.EncryptFile.Decrypt 方法,想透過 .NET 程式對檔案系統中的檔案進行加解密,照理說應該很簡單易用的,不過程式執行時卻會引發一個 System.IO.IOException 的例外狀況,錯誤訊息是「為這個系統所設定的修復原則含有不正確的修復憑證。」,由於我的電腦有加入網域,查到後來原來是網域主控站上的加密檔案系統憑證有兩張,而且有一張已經過期了,所以才會發生這個錯誤,因此這個問題直接從網域主控站上設���群組原則即可解決。

從我的 網域主控站 上的 Default Domain Policy 群組原則來看(請參考下圖路徑),我的加密檔案系統(Encrypting File System) 裡包含了兩張一模一樣的憑證,差別在於其中一張憑證已經過期了:

解決辦法就是將過期的憑證刪除,然後再到 用戶端電腦 (意即要執行加解密的那台電腦) 使用 gpupdate /force 重新套用群組原則即可!

以下是手動對檔案進行加解密的步驟:

如果「加密內容,保護資料」這個選項已經勾選的話,那就代表這個檔案已經加密過了:

如果再點選上述的「詳細資料」就可以看到這個檔案所指定的憑證使用狀況,上面是允許開啟該檔案的憑證清單,下方則是由修復原則鎖定義的這個檔案的修復憑證,也就是我們在群組原則那邊定義的加密檔案系統憑證。

以下是透過 Cipher.exe 指令列工具進行加解密檔案或目錄的方式:

加密檔案

cipher /E 1.txt

  

解密檔案

cipher /D 1.txt

  

 

相關連結