Como posso determinar qual processo está movendo um arquivo?

Como posso determinar qual processo está movendo um arquivo?

Temos um site que produz arquivos, que são colocados em uma pasta e coletados por outro processo que copia os arquivos para outro servidor (não foi meu projeto).

Em nosso ambiente de produção, a movimentação é executada por uma tarefa agendada que é acionada a cada minuto, que chama um arquivo em lote, que chama um script do PowerShell que realmente move os arquivos (novamente, não é meu projeto).

Agora a pergunta:

O site é configurado de forma idêntica em nosso ambiente UAT. Os arquivos são colocados em uma pasta e depois movidos. Mas não há nenhuma tarefa agendada nessa caixa, e estou tendo muita dificuldade para determinar qual processo está realmente movendo os arquivos.

Pode até não estar sendo executado na mesma máquina que a pasta. Alguma ideia de como posso determinar qual processo está movendo os arquivos ou pelo menos qual máquina está fazendo isso?

Responder1

Você pode usar o monitor de processo SysInternals e filtrar entradas do sistema de arquivos com o caminho ou nome de arquivo dos arquivos movidos. Se for um processo local, isso deverá revelá-lo. Se não for um processo local, você verá os arquivos sendo movidos por “Sistema” ou algo parecido.

Infelizmente, você precisa estar executando o monitor de processo no momento em que a movimentação está ocorrendo, e o monitor de processo é um pouco pesado, portanto, todo o servidor pode sofrer durante a solução de problemas.

Se os arquivos estiverem sendo movidos por um processo remoto, você pode usar o SysInternals PsFile ou algum utilitário semelhante para descobrir quem os está acessando.

Página inicial do SysInternals:https://technet.microsoft.com/en-us/sysinternals/default

Responder2

Você pode fazer isso com o log de auditoria de segurança no arquivo e nos diretórios ("pastas") em questão.

Primeiro, execute a Política de Grupo ( gpedit.msc) como Administrador. No painel esquerdo, navegue até Configuração do Computador | Configurações do Windows | Configurações de segurança | Políticas Locais | Política de Auditoria. No painel direito, defina "Acesso ao objeto de auditoria" e "Acompanhamento do processo de auditoria" para ativar o Sucesso. (Não faz muito sentido auditar em caso de falha, já que tentativas de acesso malsucedidas não resultarão na movimentação de um arquivo!)

OU - se você estiver executando o Windows 7 ou posterior, poderá optar por fazê-lo desta forma: No painel esquerdo, navegue até Configuração do Computador | Configurações do Windows | Configurações de segurança | Política de Auditoria Avançada | Políticas de auditoria do sistema . Em "Acompanhamento detalhado", habilite "Criação de processo de auditoria" para obter sucesso. Em "Acesso a objetos", habilite "Sistema de arquivos de auditoria" para obter sucesso. Este método gerará um pouco menos de entradas falsas em seu log de eventos. NOTA: Se algo estiver definido como algo diferente de "Não configurado" em "Política de auditoria avançada", é melhor fazer alterações subsequentes aqui também, como fazer configurações aqui e na "Política de auditoria" menos detalhada descrita no parágrafo anterior pode produzir resultados estranhos.

Próximo: No Explorer, vá para o diretório de origem da movimentação. Clique com o botão direito em um diretório, selecione Propriedades, depois na guia Segurança e clique em "Avançado" (quase tudo que vale a pena está sempre na guia ou botão "Avançado"...). Clique na guia "Auditoria", depois em "Continuar" e depois em "Adicionar". A caixa de diálogo resultante será semelhante àquela para adicionar uma entrada a uma "lista de permissões", mas neste caso, a(s) entrada(s) que você criar determinarão que as operações indicadas serão auditadas - ou seja, entradas de log de auditoria serão criadas para eles.

Para um "Principal", use o grupo "Todos". Para "Tipo", você provavelmente deseja apenas "sucesso" (novamente, tentativas fracassadas obviamente não moverão nenhum arquivo). "Aplica-se a:" selecione "Esta pasta, subarquivos e arquivos". Selecione todas as "permissões avançadas".

Repita para o diretório de destino.

Se o arquivo em questão já existir no diretório de origem, você poderá ativar a auditoria apenas para esse arquivo, e não para o diretório em que ele está (mas habilitá-la também para o diretório de destino).

Todas as tentativas bem-sucedidas de acesso ao(s) diretório(s) ou ao arquivo, se você tiver habilitado a auditoria nesse nível, agora serão refletidas no log de segurança.

Para visualizar as entradas de auditoria, vá para Gerenciamento do Computador, Ferramentas do Sistema | Visualizador de Eventos, Logs do Windows e selecione o log de Segurança. Correlacione as entradas de log para acesso ao arquivo/diretório com as entradas de criação do processo.

As entradas de auditoria geralmente levam um ou dois minutos para aparecer no Visualizador de Eventos. Não tenha medo de usar o Atualizar algumas vezes.

nota: as entradas do log de auditoria de segurança para "acesso a objetos" (incluindo arquivos) indicam apenas os horários em que os objetos foramabertopara acesso, não os horários em que foram efetivamente operados e nem as operações específicas.

Por exemplo: se alguém abre um arquivo para acesso de leitura e gravação, isso gera uma entrada de auditoria. As leituras e gravações reais subsequentes no arquivo fazemnãogerar entradas de auditoria. E será impossível saber, a partir do log de auditoria, se o arquivo foi realmente gravado - apenas se ele foi aberto de forma a permitir a gravação. Para obter esses detalhes, você terá que usar o Process Monitor conforme descrito por Mike Nakis.

informação relacionada