summary | 
shortlog | 
log | 
commit | commitdiff | 
tree
raw | 
patch | 
inline | side by side (from parent 1: 
2d79a25)
 
- Added computer name to default email subject
- Removed some useless output
- Check if network drive was disconnected successfully
- Send error messages are now sent via email
 # To address of email notification\r
 [String]$emailToAddress = "patrick@test.local"\r
 # Subject of email notification\r
 # To address of email notification\r
 [String]$emailToAddress = "patrick@test.local"\r
 # Subject of email notification\r
-[String]$emailSubject = "DSMonRot"\r
+[String]$emailSubject = "DSMonRot on $env:computername"\r
 # Mail server\r
 [String]$emailMailserver = "localhost"\r
 # SMTP Port\r
 # Mail server\r
 [String]$emailMailserver = "localhost"\r
 # SMTP Port\r
        Write-Host "Sending email: $emailToAddress, $body"\r
        \r
        try {\r
        Write-Host "Sending email: $emailToAddress, $body"\r
        \r
        try {\r
-               $smtp = New-Object System.Net.Mail.SmtpClient($emailMailServer, $emailPort);\r
+               $smtp = New-Object System.Net.Mail.SmtpClient($emailMailServer, $emailPort)\r
 \r
                $smtp.EnableSSL = $emailSSL\r
 \r
                if($emailAuth) {\r
 \r
                $smtp.EnableSSL = $emailSSL\r
 \r
                if($emailAuth) {\r
-                       $smtp.Credentials = New-Object System.Net.NetworkCredential($emailUser, $emailPassword);\r
+                       $smtp.Credentials = New-Object System.Net.NetworkCredential($emailUser, $emailPassword)\r
-               $smtp.Send($emailFromAddress, $emailToAddress, $emailSubject, $body);\r
+               $smtp.Send($emailFromAddress, $emailToAddress, $emailSubject, $body)\r
        }\r
        catch {\r
                Write-Host "Could not send email: $_.Exception.Message"\r
        }\r
 }\r
 \r
        }\r
        catch {\r
                Write-Host "Could not send email: $_.Exception.Message"\r
        }\r
 }\r
 \r
+Write-Host "Started at" (Get-Date -format "yyyy-MM-dd HH:mm:ss")\r
+\r
 $errorMessages = @()\r
 \r
 $smbConnected = $False\r
 $errorMessages = @()\r
 \r
 $smbConnected = $False\r
                $smbConnected = $True\r
        }\r
        Catch {\r
                $smbConnected = $True\r
        }\r
        Catch {\r
-               Write-Host "Could not connect to network drive: $_.Exception.Message"\r
+               Write-Host "Could not connect to network drive $smbDrive`: $_.Exception.Message"\r
                & $dsPath $dsArgs\r
                \r
                if($LastExitCode -ne 0) {\r
                & $dsPath $dsArgs\r
                \r
                if($LastExitCode -ne 0) {\r
-                       Write-Host "Error code: $LastExitCode"\r
+                       Write-Host "Drive Snapshot failed to backup! Exit code: $LastExitCode"\r
+                       $errorMessages += "Drive Snapshot failed to backup! Exit code: $LastExitCode"\r
+               }\r
+               else {\r
+                       $success = $True\r
                }\r
        }\r
        else {\r
                Write-Host "Directory $backupTargetDiff already exists!"\r
                }\r
        }\r
        else {\r
                Write-Host "Directory $backupTargetDiff already exists!"\r
                $errorMessages += "Directory $backupTargetDiff already exists!"\r
        }\r
 }\r
                $errorMessages += "Directory $backupTargetDiff already exists!"\r
        }\r
 }\r
        & $dsPath $dsArgs\r
        \r
        if($LastExitCode -ne 0) {\r
        & $dsPath $dsArgs\r
        \r
        if($LastExitCode -ne 0) {\r
-               Write-Host "Error code: $LastExitCode"\r
+               Write-Host "Drive Snapshot failed to backup! Exit code: $LastExitCode"\r
+               $errorMessages += "Drive Snapshot failed to backup! Exit code: $LastExitCode"\r
+       }\r
+       else {\r
+               $success = $True\r
-       \r
-       $success = $False\r
-if($isDiff -eq $False -and $success -eq $True -and $keepMonths -ge 0) {\r
+if(!$isDiff -and $success -eq $True -and $keepMonths -ge 0) {\r
        Write-Host "Rotating"\r
        \r
        $keepMonthsCount = $keepMonths\r
        Write-Host "Rotating"\r
        \r
        $keepMonthsCount = $keepMonths\r
                        $keepMonthsCount--\r
                }\r
                \r
                        $keepMonthsCount--\r
                }\r
                \r
-               Write-Host $keepMonthsCount\r
-               \r
                if($keepMonthsCount -eq -1) {\r
                        Write-Host "Deleting $_"\r
                        Remove-Item -Recurse -Force $_.FullName\r
                if($keepMonthsCount -eq -1) {\r
                        Write-Host "Deleting $_"\r
                        Remove-Item -Recurse -Force $_.FullName\r
 \r
 if($smbConnected) {\r
        Write-Host "Disconnecting network drive"\r
 \r
 if($smbConnected) {\r
        Write-Host "Disconnecting network drive"\r
-       Remove-PSDrive $smbDrive\r
+       \r
+       try {\r
+               Remove-PSDrive $smbDrive -ErrorAction Stop\r
+       }\r
+       catch {\r
+               Write-Host "Could not disconnect network drive $smbDrive`: $_.Exception.Message"\r
+               $errorMessages +=  "Could not disconnect network drive $smbDrive`: $_.Exception.Message"\r
+       }\r
 }\r
 \r
 if($emailOnError -and $errorMessages.Count -gt 0) {\r
        Send-Email ("Error:`n"+($errorMessages -join "`n"))\r
 }\r
 \r
 if($emailOnError -and $errorMessages.Count -gt 0) {\r
        Send-Email ("Error:`n"+($errorMessages -join "`n"))\r
-}
\ No newline at end of file
+}\r
+\r
+Write-Host "Ended at" (Get-Date -format "yyyy-MM-dd HH:mm:ss")
\ No newline at end of file