Quelque chose dans Windows 10 remodule tous mes fichiers * .eml archivés

3

Informations de fond

Entre 2003 & amp; En 2013, j'avais l'habitude de sauvegarder des courriels importants de mon compte de messagerie sur mon disque dur local *.eml des dossiers. (Je ne le fais plus, en m'appuyant sur les vastes capacités de sauvegarde maintenant disponibles gratuitement avec de nombreux comptes de messagerie.)

Au cours des 18 derniers mois, je travaillais sous Arch Linux, mais je travaillais depuis un lapbook avec une installation propre de Windows 10. J'ai écrit un script PowerShell pour synchroniser mes propres données entre ordinateurs. Ce script me laisse un journal des modifications qui ont été apportées ou qui ont été apportées, ce qui me permet de détecter rapidement tout problème.

j'ai installé gVim, 7-Zip, Git, Firefox, Google Chrome, Bulk Rename & amp; Ditto, puis, il y a environ une semaine, a remarqué que tous mes documents archivés *.eml les fichiers avaient en quelque sorte eu leur LastWriteTime modifié à la date de ce jour.

Voici comment je vérifie, dans un répertoire affecté:

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

(ls -r *.eml).count révèle que j'ai presque 1800 *.eml des fichiers éparpillés autour de mon E:\ partition de disque dur. Il n’est pas extrêmement important pour moi de conserver leur LastWriteTime, mais j'aurais préféré ça.

diagnostic initial: Cortana

deuxième opinion: c'est une "fonctionnalité" de Windows 10

Je prends un de mes répertoires de données personnels, nommé "En outre", et le copie dans un dossier de travail, "Play0", dans le même répertoire. E: conduire. Tous les fichiers conservent leur LastWriteTime à l'exception du .eml fichiers, qui sont remodelés à ce jour.

Cette commande PowerShell génère des résultats suggérant que les fichiers peuvent être corrigés à partir des répertoires mis en miroir que je conserve sur les lecteurs portables:

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

Alors je le lance sans le commutateur "list" ( /l ), et ça marche - les dates sont redevenues comme avant, ce qui montre quand j’ai créé ces originaux *.eml des dossiers.

reproduction à l'aide de fichiers vides

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

- tout comme prévu; mais maintenant, dans Windows Explorer, Je fais manuellement des copies de ces originaux, en utilisant right-click > Copy suivi par Ctrl+V, et le *.eml L'étrange horodatage commence:

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

- l'original et la copie manuelle *.eml s ont eu leurs horodatages mis à jour jusqu'à maintenant!

bizarre newsbreak: c'est aussi quelque chose à voir avec Dropbox

Ayant pensé, plus tôt, avoir résolu le problème, j'ai installé Dropbox, que j'ai utilisé pendant 18 mois sur Arch Linux sans aucun problème. Malheureusement, Robocopy produit des résultats étranges lorsqu'il est utilisé avec Dropbox. Tout d'abord, avec Dropbox ne fonctionne pas,

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

- rapports 389 fichiers à copier, et oui, ils arrivent avec le bon temps (ancien), mais dès que j'active Dropbox, ils ont LastWriteTime réglé à maintenant. Je veux dire par là, pas à un moment qui reflète une heure où ils auraient pu être téléchargés sur mon espace de stockage Dropbox en ligne, mais à présent , le temps que Robocopy a été exécuté. Et,

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

- montre qu'il y a toujours un écart - ces 389 fichiers ...

[edit] vérifier avec Process Monitor les points sur Explorer.EXE

Selon la réponse de @ dangph, j'ai filtré pour eml et obtenu des centaines d'opérations par Explorer.EXE dans les trois secondes autour de mon manuel Copier / Coller. Rien d'évident là-bas. Cependant, environ une seconde plus tard, quatre appels à MsMpEng.exe. Alors

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

Filtration Process Monitor maintenant pour Process Name > is > MsMpEng.exe et Path > contains > eml et j'ai toujours des appels, alors je suis allé plus loin:

Settings > Windows Defender > Real-time protection > Off

Maintenant, mon copier / coller manuel ne déclenche aucune MsMpEng.exe, mais le *.eml les fichiers ont toujours leurs dates modifiées. Conclusion: c'est Explorer.EXE c'est faire ça.

vaincu, mes questions

Je ne peux pas résoudre cela, et c'est un problème hérité, j'ai donc décidé de vivre avec cela et de passer à autre chose, mais je suis toujours préoccupé par cette violation mineure de mes données personnelles. Qu'est-ce qui cause Windows 10? eml les fichiers dont les horodatages sont altérés dans certaines opérations de copie, et comment cela est-il exacerbé lorsque Dropbox est actif?

JosephHarriott
la source
robocopy par défaut devrait copier l’horodatage du fichier original. Pourquoi utilisez-vous la FFT en tant que paramètre? / FFT :: suppose FAT File Times (granularité de 2 secondes). Pouvez-vous simplement utiliser les valeurs par défaut et voir si vous obtenez des résultats différents? Il y a beaucoup de colonnes de date dans Explorer? Lequel regardez-vous? J'utilise Date Modified moi-même.
Sun

Réponses:

1

Je ne sais pas ce qui cause le problème, mais vous pouvez essayer d'utiliser Moniteur de processus pour savoir ce qui écrit dans vos fichiers.

Dans Process Monitor, vous pouvez définir un filtre de "chemin contient .eml", par exemple.

(Conseil: lors de la création d'un nouveau filtre dans Process Monitor, cliquez d'abord sur le bouton de réinitialisation de la boîte de dialogue de filtrage pour effacer tout filtre de la session précédente.)

Maintenant, copiez à nouveau votre fichier et Process Monitor vous indiquera quand un processus atteint vos fichiers.

S'il y a trop de bruit, vous pouvez cliquer avec le bouton droit sur des éléments pour exclure des éléments ou définir un filtre plus spécifique.

dangph
la source
J'ai modifié ma question pour inclure votre test.
JosephHarriott
1

C'est un bug qui existait depuis Windows Vista et cela affecte aussi .nws des dossiers. Pour résoudre ce problème, créez un nouveau fichier appelé "FixEml.reg" contenant les lignes suivantes et exécutez-le:

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]

De plus, même si la date de la dernière modification a été modifiée, le contenu du fichier n'est pas réellement modifié.

Runemoro
la source
Esoteric, mais vous m'avez donné une solution probable. Malheureusement, je devais passer à autre chose et j'ai donc permis à ces fichiers eml d'être annotés. Si j'ai un moment, je vais extraire des échantillons de mes archives qui ont encore leur date d'origine et essayer votre solution, puis je pourrai l'accepter comme réponse (à moins que quelqu'un ne puisse me convaincre de l'accepter sans vérifier pour moi-même).
JosephHarriott
0

Cette entrée de forum a une réponse très intéressante sur cette question. Il semble découvrir la cause première, qui est le ADS Zone.Identifier.

Après avoir trouvé ceci, j'ai essayé d'écrire un script qui supprime cette ADS de mes fichiers et jusqu'à présent, cela semble avoir résolu le problème pour de bon (et nul besoin de changer le registre, etc.).

J'ai également écrit une interface graphique pour mon outil maintenant et j'espère qu'il aidera n'importe qui à se débarrasser de ce bogue potentiellement très éprouvant pour les nerfs (j'ai synchronisé plus de mille fichiers eml ...). C'est sur github: https://github.com/bfour/EMLFixer

Je serais heureux d'entendre vos commentaires, en particulier si cela fonctionne réellement pour vous aussi, car je ne pouvais que le tester sur ma machine.

bfour
la source