Seite 2 von 5

Re: robocopy email benachrichtigung

Verfasst: 24. Apr 2014, 23:16
von Nobby1805
und dann ist auch noch ein Fehler in der Prozedur

Code: Alles auswählen

If (-not ($SMTPPort -eq "25")){
danach funktioniert es bei mir

Re: robocopy email benachrichtigung

Verfasst: 25. Apr 2014, 02:26
von Coolzero
Also das Skript Ansich funktioniert bei mir, hatte das vorher schon mal eingestellt, aber der Fehler in der Prozedur ist mir nicht Aufgefallen, den werde ich nachher mal korrigieren und dann mal sehen , danke für den tip

Re: robocopy email benachrichtigung

Verfasst: 26. Apr 2014, 14:17
von Coolzero
Auch nach der änderung

Code: Alles auswählen

If (-not ($SMTPPort -eq "25")){
bekomme ich keine Mail.....:-(

Re: robocopy email benachrichtigung

Verfasst: 26. Apr 2014, 14:17
von Coolzero
Auch nach der änderung

Code: Alles auswählen

If (-not ($SMTPPort -eq "25")){
bekomme ich keine Mail.....:-(

Re: robocopy email benachrichtigung

Verfasst: 26. Apr 2014, 14:36
von Nobby1805
Dann kommentier doch mal den Aufruf von Robocopy aus und führ das Script Schritt für Schritt im Debug-Modus aus ... wie gesagt, bei mir funktioniert es (gmx)

Re: robocopy email benachrichtigung

Verfasst: 26. Apr 2014, 14:48
von Coolzero
Nobby1805 hat geschrieben:Dann kommentier doch mal den Aufruf von Robocopy aus und führ das Script Schritt für Schritt im Debug-Modus aus ... wie gesagt, bei mir funktioniert es (gmx)
Wie mache ich das genau?
Ich hab gleichen Einstellungen jetzt mal in den "Warenungsbenarchitungen per Email" in der Meldungsanzeige vom WHS eingegen und damit funktioniert es problemlos

Re: robocopy email benachrichtigung

Verfasst: 26. Apr 2014, 15:45
von Nobby1805
rechte Mausklick auf die .ps1-Datei > Bearbeiten
vor die Zeile "cmd /k Robocopy ..." ein # zum Auskommentieren
auf die erste Zeile die mit rotem Text anfängt klicken ($ SourceFolder ...) und mit F9 einen Haltepunkt setzen
mit F5 das Skript starten
mit F11 im Einzelschritt das Skript ausführen und beobachten was passiert

Re: robocopy email benachrichtigung

Verfasst: 26. Apr 2014, 17:01
von Coolzero
Also ein Problem liegt dann wohl am WHS 2011, denn wenn ich dort mit rechts auf dir ps1 klicke gibts kein bearbeiten.

Hab das Skript jetzt mal auf meinem Win7 rechner debugt, ab hier

Code: Alles auswählen

$Message = New-Object Net.Mail.MailMessage($EmailFrom, $EmailTo, $EmailSubject, $EmailBody)
gehen die Meldungen los:

Code: Alles auswählen

PS E:\> E:\Sicherung_D2.ps1
[DBG]>>> Treffer Zeilenhaltepunkt bei "E:\Sicherung_D2.ps1:12"
[DBG]>>> Angehalten bei: if ($_.FullyQualifiedErrorId -ne "NativeCommandErrorMessage" -and $ErrorView -ne "CategoryView") {
[DBG]>>> Angehalten bei: $myinv = $_.InvocationInfo
[DBG]>>> Angehalten bei: switch -regex ( & { Set-StrictMode -Version 1; $myinv.MyCommand.CommandType } )
[DBG]>>> Angehalten bei: switch -regex ( & { Set-StrictMode -Version 1; $myinv.MyCommand.CommandType } )
[DBG]>>> Angehalten bei: switch -regex ( & { Set-StrictMode -Version 1; $myinv.MyCommand.CommandType } )
[DBG]>>> Angehalten bei: if ( & { Set-StrictMode -Version 1; $myinv.MyCommand.Name } )
[DBG]>>> Angehalten bei: if ( & { Set-StrictMode -Version 1; $myinv.MyCommand.Name } )
[DBG]>>> Angehalten bei: if ( & { Set-StrictMode -Version 1; $myinv.MyCommand.Name } )
[DBG]>>> Angehalten bei: $myinv.MyCommand.Name + " : "; break;
[DBG]>>> Angehalten bei: $myinv.MyCommand.Name + " : "; break;
[DBG]>>> Angehalten bei: if ($_.FullyQualifiedErrorId -eq "NativeCommandErrorMessage") {
[DBG]>>> Angehalten bei: if ($_.InvocationInfo) {
[DBG]>>> Angehalten bei: $posmsg = $_.InvocationInfo.PositionMessage
[DBG]>>> Angehalten bei: if ( & { Set-StrictMode -Version 1; $_.PSMessageDetails } ) {
[DBG]>>> Angehalten bei: if ( & { Set-StrictMode -Version 1; $_.PSMessageDetails } ) {
[DBG]>>> Angehalten bei: if ( & { Set-StrictMode -Version 1; $_.PSMessageDetails } ) {
[DBG]>>> Angehalten bei: & { Set-StrictMode -Version 1; $this.Exception.InnerException.PSMessageDetails }
[DBG]>>> Angehalten bei: & { Set-StrictMode -Version 1; $this.Exception.InnerException.PSMessageDetails }
[DBG]>>> Angehalten bei: & { Set-StrictMode -Version 1; $this.Exception.InnerException.PSMessageDetails }
[DBG]>>> Angehalten bei: $indent = 4
[DBG]>>> Angehalten bei: $width = $host.UI.RawUI.BufferSize.Width - $indent - 2
[DBG]>>> Angehalten bei: $indentString = "+ CategoryInfo          : " + $_.CategoryInfo
[DBG]>>> Angehalten bei: $posmsg += "`n"
[DBG]>>> Angehalten bei: foreach($line in @($indentString -split "(.{$width})")) { if($line) { $posmsg += (" " * $indent + $line) } }
[DBG]>>> Angehalten bei: foreach($line in @($indentString -split "(.{$width})")) { if($line) { $posmsg += (" " * $indent + $line) } }
[DBG]>>> Angehalten bei: foreach($line in @($indentString -split "(.{$width})")) { if($line) { $posmsg += (" " * $indent + $line) } }
[DBG]>>> Angehalten bei: foreach($line in @($indentString -split "(.{$width})")) { if($line) { $posmsg += (" " * $indent + $line) } }
[DBG]>>> Angehalten bei: $indentString = "+ FullyQualifiedErrorId : " + $_.FullyQualifiedErrorId
[DBG]>>> Angehalten bei: $posmsg += "`n"
[DBG]>>> Angehalten bei: foreach($line in @($indentString -split "(.{$width})")) { if($line) { $posmsg += (" " * $indent + $line) } }

[DBG]>>> Angehalten bei: if ($ErrorView -eq "CategoryView") {
[DBG]>>> Angehalten bei: elseif (! $_.ErrorDetails -or ! $_.ErrorDetails.Message) {
[DBG]>>> Angehalten bei: $_.Exception.Message + $posmsg + "`n "
New-Object : Ausnahme beim Aufrufen von ".ctor" mit 2 Argument(en):  "Ein Teil des Pfades "C:\Logs\Backup.log2014-04-26.log" konnte nicht gefunden werden."
Bei E:\Sicherung_D2.ps1:30 Zeichen:25
+ $Attachment = New-Object <<<<  Net.Mail.Attachment($Logfile, 'text/plain')
    + CategoryInfo          : InvalidOperation: (:) [New-Object], MethodInvocationException
    + FullyQualifiedErrorId : ConstructorInvokedThrowException,Microsoft.PowerShell.Commands.NewObjectCommand
[DBG]>>> Angehalten bei: if ($_.FullyQualifiedErrorId -ne "NativeCommandErrorMessage" -and $ErrorView -ne "CategoryView") {
[DBG]>>> Angehalten bei: $myinv = $_.InvocationInfo
[DBG]>>> Angehalten bei: switch -regex ( & { Set-StrictMode -Version 1; $myinv.MyCommand.CommandType } )
[DBG]>>> Angehalten bei: switch -regex ( & { Set-StrictMode -Version 1; $myinv.MyCommand.CommandType } )
[DBG]>>> Angehalten bei: switch -regex ( & { Set-StrictMode -Version 1; $myinv.MyCommand.CommandType } )
[DBG]>>> Angehalten bei: if ( & { Set-StrictMode -Version 1; $myinv.MyCommand.Name } )
[DBG]>>> Angehalten bei: if ( & { Set-StrictMode -Version 1; $myinv.MyCommand.Name } )
[DBG]>>> Angehalten bei: if ( & { Set-StrictMode -Version 1; $myinv.MyCommand.Name } )
[DBG]>>> Angehalten bei: if ($_.FullyQualifiedErrorId -eq "NativeCommandErrorMessage") {
Ausnahme beim Aufrufen von "Add" mit 1 Argument(en):  "Der Wert darf nicht NULL sein.
Parametername: item"
Bei E:\Sicherung_D2.ps1:31 Zeichen:25
+ $Message.Attachments.Add <<<< ($Attachment)
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : DotNetMethodException
 

Ok, liegt nicht am Skript sondern am WHS2011, wenn ich dasSkript untern Win7 ausführe bekomme ich die Email, was kann das sein?

Re: robocopy email benachrichtigung

Verfasst: 26. Apr 2014, 18:13
von Nobby1805
ruf mal (auf W7 und WHS) in einem DOS-Fenster PowerShell auf und gib dann das Kommando $PSVersionTable

bei mir in beiden Fällen

Code: Alles auswählen

Name                           Value
----                           -----
CLRVersion                     2.0.50727.5477
BuildVersion                   6.1.7601.17514
PSVersion                      2.0
WSManStackVersion              2.0
PSCompatibleVersions           {1.0, 2.0}
SerializationVersion           1.1.0.1
PSRemotingProtocolVersion      2.1
scheint ein Grundsatzproblem von Serverversionen zu sein ... schau mal hier http://technet.microsoft.com/de-de/libr ... 19514.aspx

Re: robocopy email benachrichtigung

Verfasst: 26. Apr 2014, 18:35
von Coolzero
Win7:

Code: Alles auswählen

Name                           Value
----                           -----
CLRVersion                     2.0.50727.5477
BuildVersion                   6.1.7601.17514
PSVersion                      2.0
WSManStackVersion              2.0
PSCompatibleVersions           {1.0, 2.0}
SerializationVersion           1.1.0.1
PSRemotingProtocolVersion      2.1
WHS2011

Code: Alles auswählen

Name                           Value
----                           -----
CLRVersion                     2.0.50727.5477
BuildVersion                   6.1.7601.17514
PSVersion                      2.0
WSManStackVersion              2.0
PSCompatibleVersions           {1.0, 2.0}
SerializationVersion           1.1.0.1
PSRemotingProtocolVersion      2.1
Bei mir auch, ich hab, jetzt mal unter meinem WHS das fehlende das Feature
Windows PowerShell Integrated Scripting Environment
, das über den Server-Manger nachinstalliert.
Aber leider gehts trotzdem nicht, unter meinem Win7 Rechner kommt die Email, unterm WHS nicht

Seltsam ist das ich beim debuggen unter dem WHS keinen Fehler bekomme, aber unterm Win7 schon.....
Hoffe es hat noch einer eine idee

Danke für die Hilfe

Re: robocopy email benachrichtigung

Verfasst: 27. Apr 2014, 13:09
von Coolzero
Habs jetzt nochmal komplett debugt, dann bekomme ich diese Meldungen:

Code: Alles auswählen

PS C:\Windows\system32> C:\Logs\Sicherung_D2.ps1

2014/04/27 13:07:39 FEHLER 32 (0x00000020) Protokolldatei wird geöffnet C:\Logs\Backup.log2014-04-27.log
Der Prozess kann nicht auf die Datei zugreifen, da sie von einem anderen Prozess verwendet wird.


-------------------------------------------------------------------------------
   ROBOCOPY     ::     Robustes Dateikopieren für Windows                              
-------------------------------------------------------------------------------

  Gestartet: Sun Apr 27 13:07:39 2014

   Quelle - D:\
     Ziel - \\SERVER-BACKUP\Server-Backup\Sicherung_D\

    Dateien : 
Ausführbare Dateien : pagefile.sys
	    NTUSER.Dat
	    
 Ausf. Verzeichnisse : System Volume Information
	    
  Optionen: /FFT /S /E /COPY:DAT /PURGE /MIR /A-:SH /R:1000000 /W:30 

------------------------------------------------------------------------------

FEHLER: Ungültiger Parameter #11 : "/LOG:C:\Logs\Backup.log2014-04-27.log"

  Einfache Syntax :: ROBOCOPY Quelle Ziel /MIR

        Quelle :: Quellverzeichnis (Laufwerk:\Pfad oder \\Server\Freigabe\Pfad)
          Ziel :: Zielverzeichnis (Laufwerk:\Pfad oder \\Server\Freigabe\Pfad)
          /MIR :: Spiegelt eine vollständige Verzeichnisstruktur.

    Weitere Informationen erhalten Sie über den Befehl "ROBOCOPY /?"

                                                          
**** Der Befehl "/MIR" kann Dateien sowohl kopieren als auch LÖSCHEN.
Vieleicht hat da noch einer eine idee?

Danke

Re: robocopy email benachrichtigung

Verfasst: 27. Apr 2014, 15:03
von Nobby1805
wo genau kommt denn die Meldung wenn du mit Einzelschritt durchgehst ...

Ich bin mir jetzt nicht sicher ob das CMD /K nicht einen Parallelprozess für das Robocopy erzeugt aber nicht wartet ... ruf doch einfach direkt robocopy auf

Re: robocopy email benachrichtigung

Verfasst: 29. Apr 2014, 10:33
von Coolzero
genau das wars, nachdem ich jetzt das

Code: Alles auswählen

cmd \k
entfernt hab, bekomme ich jetzt auch die Email.

Nur jetzt schließt sich nach abschluss das Fenster automatisch, das würde ich aber gerne offen lassen bis ich es manuell schliesse, geht das irgendwie?

Danke

Re: robocopy email benachrichtigung

Verfasst: 29. Apr 2014, 13:48
von Nobby1805
und wie startest du das Script ?

Re: robocopy email benachrichtigung

Verfasst: 29. Apr 2014, 15:41
von Coolzero
Über die Aufgabenplanung