Не скрытый каталог не отображается в Проводнике, но программа, которая сделала его, может получить к нему доступ

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

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

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

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

1 ответ

Решение

Позвольте мне угадать: программа, которая создала файл, а также утилиты 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Вы можете быть удивлены тем, какие программы плохо себя ведут и нуждаются в сети безопасности виртуализации.

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

Другие вопросы по тегам