Справочная информация
Между 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 активен?