環境:Windows 7、ただし他のEFS互換Windowsバージョンに適用
標準のWindows EFS暗号化を使用して暗号化されたファイルがあります。 Total CommanderまたはExplorerを使用してそのファイルをUSBドライブにコピーすると、ファイルは宛先で暗号化されたままになります。
このような暗号化されたファイルは、USBドライブが差し込まれている他のどのWindows PCからもアクセスできません。そのPCに個人証明書をインポートすることはできますが、それが最後に行いたいことです。
ファイルがリムーバブルドライブにコピーされるときに、コピープロセスでファイルが自動的に復号化されます。 Windowsにそれを行うように指示する方法はありますか?
オンザフライでファイルを解読する力ずくの方法は、私のUSBドライブのファイルシステムとしてFATに切り替えることですが、私もそれをしたくありません。
ヒントを事前にありがとう!
おそらく、バッチファイルを使用すると、次のようなことができます。
mycopy.cmd
ファイル(PATH
または「ユーザープロファイルディレクトリ」内)に2行を追加:
COPY %1 %2
CIPHER /D %2
とともに Windows+R キーは次のタイプの実行ダイアログを開きます:
mycopy file-to-be-copied target-directory
ターゲットディレクトリが常に同じ場合は、ファイルmycopy.cmd
このファイル
COPY %1 target-directory
CIPHER /D target-directory
ファイルをSendToディレクトリ(%userprofile%\AppData\Roaming\Microsoft\Windows\SendTo
)は新しいオプションmycopy.cmdを提供します(ファイルに右クリックすると(サブメニューに送信))
Windowsコマンドプロンプトを使用して私にとって最も効果的なことは、以下のとおりです(それが説明されているリンクも)。複雑なフォルダー構造と暗号化された階層の深い多くのファイルがあり、一度に1つずつ手動で実行することが現実的ではなかったため、これを使用する必要がありました。
フォルダーの暗号化/復号化(Windowsでは再帰的に) https://www.windows-commandline.com/cipher-command-line-encryption-utility/
再帰的に暗号化する
cipher /A /E / S:directoryname
再帰的に復号化する
cipher /A /D / S:directoryname
CmPi からの回答への追加:
すでにフォルダー(例:RootFolder
)をコピーしていて、暗号化されている場合は、/ sオプションを使用してすべてのファイルとサブフォルダーを再帰的に復号化できます。
cipher /d /s:RootFolder
ファイルの暗号化に使用した証明書とキーをエクスポートし、別のPCからインポートした場合は、どのPCからでも実行できることに注意してください。 EFS証明書を転送する方法については、このリンクを確認してください: http://windows.Microsoft.com/en-us/windows-Vista/share-encrypted-files
暗号化されたファイルをEFSをサポートする宛先にコピーする場合、Windowsは常に暗号化フラグを引き継ぎます。つまり、コピーされたファイルを暗号化します(ソース: Win API )。新しいファイルを作成するとき、Windowsはフォルダーの暗号化設定を使用して、ファイルを暗号化するかどうかを決定します。
以下を試してください:
これでうまくいくはずです。
もう1つのオプションは、暗号化をサポートしない暫定的な場所(FATボリュームなど)にデータをコピーしてから、それを宛先に移動することです。
どちらの方法でもプロセスは長くなる可能性がありますが、コピー中にファイルをその場で復号化する唯一の方法は、独自のコピーユーティリティをコーディングし、CopyFile()
API呼び出しをバイパスして、代わりにソースファイルを読み取り、宛先にある同じファイル。