Windows 10の何かがすべてのアーカイブされた* .emlファイルの日付を変更しています


3

背景情報

2003年から2013年の間、重要なメールをメールアカウントからローカルハードドライブに*.emlファイルとして保存する習慣がありました。(私はこれをやめ、多くの電子メールアカウントで現在自由に利用できる膨大なバックアップ機能に依存しています。)

過去18か月間、私はArch Linuxで働いていましたが、最近、Windows 10がクリーンにインストールされたラップブックで働いています。 マシン間で自分のデータを同期するPowerShellスクリプトを作成しました。このスクリプトを使用すると、行われた、または行われた可能性のある変更のログが残されるため、不要なものをすばやく見つけることができます。

私がインストールされgVim7-ZipGitFirefoxGoogle ChromeBulk RenameDitto、その後、一週間ほど前に、私のアーカイブされたすべてのことに気づいた*.emlファイルは何とか自分の持っていたLastWriteTimeことday`s日に変更します。

これは、影響を受けるディレクトリで私がチェックする方法です:

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

(ls -r *.eml).count私は*.emlE:\ハードドライブパーティションにほぼ1800個のファイルが散在していることを明らかにしました。彼らがそれらを保持することLastWriteTimeは私にとって非常に重要ではありませんが、私はそれを好んだでしょう。

初期診断:コルタナ

  • Control Panel > All Control Panel Items > Indexing Options含まれていないことを確認しましたE:\
  • 私は、コルタナは瞬時に個人情報が私の個人的なアーカイブ上の分析から引き出されたことに気づいE::ので、私はコルタナをオフにSettings > Privacy > Getting to know you > off-ticked(とオンラインの両方のローカルおよび私のMicrosoftアカウントで私についての彼女のデータベースをクリア)。
  • オンラインで関連する投稿を1つだけ見つけました- 新しいWin 7マシンで何かが.emlファイルのすべての日付を変更するのはなぜですか?-しかし、それはWindows Searchについてです。

セカンドオピニオン:Windows 10の「機能」です

「Further」という名前の個人データディレクトリの1つを取得し、同じE:ドライブ内の「Play0」というスクラッチフォルダにコピーします。すべてのファイルは、現在の日付に更新されるファイルLastWriteTimeを除き、保存され.emlます。

このPowerShellコマンドは、ポータブルドライブに保持しているミラーディレクトリからファイルを修正できることを示唆する結果を出力します。

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

そのため、「リスト」スイッチ(/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

-オリジナルと手動の両方のCopy *.emlのタイムスタンプが今までに更新されました!

奇妙なニュースブレイク:Dropboxにも関係しています

以前、問題を解決したと思ったので、Dropboxをインストールしました。これは18か月間Arch Linuxで問題なく使用していました。残念ながら、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の答えによると、手動のコピー/貼り付けの3秒以内にeml何百もの操作をフィルタリングして取得しExplorer.EXEました。明らかなことは何もありません。ただし、約1秒後に、を4回呼び出しますMsMpEng.exe。そう

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

フィルタリングは、Process Monitor今のProcess Name > is > MsMpEng.exePath > contains > eml、私はまだ電話を得たので、私はさらに一歩を行ってきました:

Settings > Windows Defender > Real-time protection > Off

これで、手動のコピー/貼り付けでは何もトリガーされませんでしたMsMpEng.exeが、*.emlファイルの日付は変更されました。結論:Explorer.EXEこれがこれをしているということです。

敗北、私の質問

私はこの問題を解決することはできません、と私はそれと一緒に暮らすと上を移動することに決めましたが、私はまだ私の個人データのこのマイナーな違反に関係していますのでので、それは、従来の問題です:Windowsの10の何が原因になっているemlにファイルを一部のコピー操作でタイムスタンプが改ざんされていますか?Dropboxがアクティブなときにこれがどのように悪化しますか?


デフォルトでは、robocopyは元のファイルのタイムスタンプをコピーする必要があります。なぜFFTをパラメーターとして使用しているのですか?/ FFT :: FATファイル時間(2秒の粒度)を想定しています。デフォルトを使用して、異なる結果があるかどうかを確認できますか?Explorerには多くの日付列がありますか?あなたはどちらを見ていますか?自分で修正日を使用します。

回答:


1

何が問題の原因なのかわかりませんが、Process Monitorを使用して、ファイルに書き込んでいるものを調べることができます。

プロセスモニターでは、たとえば「.emlを含むパス」のフィルターを設定できます。

(ヒント: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]

また、最終変更日が変更されても、ファイルの内容は実際には変更されていません。


難解ですが、修正の可能性があります。残念ながら、ワークフローを続行する必要があったため、これらのemlファイルの編集を許可しました。少し時間があれば、元の日付がまだ残っているアーカイブからいくつかのサンプルを掘り出し、修正を試みます。そして、それを答えとして受け入れることができます(誰かがそれを受け入れるように説得できない限り)自分で確認することなく)。
ジョセフハリオット

0

このフォーラムのエントリには、この問題に関する非常に興味深い返信があります。Zone.Identifier ADSである根本原因が明らかになったようです。

これを見つけた後、ファイルからそのADSを削除するスクリプトを作成しようとしましたが、これまでのところ問題は解決されているようです(レジストリなどを変更する必要はありません)。

また、ツールのGUIを作成しました。このツールは、この非常に神経質になる可能性のあるバグを解消するのに役立つことを願っています(同期されているemlファイルは1,000以上ありました)。githubにあります:https : //github.com/bfour/EMLFixer

私のマシンでしかテストできなかったので、特にこれが実際にあなたのためにも働くかどうか、あなたのフィードバックを聞いて喜んでいるでしょう。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.