Envie um email sempre que o arquivo for excluído da pasta compartilhada no Windows 7

0

Estou executando um software em vários computadores no meu local de trabalho e o software pode executar diferentes arquivos de áudio e vídeo armazenados em uma pasta compartilhada em um computador central. O software é executado no Windows 7 e cada pessoa na minha empresa pode adicionar ou remover arquivos da pasta compartilhada, mas esse privilégio coloca os dados em risco. Eu estava pensando em criar um alerta de e-mail para mim sempre que um arquivo é excluído. Eu escrevi um script do windows powershell para enviar e-mails do servidor smtp, mas como conectá-lo ao evento de exclusão de arquivos ou pastas em uma pasta compartilhada específica?

    
por azmuhak 09.06.2014 / 04:37

1 resposta

2

Você pode usar o IO.FileSystemWatcher para acionar ações em eventos do sistema de arquivos.

Primeiro, você deseja definir o caminho da pasta:

$watchFolderPath = "C:\Users\Public\Documents"
$watchFolderFilter = "*.*"

Em seguida, você inicia o observador de arquivos:

$watcher = New-Object IO.FileSystemWatcher $watchFolderPath, $watchFolderFilter -Property @{
    IncludeSubdirectories = $true
    NotifyFilter = [IO.NotifyFilters]'FileName, LastWrite'
    }

Em seguida, você configura o evento para objetos excluídos:

$onDeleted = Register-ObjectEvent $watcher Deleted -SourceIdentifier FileDeleted -Action {
    $FileName = $Event.SourceEventArgs.FullPath
    $messageBody = "File '"$FileName'" was deleted."
    Send-MailMessage -To [email protected] -Subject "File Deleted" -Body $messageBody -SmtpServer mail.mydomain.com
    }

Para remover manualmente o evento, você pode usar isto:

Unregister-Event -SourceIdentifier FileDeleted
    
por 09.06.2014 / 16:25