3

Справочная информация

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

Последние 18 месяцев я работал с Arch Linux, но недавно я работал с ноутбуком с чистой установкой Windows 10. Я написал скрипт PowerShell для синхронизации своих данных между компьютерами. Этот сценарий оставляет мне журнал изменений, которые могли или были сделаны, так что я могу быстро заметить что-то нехорошее.

Я установил gVim 7-Zip Git Firefox Google Chrome Bulk Rename & Ditto а затем, примерно неделю назад, заметил , что все мои архивным *.eml файлы были каким - то образом их LastWriteTime модифицирована к этой дате `s дня ,

Вот как я проверяю в уязвимом каталоге:

ls -r *.eml | ForEach-Object { $_.LastWriteTime.ToString('yyyyMMdd-HH:mm:ss') + " : " + $_.FullName } | sort

(ls -r *.eml).count показывает, что у меня есть почти 1800 *.eml файлов, разбросанных по моему разделу E:\ жестком диске. Для меня не жизненно важно, чтобы они сохранили свой LastWriteTime , но я бы предпочел его.

Первоначальный диагноз: Кортана

  • Я проверил, что Control Panel > All Control Panel Items > Indexing Options не содержит E:\ .
  • Я заметил, что Кортана сразу обнаружила личную информацию, полученную в результате анализа моих личных архивов на E: поэтому я отключила Кортану: Settings > Privacy > Getting to know you > off-ticked (и очистила свою базу данных обо мне как локально, так и в моем Учетная запись Microsoft онлайн).
  • Я нашел только один связанный пост в Интернете - Почему что-то на моей новой машине с Win 7 меняет все даты моих файлов .eml? - но это о поиске Windows .

Второе мнение: это "фича" Windows 10

Я беру один из моих каталогов персональных данных с именем "Далее" и копирую его в пустую папку "Play0" на том же диске E: . Все файлы сохраняют свой LastWriteTime за исключением файлов .eml , которые устарели.

Эта команда PowerShell выводит результаты, свидетельствующие о том, что файлы можно исправить из зеркальных каталогов, которые я храню на переносных дисках:

robocopy /mir G:\Further E:\Play0\Further *.eml /np /fft /l

Поэтому я запускаю его без переключателя "list" (/l), и он работает - даты возвращаются к тому, как они были, показывая, когда я действительно создал эти оригинальные файлы *.eml .

воспроизведение с использованием пустых файлов

New-Item -ItemType File .\emptyControl
$thousandDaysAgo = (Get-Date).AddDays(-1000)
$thousandDaysAgo
27 August 2013 19:18:51
(New-Item -ItemType File .\emptyOldOriginal.eml).LastWriteTime = $thousandDaysAgo
(New-Item -ItemType File .\emptyOldOriginal.txt).LastWriteTime = $thousandDaysAgo
Copy-Item -Path .\emptyOldOriginal.eml -Destination .\eOOPowerShellv5Copy.eml
Copy-Item -Path .\emptyOldOriginal.txt -Destination .\eOOPowerShellv5Copy.txt
ls | select FullName, LastWriteTime
FullName                         LastWriteTime
--------                         -------------
E:\Play0\emptyControl            23/05/2016 19:18:43
E:\Play0\emptyOldOriginal.eml    27/08/2013 19:18:51
E:\Play0\emptyOldOriginal.txt    27/08/2013 19:18:51
E:\Play0\eOOPowerShellv5Copy.eml 27/08/2013 19:18:51
E:\Play0\eOOPowerShellv5Copy.txt 27/08/2013 19:18:51

- все как положено; но теперь, в Windows Explorer , я вручную делаю копии этих оригиналов, используя right-click > Copy затем Ctrl+V , и начинается странная отметка времени *.eml :

FullName                             LastWriteTime
--------                             -------------
E:\Play0\emptyControl                23/05/2016 19:18:43
E:\Play0\emptyOldOriginal - Copy.eml 23/05/2016 19:22:28
E:\Play0\emptyOldOriginal - Copy.txt 27/08/2013 19:18:51
E:\Play0\emptyOldOriginal.eml        23/05/2016 19:22:28
E:\Play0\emptyOldOriginal.txt        27/08/2013 19:18:51
E:\Play0\eOOPowerShellv5Copy.eml     27/08/2013 19:18:51
E:\Play0\eOOPowerShellv5Copy.txt     27/08/2013 19:18:51

- и оригинал, и ручное копирование *.eml s обновили свои отметки времени!

странная новость: это также что-то общее с Dropbox

Ранее, подумав, что я решил проблему, я установил Dropbox, который я использовал в Arch Linux в течение 18 месяцев без каких-либо проблем. К сожалению, Robocopy дает странные результаты при использовании вместе с Dropbox. Во-первых, с Dropbox не работает,

robocopy /mir G:\Further E:\Dropbox\Further *.eml /np /fft

- сообщает о том, что 389 файлов были скопированы, и да, они приходят с правильным (древним) временем, но как только я активирую Dropbox, для них установлено значение LastWriteTime . Под этим я подразумеваю не время, которое отражает время, когда они могли быть загружены в мое онлайн-хранилище Dropbox, а время, когда запускалась Robocopy. А также,

robocopy /mir G:\Further E:\Dropbox\Further *.eml /np /fft /l

- показывает, что есть еще расхождение - эти 389 файлов ...

[править] проверка с помощью Process Monitor указывает на Explorer.EXE

Согласно ответу @ dangph, я отфильтровал для eml и получил сотни операций от Explorer.EXE за три секунды вокруг моего ручного копирования / вставки. Ничего очевидного там нет. Однако примерно через секунду четыре вызова MsMpEng.exe . Так

Settings > Windows Defender > Add an exclusion > Exclude a folder > E:\Play0

Фильтрация Process Monitor теперь для Process Name > is > MsMpEng.exe и Path > contains > eml и я все еще получаю вызовы, поэтому я пошел дальше:

Settings > Windows Defender > Real-time protection > Off

Теперь мое ручное копирование / вставка не MsMpEng.exe , но в файлах *.eml даты все равно менялись. Вывод: это Explorer.EXE это делает.

победил, мои вопросы

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

3 ответа3

1

Я не знаю, что является причиной проблемы, но вы можете попробовать использовать Process Monitor, чтобы выяснить, что пишет в ваши файлы.

Например, в Process Monitor можно установить фильтр «путь содержит .eml».

(Совет: при создании нового фильтра в Process Monitor сначала нажмите кнопку сброса в диалоговом окне фильтра, чтобы удалить любой фильтр из предыдущего сеанса.)

Теперь сделайте копию файла снова, и Process Monitor покажет вам, когда какой-либо процесс ударит ваши файлы.

Если шум слишком велик, вы можете щелкнуть правой кнопкой мыши по вещам, чтобы исключить их, или вы можете сделать фильтр более конкретным.

1

Это ошибка, существовавшая со времен Windows Vista, которая также влияет на файлы .nws . Чтобы исправить это, создайте новый файл с именем «FixEml.reg», содержащий следующие строки, и запустите его:

Windows Registry Editor Version 5.00
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\PropertySystem\PropertyHandlers\.eml]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\PropertySystem\PropertyHandlers\.nws]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\PropertySystem\PropertyHandlers\.eml]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\PropertySystem\PropertyHandlers\.nws]

Кроме того, даже если дата последнего изменения изменяется, содержимое файла фактически не изменяется.

0

Эта запись на форуме имеет очень интересный ответ на этот вопрос. Кажется, чтобы раскрыть основную причину, которая является Зона.Идентификатор ADS.

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

Я также написал графический интерфейс для своего инструмента и надеюсь, что он поможет любому избавиться от этой потенциально очень нервной ошибки (у меня было более тысячи синхронизируемых файлов eml ...). Это на github: https://github.com/bfour/EMLFixer

Был бы рад услышать ваши отзывы, особенно если это действительно работает для вас, так как я мог проверить только на моей машине.

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