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?