Algo no Windows 10 está re-datando todos os meus arquivos * .eml arquivados

3

Informações de plano de fundo

Entre 2003 e amp; 2013 Eu tinha o hábito de salvar e-mails importantes da minha conta de e-mail para meu disco rígido local como *.eml files. (Eu não faço mais isso, contando com os vastos recursos de backup agora disponíveis gratuitamente com muitas contas de e-mail.)

Nos últimos 18 meses, trabalhei no Arch Linux, mas recentemente trabalhei em um lapbook com uma instalação limpa do Windows 10. Eu escrevi um script do PowerShell para sincronizar meus próprios dados entre máquinas. Esse script me deixa um registro de alterações que podem ou foram feitas, para que eu possa identificar rapidamente algo indesejável.

Eu instalei gVim , 7-Zip , Git , Firefox , Google Chrome , Bulk Rename & Ditto , e então, cerca de uma semana atrás, percebi que todos os meus arquivos *.eml arquivados tinham de alguma forma seus LastWriteTime modificados para a data daquele dia.

É assim que eu verifico em um diretório afetado:

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

(ls -r *.eml).count revela que eu tenho quase 1800% de arquivos*.eml espalhados pela minha partição de disco rígido E:\ . Não é de vital importância para mim que eles mantenham seus LastWriteTime , mas eu teria preferido isso.

diagnóstico inicial: Cortana

  • Eu verifiquei que Control Panel > All Control Panel Items > Indexing Options não inclui E:\ .
  • Percebi que a Cortana instantaneamente encontrou informações pessoais retiradas de sua análise dos meus arquivos pessoais em E: , então eu desliguei a Cortana: Settings > Privacy > Getting to know you > off-ticked (e limpei o banco de dados dela sobre mim tanto localmente quanto na minha conta da Microsoft online).
  • Encontrei apenas uma postagem relacionada on-line - Por que algo na minha nova máquina Win 7 muda todas as datas dos meus arquivos .eml? - mas é sobre Windows Search .

segunda opinião: é um "recurso" do Windows 10

Eu pego um dos meus diretórios de dados pessoais, chamado "Further", e copio para uma pasta de rascunho, "Play0", na mesma unidade E: . Todos os arquivos preservam seu LastWriteTime , exceto os arquivos .eml , que são redecorados agora.

Este comando do PowerShell gera resultados sugerindo que os arquivos podem ser corrigidos dos diretórios espelhados que eu mantenho em unidades portáteis:

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

Então eu o executo sem a opção "list" ( /l ), e funciona - as datas estão de volta a como estavam, mostrando quando eu realmente criei os arquivos *.eml originais.

reprodução usando arquivos vazios

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

- tudo como esperado; mas agora, em Windows Explorer , eu manualmente faço cópias desses originais, usando right-click > Copy seguido por Ctrl+V , e a estranheza *.eml timestamp começa:

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

- o original e a cópia manual *.eml s tiveram seus carimbos de data / hora atualizados até o momento!

newsbreak estranho: também tem algo a ver com o Dropbox

Tendo, anteriormente, pensado que tinha resolvido o problema, instalei o Dropbox, que usei durante 18 meses no Arch Linux sem quaisquer problemas. Infelizmente, o Robocopy está produzindo resultados estranhos quando usado em conjunto com o Dropbox. Primeiro, com o Dropbox não em execução,

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

- reports 389 Arquivos foram copiados, e sim, eles chegam com os tempos corretos (antigos), mas assim que eu ativo o Dropbox, eles têm LastWriteTime definido para agora. Com isso eu quero dizer não para algum tempo que reflita um tempo em que eles possam ter sido enviados para o meu armazenamento on-line do Dropbox, mas agora , o tempo que o Robocopy foi executado. E

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

- mostra que ainda há uma discrepância - esses 389 arquivos ...

[edit] verifique com pontos do Process Monitor para o Explorer.EXE

Como resposta de @ dangph, eu filtrado por eml e tenho centenas de operações por Explorer.EXE nos três segundos em torno do meu manual de copiar / colar. Nada óbvio ali. No entanto, cerca de um segundo depois, quatro chamadas para MsMpEng.exe . Então

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

Filtrando Process Monitor agora para Process Name > is > MsMpEng.exe e Path > contains > eml e ainda recebo ligações, então fui um pouco além:

Settings > Windows Defender > Real-time protection > Off

Agora, meu manual Copiar / Colar não acionou nenhum MsMpEng.exe , mas os arquivos *.eml ainda tiveram suas datas alteradas. Conclusão: é Explorer.EXE que está fazendo isso.

derrotado, minhas perguntas

Eu não posso resolver isso, e é um problema herdado, então decidi viver com isso e seguir em frente, mas ainda estou preocupado com essa pequena violação de meus dados pessoais, então: O Windows 10 está fazendo com que eml arquivos tenham suas estampas de tempo adulteradas em algumas operações de Cópia e como isso se exacerbou quando o Dropbox está ativo?

    
por JosephHarriott 23.05.2016 / 20:01

3 respostas

1

Não sei o que está causando o problema, mas você pode tentar usar o Monitor de processo para descobrir o que está sendo gravado em seus arquivos.

No Process Monitor, você pode definir um filtro de "path contains .eml", por exemplo.

(Dica: ao criar um novo filtro no Process Monitor, clique no botão de redefinição na caixa de diálogo do filtro primeiro para limpar qualquer filtro da sessão anterior.)

Agora faça sua cópia de arquivo novamente e o Process Monitor mostrará quando algum processo atingir seus arquivos.

Se houver muito ruído, você pode clicar com o botão direito do mouse em coisas para excluir coisas ou pode tornar o filtro mais específico.

    
por 24.05.2016 / 08:53
1

Isso é um bug que existia desde o Windows Vista e também afeta arquivos .nws . Para corrigi-lo, crie um novo arquivo chamado "FixEml.reg" contendo as seguintes linhas e execute-o:

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]

Além disso, mesmo que a data da última modificação seja alterada, o conteúdo do arquivo não está sendo alterado.

    
por 23.07.2016 / 11:51
0

Esta entrada no fórum tem uma resposta muito interessante sobre esta questão. Parece descobrir a causa raiz, que é o ADS Zone.Identifier.

Depois de encontrar isso eu tentei escrever um script que remove o ADS dos meus arquivos e até agora isso parece ter resolvido o problema para sempre (e não há necessidade de alterar o registro, etc).

Eu também escrevi uma GUI para a minha ferramenta agora e espero que ajude alguém a se livrar desse bug potencialmente estressante (eu tinha mais de mil arquivos eml sendo sincronizados ...). Está no github: link

Ficaria feliz em ouvir seus comentários, especialmente se isso realmente funciona para você também, pois eu só pude testá-lo na minha máquina.

    
por 05.01.2017 / 05:06