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