Quantcast
Channel: Windows PowerShell Forum
Viewing all articles
Browse latest Browse all 2314

FileSystemWatcher Mail verschicken wenn Ordnerstruktur sich verändert

$
0
0

Hallo zusammen:)

Ich habe die Aufgabe bekommen, Verzeichnisse zu überwachen. Nun habe ich eine Vorlage genommen (FileSystemWatcher). Nun möchte ich, das wenn sich ein Ordner verschiebt oder gelöscht wird, eine Mail an mich verschickt wird. Komme nicht auf die Lösung. Könntet ihr mir einige Tipps geben der zum Ziel führt?

Der jetztige Quellcode:

#Überwachungsscript
#Autor: JuiiceeHead
#Datum: 25.11.2016

#------------------- Ordner überwachen --------------------
$folder = 'C:\Users\PC18\Desktop\Stecher' #Verzeichnis das überwacht wird
$filter = '*.*'  #Filter einsetzen (zb nur bilder(.png))
 
#Unterordner auch überwachen?                          
$fsw = New-Object IO.FileSystemWatcher $folder, $filter -Property @{IncludeSubdirectories = $false;NotifyFilter = [IO.NotifyFilters]'FileName, LastWrite'}
 
# Here, all three events are registerd.  You need only subscribe to events that you need:
 
Register-ObjectEvent $fsw Created -SourceIdentifier FileCreated -Action {
$name = $Event.SourceEventArgs.Name
$changeType = $Event.SourceEventArgs.ChangeType
$timeStamp = $Event.TimeGenerated
Write-Host "The file '$name' was $changeType at $timeStamp" -fore green
Out-File -FilePath C:\Users\PC18\Desktop\Outlog.txt -Append -InputObject "The file '$name' was $changeType at $timeStamp"}
 
Register-ObjectEvent $fsw Deleted -SourceIdentifier FileDeleted -Action {
$name = $Event.SourceEventArgs.Name
$changeType = $Event.SourceEventArgs.ChangeType
$timeStamp = $Event.TimeGenerated
Write-Host "The file '$name' was $changeType at $timeStamp" -fore red
Out-File -FilePath C:\Users\PC18\Desktop\Outlog.txt -Append -InputObject "The file '$name' was $changeType at $timeStamp"}
 
Register-ObjectEvent $fsw Changed -SourceIdentifier FileChanged -Action {
$name = $Event.SourceEventArgs.Name
$changeType = $Event.SourceEventArgs.ChangeType
$timeStamp = $Event.TimeGenerated
Write-Host "The file '$name' was $changeType at $timeStamp" -fore white
Out-File -FilePath C:\Users\PC18\Desktop\Outlog.txt -Append -InputObject "The file '$name' was $changeType at $timeStamp"}

#---------- Mail senden --------------
$SMTPServer = "smtp.gmail.com"
$SMTPPort = "25"
$Username = "E-Mail Adresse"
$Password = "PW"
#$Dateiname = "C:\Users\PC18\Desktop\Outlog.txt"
$file = "C:\Users\PC18\Desktop\Outlog.txt"
$attatchment = New-Object System.Net.Mail.Attachment($file)
$to = "Empfänger"
$subject = "Ueberwachung Ordner"
$body = (Get-Date).ToShortTimeString()
$message = New-Object System.Net.Mail.MailMessage
$message.subject = $subject
$message.body = $body
$message.to.add($to)
#$message.Attachments.Add($att)
$message.Attachments.Add($attatchment)
$message.from = $Username
$smtp = New-Object System.Net.Mail.SmtpClient($SMTPServer, $SMTPPort);
$smtp.EnableSSL = $true
$smtp.Credentials = New-Object System.Net.NetworkCredential($Username, $Password);
$smtp.send($message)

Vielen Dank


Viewing all articles
Browse latest Browse all 2314


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>