Как удалить зашифрованный флаг при копировании файла с жесткого диска на USB-накопитель?

Среда: Windows 7, но применяется к другим версиям Windows, совместимым с EFS

У меня есть файл, который зашифрован с использованием стандартного шифрования Windows EFS. Когда я копирую этот файл на USB-накопитель с помощью Total Commander или Explorer, файл остается зашифрованным в пункте назначения.

Такой зашифрованный файл недоступен на любом другом ПК с ОС Windows, где подключается мой USB-накопитель. Я могу импортировать свои персональные сертификаты на этот компьютер, но это последнее, что я хотел бы сделать.

Я хотел бы, чтобы процесс копирования автоматически расшифровывал мой файл, когда файл копируется на съемный диск. Есть ли способ сказать Windows сделать это?

Локальным способом дешифрования файла «на лету» было бы переключиться на FAT как файловую систему на моем USB-накопителе, но я тоже не хочу этого делать.

Спасибо заранее за любые подсказки!

Возможно, с помощью командного файла вы можете сделать что-то вроде этого:

Раствор 1

Создайте файл mycopy.cmd (в вашем PATH или в вашем «каталоге профиля пользователя») с двумя строками:

 COPY %1 %2 CIPHER /D %2 

С помощью клавиш Windows + R откройте диалоговое окно execute:

 mycopy file-to-be-copied target-directory 

Решение 2

Если целевой каталог всегда один и тот же, вы можете упростить файл mycopy.cmd как это

 COPY %1 target-directory CIPHER /D target-directory 

Помещение файла в каталог SendTo ( %userprofile%\AppData\Roaming\Microsoft\Windows\SendTo ) предоставит вам новый параметр mycopy.cmd, когда вы сделаете правильный клик в файле (в подменю отправки в подменю)

  • RichCopy – это бесплатная утилита, которая может удалять шифрование при копировании файлов и папок между файлами с форматированием NTFS. (Нет необходимости в разделе FAT32 для дешифрования)
  • Чтобы получить доступ к настройке, сначала установите флажок «Дополнительно» в меню «Вид». Затем перейдите в раздел «Параметры копирования»> «По умолчанию»> «Атрибуты файла», «Обработка ошибок»> «Файл atttibutes для удаления»> «Зашифровано»
  • Он доступен по адресу http://technet.microsoft.com/en-us/magazine/2009.04.utilityspotlight.aspx

При копировании зашифрованного файла в пункт назначения, который поддерживает EFS, Windows всегда будет переносить флаг шифрования, то есть шифровать скопированный файл (источник: Win API ). При создании нового файла Windows будет использовать параметр шифрования папки, чтобы определить, следует ли шифровать файл.

Попробуйте следующее:

  • После копирования откройте свойства папки назначения.
  • Включите шифрование, но не выбирайте для шифрования дочерних объектов.
  • Применить изменения
  • Отключите шифрование для папки и на этот раз выберите дешифрование всех дочерних объектов.

Это должно делать свое дело.

Другой вариант – скопировать данные во временное место, которое не поддерживает шифрование (например, громкость FAT), а затем переместить его в пункт назначения.

В любом случае процесс может быть длительным, но единственным способом дешифрования файла «на лету» при копировании будет кодирование собственной утилиты копирования, минуя вызов API CopyFile() но вместо этого чтение исходного файла и создание идентичного файла на место назначения.

Дополнение к ответу от CmPi :

Если вы уже скопировали свою папку (например, RootFolder ) и зашифрованы, вы можете рекурсивно дешифровать все файлы и подпапки с параметром / s:

 cipher /d /s:RootFolder 

Обратите внимание, что вы можете делать это с любого ПК, пока вы экспортировали сертификат и ключ, используемые для шифрования файлов, и вы импортировали их с другого ПК. Проверьте эту ссылку для получения информации о том, как передавать сертификаты EFS: http://windows.microsoft.com/en-us/windows-vista/share-encrypted-files

То, что сработало для меня лучше всего, с помощью командной строки Windows, ниже (и ссылки, где описано). Я должен был использовать это, потому что у меня была сложная структура папок и множество файлов в глубине иерархии, которые были зашифрованы, поэтому было невозможно выполнить ее по одному вручную.

Шифрование / дешифрование папок (рекурсивно в Windows) https://www.windows-commandline.com/cipher-command-line-encryption-utility/

Шифрование рекурсивно

 cipher /A /E / S:directoryname 

Декодировать рекурсивно

 cipher /A /D / S:directoryname 

Чтобы дешифровать файл при его копировании на USB-носитель, отключите шифрование на USB-носителе. Он все еще может использовать NTFS (что я и предполагаю, что вы используете).

  • Как создать кросс-платформенный диск с TrueCrypt
  • Шифрование LUKS с неинтерактивным входом на RHEL6
  • Шифрование и дешифрование с помощью кодирования AES и Base64
  • C # версия метода OpenSSL EVP_BytesToKey?
  • Как зашифровать одну запись в web.config
  • Как подключить зашифрованную файловую систему ext3 под OS X?
  • Простой пример шифрования / расшифровки AES Java
  • Java-эквивалент шифрования C ++
  • java.io.IOException: Недопустимый формат хранилища
  • Расшифровка открытого ключа OpenSSL PEM Encoded RSA с Java?
  • Какие Cipher Suites включить для SSL Socket?
  • Давайте будем гением компьютера.