Como posso saber quando um arquivo foi lido ou acessado pela última vez no Windows?

13

Preciso determinar se um arquivo específico foi acessado nos últimos, digamos, 2 dias.

Isso é possível no Windows Server 2008 R2?

javapowered
fonte

Respostas:

7

Depois desse fato? Não, acredito que não, a menos que uma ACL de auditoria tenha sido herdada de um pai ou definida diretamente no arquivo para a permissão "ler arquivo". Se você habilitar a auditoria do sistema de arquivos, poderá procurar nos logs de segurança para encontrar essas informações que a maioria das pessoas canalizará ou transferirá para algum tipo de ferramenta de análise.

Você também pode usar algo como o Tripwire para manter a integridade dos arquivos, se isso se tornar um objetivo.

SpacemanSpiff
fonte
é possível fazer sem usar utilitários de terceiros? O Windows controla o tempo de criação, tempo de modificação, por que não pode rastrear o "tempo de leitura"?
usar o seguinte comando
@javapowered Sim, é. Como o SpacemanSpiff mencionou. Use auditoria interna. Leia isto: technet.microsoft.com/en-us/library/dd560628%28v=ws.10%29.aspx
Tom
1
@ javapowered - não é realmente muito mais difícil do que definir permissões de arquivo. Se você quiser fazer isso para apenas um arquivo ou diretório, vá para esse diretório. Abra a caixa de diálogo de propriedades do arquivo / pasta, vá para a guia Auditoria. Adicione o grupo "todos" ou "usuários do domínio" se você estiver em um domínio e marque a caixa de seleção para obter a permissão "ler". Isso criará uma entrada de log de eventos de segurança toda vez que alguém acessar o arquivo. Portanto, comece a revisar os logs ou despeje-os em um leitor de log procurando o arquivo / pasta a ser mencionado.
precisa saber é o seguinte
1
e ... tenha cuidado ao definir a auditoria na raiz de uma unidade, ela provavelmente cairá em cascata e seu registro ficará louco. Para sua informação.
SpaceManSpiff
1
Abra Ferramentas administrativas, o Visualizador de eventos, e olhar para o registo de segurança
SpaceManSpiff
8

Na verdade, existe uma maneira, mas ele foi desativado por padrão desde o Vista / 2008 e acabei de verificar que ele foi desativado por padrão no Win7 / 2008R2.

A configuração do registro NtfsDisableLastAccessUpdatelocalizada HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystemagora agora é 1 para fins de desempenho. Se você alterar para 0, o NTFS atualizará a propriedade LastAccessTime do arquivo / pasta.

Você pode ver esse valor observando as propriedades do arquivo / pasta ou pode extrair as informações com um script do PowerShell. Porém, certifique-se de testar primeiro para garantir que o desempenho não seja ruim.

Além disso, o NTFS nem sempre atualiza as informações imediatamente. De acordo com a Microsoft :

O sistema de arquivos NTFS atrasa as atualizações no último tempo de acesso a um arquivo em até 1 hora após o último acesso.

murisonc
fonte
1
É ótimo saber, ele armazena quem acessou também?
precisa
1
Não, apenas quando foi acessado. Se você precisar saber quem, precisará ativar a auditoria, conforme mencionado em outra resposta.
murisonc
@murisonc, o usuário mal-intencionado não poderia simplesmente usar um programa que restaura a última data de acesso ao valor original depois de acessar os arquivos?
Pacerier 22/11/14
@ Pacerier, tenho certeza que um usuário mal-intencionado pode encontrar uma maneira de forjá-lo. Para entender isso, seria necessário ativar a auditoria e garantir que essas entradas de auditoria estejam sendo encaminhadas para um servidor de coleta de auditoria.
murisonc
Qual o impacto no desempenho da habilitação NtfsDisableLastAccessUpdate?
Stevoisiak
4

Como o @murisonc apontou , os volumes NTFS no Windows podem rastrear o último horário de acesso, mas não o fazem por padrão, e é facilmente ativado pela configuração de uma chave do Registro.

Você pode combinar isso com uma ferramenta de monitoramento de integridade de arquivos, como Verisys ou Tripwire , que pode fornecer alertas e relatórios automatizados.

As ferramentas de auditoria do sistema de arquivos também podem ser uma opção, embora muitas dependam da ativação da auditoria de objetos, o que pode prejudicar o desempenho. Alguns outros contam com drivers de filtro do sistema de arquivos, mas esses drivers podem ser um pouco confusos.

Cocowalla
fonte
0

Este guia deve executar o truque para ativar a auditoria em um arquivo: http://www.discoveryourpc.net/2010/01/auditing-access-to-files-on-windows-7.html

É para o Windows 7, mas é quase idêntico a 2008.

Você também pode usar diretivas de grupo para isso. Mas como você declarou que não é um administrador profissional, esse não seria o caminho para você.

Você precisa adicionar um usuário ou grupo para auditar. Eu recomendo adicionar o mesmo grupo que tem acesso na pasta pai.

Você deve informar aos usuários o que auditar. No seu caso, "acesso a arquivos". Se você não os informar, a auditoria poderá ser ilegal.

Tom
fonte
Obrigado. Eu fiz exatamente como você pediu e funcionou perfeitamente! O único problema é que ele não mostra os logs antes de eu ativar o acesso à auditoria. Como faço para fazer isso?
O domínio discoveryourpc.net não existe mais (não possui entradas DNS). O link na resposta está morto.
Peter Hansen