26

Я использую IMAPSize для резервного копирования моих почтовых ящиков. Процесс просто сбрасывает содержимое вашего почтового ящика в файлы .eml на вашем диске. В любом случае, первый почтовый ящик, для которого я создал резервную копию, отображается так, как я ожидал. Тем не менее, следующий не отображается в Проводнике и, если я введу его в адресную строку, он скажет мне, что он не существует.

Однако IMAPSize настаивает на том, что файлы там. (Во время операции выполнялось много записи на диск.) Кроме того, в каталоге появляется в диалоговом окне каталога Windows , и - как я установлен GNU инструменты - это показывает , в ls (но не в родной dir Я не могу cd в каталог, но, похоже, ls действительно может получить к нему доступ (и, действительно, каталоги и файлы, которые я ожидаю, по-видимому, там).

окно командной строки, показывающее списки

Также обратите внимание, что метка времени и размер файла backup.db различаются в выходных данных dir и ls -l .

Короче говоря: что здесь происходит и как мне это исправить !?

1 ответ1

63

Позвольте мне угадать: программа, которая создала файл, а также утилиты GNU, не работают от имени администратора.

Сначала немного истории. Во времена Windows XP многие программы предполагали, что они всегда будут запускаться с правами администратора и будут писать в такие места, как C:\Windows и C:\Program Files (x86) с полным упущением. В Vista Microsoft пыталась сделать меньше людей администраторами, но обычные пользователи не могут писать в эти места. Им нужны были эти сомнительные программы, чтобы продолжать работать (иначе люди не стали бы обновляться). Итак, они представили магическую функцию, называемую виртуализацией UAC.

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

Похоже, что ваша почтовая программа пыталась записать в папку Program Files (x86) при работе от имени обычного пользователя. Запись была перенаправлена, поэтому на самом деле она не пошла туда. Программа все еще может видеть это, потому что Windows поддерживает иллюзию для этого. Explorer не видит его, потому что он сообщает операционной системе, что он хорошо себя ведет и не нуждается в перенаправлении. Команда dir командной строке - это не программа (это просто функция cmd.exe), поэтому она также считается "в курсе" и поэтому не отображается файлы совместимости. ls - программа, которая, очевидно, не в курсе, поэтому она видит файлы совместимости.

Вы найдете свой файл здесь:

%LOCALAPPDATA%\VirtualStore\Program Files (x86)\IMAPSize\backup

Поискав в VirtualStore , вы можете быть удивлены тем, какие программы плохо себя ведут и нуждаются в сети безопасности виртуализации.

Если вы хотите остановить перенаправление, запустите программу от имени администратора или сохраните свои резервные копии в месте, в которое вы можете писать без прав администратора.

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