Seite 5 von 5
Re: robocopy email benachrichtigung
Verfasst: 2. Okt 2014, 17:57
von Coolzero
So,
ich hab die Datei jetzt mal so abgeändert, ist das so richtig, das jetzt die erste und die letzte Mail ohne Anhang kommen?
Code: Alles auswählen
# **************************************************************
# * PowserShell Script *
# **************************************************************
# * Script: *
# * PowerShell Robocopy script with e-mail notification *
# * e-mail notification with SSL support *
# **************************************************************
# * Autor: *
# * D. Stastka, 2011-12-28 *
# **************************************************************
# Variables Backup
$SourceFolder = "F:\"
$DestinationFolder = "\\SERVER-BACKUP\Server-Backup\Sicherung_F"
$Logfile = "C:\Logs\Backup.log" + (Get-Date).tostring("yyyy-MM-dd") + "_Sicherung_F" + ".log"
# Variables Email notification
$EmailFrom = "@web.de"
$EmailTo = "@googlemail.com"
$EmailBody = "Robocopy completed successfully."
$EmailSubject = "Robocopy Job"
$SMTPServer = "smtp.web.de"
$SMTPPort = "587"
$Username = "0815"
$Password = "4711"
# Mirror Folder with Robocopy
Robocopy $SourceFolder $DestinationFolder /xd "System Volume Information" $recycle.bin /xf pagefile.sys NTUSER.Dat /mir /a-:sh /fft /LOG:$Logfile /NDL /TEE
# Send E-mail message with log file attachment
$Message = New-Object Net.Mail.MailMessage($EmailFrom, $EmailTo, $EmailSubject, $EmailBody)
$Message.Attachments.Add($Attachment)
$SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, $SMTPPort)
If (-not ($SMTPPort -eq "25")){
$SMTPClient.EnableSsl = $true;
$SMTPClient.Credentials = New-Object System.Net.NetworkCredential($Username, $Password);
}
$SMTPClient.Send($Message)
# Variables Email notification
$EmailFrom = "@web.de"
$EmailTo = "@googlemail.com"
$EmailBody = "Robocopy completed successfully. See attached log file for details"
$EmailSubject = "Robocopy Job"
$SMTPServer = "smtp.web.de"
$SMTPPort = "587"
$Username = "0815"
$Password = "4711"
# Mirror Folder with Robocopy
Robocopy $SourceFolder $DestinationFolder /xd "System Volume Information" $recycle.bin /xf pagefile.sys NTUSER.Dat /mir /a-:sh /fft /LOG:$Logfile /NDL /TEE
# Send E-mail message with log file attachment
$Message = New-Object Net.Mail.MailMessage($EmailFrom, $EmailTo, $EmailSubject, $EmailBody)
$Attachment = New-Object Net.Mail.Attachment($Logfile, 'text/plain')
$Message.Attachments.Add($Attachment)
$SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, $SMTPPort)
If (-not ($SMTPPort -eq "25")){
$SMTPClient.EnableSsl = $true;
$SMTPClient.Credentials = New-Object System.Net.NetworkCredential($Username, $Password);
}
$SMTPClient.Send($Message)
# Variables Email notification
$EmailFrom = "@web.de"
$EmailTo = "@googlemail.com"
$EmailBody = "Robocopy completed successfully."
$EmailSubject = "Robocopy Job"
$SMTPServer = "smtp.web.de"
$SMTPPort = "587"
$Username = "0815"
$Password = "4711"
# Mirror Folder with Robocopy
Robocopy $SourceFolder $DestinationFolder /xd "System Volume Information" $recycle.bin /xf pagefile.sys NTUSER.Dat /mir /a-:sh /fft /LOG:$Logfile /NDL /TEE
# Send E-mail message with log file attachment
$Message = New-Object Net.Mail.MailMessage($EmailFrom, $EmailTo, $EmailSubject, $EmailBody)
$Message.Attachments.Add($Attachment)
$SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, $SMTPPort)
If (-not ($SMTPPort -eq "25")){
$SMTPClient.EnableSsl = $true;
$SMTPClient.Credentials = New-Object System.Net.NetworkCredential($Username, $Password);
}
$SMTPClient.Send($Message)
# EOF
Der Job läuft gerade, bin mal aufs ergebniss gespannt
Re: robocopy email benachrichtigung
Verfasst: 2. Okt 2014, 18:55
von Nobby1805
und warum rufst du Robocopy auch 3x auf ?
M.E. werden alle 3 Mails mit Attchment gesendet: $Message.Attachments.Add($Attachment)
Re: robocopy email benachrichtigung
Verfasst: 3. Okt 2014, 11:46
von Coolzero
Hi,
das hier
Code: Alles auswählen
$Attachment = New-Object Net.Mail.Attachment($Logfile, 'text/plain')
steht doch nur in dem mittleren bereich, Also wird der Anhang doch nur mit der 2 Mailgeschickt oder seh ich das falsch?
Die beiden Robocopy aufrufe welche zuviel waren hab ich jetzt aus kommentiert
Re: robocopy email benachrichtigung
Verfasst: 3. Okt 2014, 12:15
von Nobby1805
und was ist gestern herausgekommen ?
Damit weist du eine Referenz auf den Logfile der Variablen $Attachment zu ... mit der anderen Anweisung wird die Mail konfiguriert ...
was beim ersten Aufruf passiert wenn die Variable leer ist kann ich nicht sagen (nie probiert) ... aber beim 3. Aufruf steht genau dasselbe (noch) drin wie beim 2. Aufruf
Re: robocopy email benachrichtigung
Verfasst: 4. Okt 2014, 14:32
von Coolzero
Habs jetzt so geändert, ist das jetzt richtig?
Code: Alles auswählen
# **************************************************************
# * PowserShell Script *
# **************************************************************
# * Script: *
# * PowerShell Robocopy script with e-mail notification *
# * e-mail notification with SSL support *
# **************************************************************
# * Autor: *
# * D. Stastka, 2011-12-28 *
# **************************************************************
# Variables Backup
$SourceFolder = "F:\"
$DestinationFolder = "\\SERVER-BACKUP\Server-Backup\Sicherung_F"
$Logfile = "C:\Logs\Backup.log" + (Get-Date).tostring("yyyy-MM-dd") + "_Sicherung_F" + ".log"
# Variables Email notification
$EmailFrom = "@web.de"
$EmailTo = "@googlemail.com"
$EmailBody = "Robocopy completed successfully."
$EmailSubject = "Robocopy Job"
$SMTPServer = "smtp.web.de"
$SMTPPort = "587"
$Username = "0815"
$Password = "4711"
# Mirror Folder with Robocopy
Robocopy $SourceFolder $DestinationFolder /xd "System Volume Information" $recycle.bin /xf pagefile.sys NTUSER.Dat /mir /a-:sh /fft /LOG:$Logfile /NDL /TEE
# Send E-mail message with log file attachment
$Message = New-Object Net.Mail.MailMessage($EmailFrom, $EmailTo, $EmailSubject, $EmailBody)
#$Message.Attachments.Add($Attachment)
$SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, $SMTPPort)
If (-not ($SMTPPort -eq "25")){
$SMTPClient.EnableSsl = $true;
$SMTPClient.Credentials = New-Object System.Net.NetworkCredential($Username, $Password);
}
$SMTPClient.Send($Message)
# Variables Email notification
$EmailFrom = "@web.de"
$EmailTo = "@googlemail.com"
$EmailBody = "Robocopy completed successfully. See attached log file for details"
$EmailSubject = "Robocopy Job"
$SMTPServer = "smtp.web.de"
$SMTPPort = "587"
$Username = "0815"
$Password = "4711"
# Mirror Folder with Robocopy
# Robocopy $SourceFolder $DestinationFolder /xd "System Volume Information" $recycle.bin /xf pagefile.sys NTUSER.Dat /mir /a-:sh /fft /LOG:$Logfile /NDL /TEE
# Send E-mail message with log file attachment
$Message = New-Object Net.Mail.MailMessage($EmailFrom, $EmailTo, $EmailSubject, $EmailBody)
$Attachment = New-Object Net.Mail.Attachment($Logfile, 'text/plain')
$Message.Attachments.Add($Attachment)
$SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, $SMTPPort)
If (-not ($SMTPPort -eq "25")){
$SMTPClient.EnableSsl = $true;
$SMTPClient.Credentials = New-Object System.Net.NetworkCredential($Username, $Password);
}
$SMTPClient.Send($Message)
# Variables Email notification
$EmailFrom = "@web.de"
$EmailTo = "@googlemail.com"
$EmailBody = "Robocopy completed successfully."
$EmailSubject = "Robocopy Job"
$SMTPServer = "smtp.web.de"
$SMTPPort = "587"
$Username = "0815"
$Password = "4711"
# Mirror Folder with Robocopy
# Robocopy $SourceFolder $DestinationFolder /xd "System Volume Information" $recycle.bin /xf pagefile.sys NTUSER.Dat /mir /a-:sh /fft /LOG:$Logfile /NDL /TEE
# Send E-mail message with log file attachment
$Message = New-Object Net.Mail.MailMessage($EmailFrom, $EmailTo, $EmailSubject, $EmailBody)
# $Message.Attachments.Add($Attachment)
$SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, $SMTPPort)
If (-not ($SMTPPort -eq "25")){
$SMTPClient.EnableSsl = $true;
$SMTPClient.Credentials = New-Object System.Net.NetworkCredential($Username, $Password);
}
$SMTPClient.Send($Message)
# EOF
Bekomme aber dann diesen Fehler:
Code: Alles auswählen
Die Benennung "**************************************************************" wurde nicht als Name eines Cmdlet, einer Funktion, einer Skriptdatei oder eines ausführbaren Programms erkannt. Überprüfen Sie die Schreibweise des Namens, oder
Sie den Vorgang.
Bei C:\Logs\Robocopy\Sicherung_F.ps1:1 Zeichen:66
+ ************************************************************** <<<<
+ CategoryInfo : ObjectNotFound: (***************...***************:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
Re: robocopy email benachrichtigung
Verfasst: 4. Okt 2014, 17:14
von Nobby1805
die Fehlermeldung kommt nicht von dem Code aus der 1. Listbox ... Zeile 1 Zeichen 66 .. das sieht so aus, als ob der # vorne in der 1. Zeile fehlt
das Script funktioniert bei mir .. wobei du dir den 2. und den 3. Zuweisungsblock für die Mail-Parameter auch sparen kannst, die Werte sind ja identisch
Code: Alles auswählen
# Variables Email notification
$EmailFrom = "@web.de"
$EmailTo = "@googlemail.com"
$EmailBody = "Robocopy completed successfully. See attached log file for details"
$EmailSubject = "Robocopy Job"
$SMTPServer = "smtp.web.de"
$SMTPPort = "587"
$Username = "0815"
$Password = "4711"
du hast immer noch nicht gesagt, was bei dem Test vom Donnerstag heraus gekommen ist
Re: robocopy email benachrichtigung
Verfasst: 6. Okt 2014, 20:41
von Coolzero
Also ich habe jetzt nochmal, den das ganz normale Powershell skript manuell gestartet, kann bekomme ich auch die Mail, heute nacht wenn es über die Aufgabenplanung gestartet wurde, kam wieder keine, allerdings war ein Log da, also die Sicherung ist gelaufen nur der Log nicht per Mail verschickt.
Hab dann nochmal mein skript von oben laufen gelassen:
Code: Alles auswählen
# **************************************************************
# * PowserShell Script *
# **************************************************************
# * Script: *
# * PowerShell Robocopy script with e-mail notification *
# * e-mail notification with SSL support *
# **************************************************************
# * Autor: *
# * D. Stastka, 2011-12-28 *
# **************************************************************
# Variables Backup
$SourceFolder = "F:\"
$DestinationFolder = "\\SERVER-BACKUP\Server-Backup\Sicherung_F"
$Logfile = "C:\Logs\Backup.log" + (Get-Date).tostring("yyyy-MM-dd") + "_Sicherung_F" + ".log"
# Variables Email notification
$EmailFrom = "@web.de"
$EmailTo = "@googlemail.com"
$EmailBody = "Robocopy completed successfully."
$EmailSubject = "Robocopy Job"
$SMTPServer = "smtp.web.de"
$SMTPPort = "587"
$Username = "0815"
$Password = "4711"
# Mirror Folder with Robocopy
Robocopy $SourceFolder $DestinationFolder /xd "System Volume Information" $recycle.bin /xf pagefile.sys NTUSER.Dat /mir /a-:sh /fft /LOG:$Logfile /NDL /TEE
# Send E-mail message with log file attachment
$Message = New-Object Net.Mail.MailMessage($EmailFrom, $EmailTo, $EmailSubject, $EmailBody)
$Message.Attachments.Add($Attachment)
$SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, $SMTPPort)
If (-not ($SMTPPort -eq "25")){
$SMTPClient.EnableSsl = $true;
$SMTPClient.Credentials = New-Object System.Net.NetworkCredential($Username, $Password);
}
$SMTPClient.Send($Message)
# Variables Email notification
$EmailFrom = "@web.de"
$EmailTo = "@googlemail.com"
$EmailBody = "Robocopy completed successfully. See attached log file for details"
$EmailSubject = "Robocopy Job"
$SMTPServer = "smtp.web.de"
$SMTPPort = "587"
$Username = "0815"
$Password = "4711"
# Mirror Folder with Robocopy
Robocopy $SourceFolder $DestinationFolder /xd "System Volume Information" $recycle.bin /xf pagefile.sys NTUSER.Dat /mir /a-:sh /fft /LOG:$Logfile /NDL /TEE
# Send E-mail message with log file attachment
$Message = New-Object Net.Mail.MailMessage($EmailFrom, $EmailTo, $EmailSubject, $EmailBody)
$Attachment = New-Object Net.Mail.Attachment($Logfile, 'text/plain')
$Message.Attachments.Add($Attachment)
$SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, $SMTPPort)
If (-not ($SMTPPort -eq "25")){
$SMTPClient.EnableSsl = $true;
$SMTPClient.Credentials = New-Object System.Net.NetworkCredential($Username, $Password);
}
$SMTPClient.Send($Message)
# Variables Email notification
$EmailFrom = "@web.de"
$EmailTo = "@googlemail.com"
$EmailBody = "Robocopy completed successfully."
$EmailSubject = "Robocopy Job"
$SMTPServer = "smtp.web.de"
$SMTPPort = "587"
$Username = "0815"
$Password = "4711"
# Mirror Folder with Robocopy
Robocopy $SourceFolder $DestinationFolder /xd "System Volume Information" $recycle.bin /xf pagefile.sys NTUSER.Dat /mir /a-:sh /fft /LOG:$Logfile /NDL /TEE
# Send E-mail message with log file attachment
$Message = New-Object Net.Mail.MailMessage($EmailFrom, $EmailTo, $EmailSubject, $EmailBody)
$Message.Attachments.Add($Attachment)
$SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, $SMTPPort)
If (-not ($SMTPPort -eq "25")){
$SMTPClient.EnableSsl = $true;
$SMTPClient.Credentials = New-Object System.Net.NetworkCredential($Username, $Password);
}
$SMTPClient.Send($Message)
# EOF
Dann bekomme ich diesen Fehler:
Code: Alles auswählen
Beendet: Mon Oct 06 20:37:17 2014
Ausnahme beim Aufrufen von "Add" mit 1 Argument(en): "Der Wert darf nicht NULL sein.
Parametername: item"
Bei C:\Logs\Robocopy\Sicherung_F.ps1:30 Zeichen:25
+ $Message.Attachments.Add <<<< ($Attachment)
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : DotNetMethodException
Bekomme dann 3 Emails, 2 mit Log und eine ohne.
Ich werd jetzt nochmal auf die Ausführung über die Aufgabenplanung warten, mal sehn ob dann auch was kommt. Beim Manuellen starten klappte es ja immer
Re: robocopy email benachrichtigung
Verfasst: 6. Okt 2014, 22:57
von Nobby1805
Coolzero hat geschrieben:Dann bekomme ich diesen Fehler:
Code: Alles auswählen
Beendet: Mon Oct 06 20:37:17 2014
Ausnahme beim Aufrufen von "Add" mit 1 Argument(en): "Der Wert darf nicht NULL sein.
Parametername: item"
Bei C:\Logs\Robocopy\Sicherung_F.ps1:30 Zeichen:25
+ $Message.Attachments.Add <<<< ($Attachment)
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : DotNetMethodException
ist doch klar ... du versuchst der Mail ein Attachment hinzu zu fügen, hast aber $Attachment vorher gar nicht definiert ... die Zeile muss an dieser Stelle komplett ausdokumentiert werden
Re: robocopy email benachrichtigung
Verfasst: 13. Okt 2014, 08:38
von Coolzero
Heute Nacht habe ich wie es sein sollte 3 Mails zur Sichrung Laufwerk F bekommen. Eine ohne Anhang, eine mit und wieder eine ohne ...
Re: robocopy email benachrichtigung
Verfasst: 13. Okt 2014, 10:22
von Nobby1805
Dann würde ich das jetzt mal eine Weile so lassen ... so wie ich deine ursprüngliche Problembeschreibung in Erinnerung habe ist ja die mit Anhang nicht gekommen, nie oder manchmal nicht ?
Re: robocopy email benachrichtigung
Verfasst: 13. Okt 2014, 18:38
von Coolzero
Ist ja schon was länger her, ich meine es wäre nie gekommen.
Verstehen tu ich es trotzdem nicht...
Re: robocopy email benachrichtigung
Verfasst: 26. Jan 2015, 08:32
von Coolzero
Hi,
ich muss nochmal fragen,
hab immer noch das Problem das wenn ich zuviele Datenbewegungen hab das Log File zu gross wird so das ich die Email zwar am PC öffnen kann (wird also richtig versendet) aber mein Iphone das nicht schafft.
Gibt es eine möglichkeit den Log der versendet wird einzuschränken, das z.b. nicht jeder Fortschritt wie:
So das ich z.b. nur eine "Summen" Info bekomme, "Datei X kopiert" oder ähnliches.
Würde den Log auch übersichtlicher machen
Danke
Re: robocopy email benachrichtigung
Verfasst: 26. Jan 2015, 08:49
von Nobby1805
Google ist dein Freund ... aus dem 1. Suchergebnis ...
http://www.wintotal.de/robocopy-der-kopier-gigant/
Die normale Logfunktion von Robocopy schreibt allerdings jegliche Rückmeldung in die Logdatei, was diese sehr unübersichtlich gestaltet. Natürlich gibt es auch hier Parameter, die Abhilfe schaffen. Wenn noch ein /NP ergänzt wird, werden keine Fortschrittsinformationen in der Logdatei protokolliert. Mit /NFL werden Dateinamen nicht protokolliert, mit /NDL werden auch keine Verzeichnisse in die Logdatei eingetragen. Mit dem Parameter /NJH wird kein Auftragsheader in der Protokolldatei erzeugt, mit /NJS auch keine Zusammenfassung. Probieren Sie mit diesen Parametern am besten ein wenig aus.
Re: robocopy email benachrichtigung
Verfasst: 24. Mai 2015, 14:45
von Coolzero
Hi, was bedeutet im Log dann z.b. dieser Eintrag?
wenn es eine neue Datei wärewürde es ja so aussehen
Neue Datei 2 D:\ServerFolders\Anwendungen\Apple\