9

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

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

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

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

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

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

6 ответов6

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

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

решение 1

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

COPY %1 %2
CIPHER /D %2

С помощью клавиш Windows+R откройте диалоговое окно «Выполнить», набрав:

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, когда вы щелкаете файл правой кнопкой мыши (в подменю send to)

0

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

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

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

cipher  /A  /E / S:directoryname

Расшифровать рекурсивно

cipher  /A  /D / S:directoryname
0

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

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

cipher /d /s:RootFolder

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

0

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

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

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

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

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

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

-2

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .