<# .SYNOPSIS PRTG Acronis Backup Statusreport .DESCRIPTION Dieses Script wertet den Status der Windows Server Sicherung aus und versendet auf Basis der Daten eine Mail im HTML-Format über den Status der letzten Sicherung. Zusätzlich werden Informationen über das Sicherungsmedium und den freien Speicher übermittelt. .PARAMETER Server The IP or DNS of the Server running Acronis. You can use the %host parameter of PRTG. .PARAMETER User User with login rights to Acronis. .PARAMETER Password The Password for the User. .OUTPUTS PRTG XML to console .EXAMPLE C:\PS> Get-AcronisJobResults.ps1 -Server acronis.company.com -User company\backupAdmin -Password securePhrase1 .LINK https://www.ksite.de .NOTES AUTHOR : Ralf Kirchner EMAIL : rkirchner@ksite.de DATE : 30.06.2018 #> param( [Parameter(Mandatory=$True)][string]$Server, [string]$User, [string]$Password ) #PRTG wants numeric values. Acronis provides the last result as string. $ResultLookUp=@{"ok" = 0; "Warning" = 1; "Error" = 2; "Failed" = 2} #Helper function for writing the same XML format for all kind of jobs. function Build-XML($Job, $LastResult) { write-host "" write-host -NoNewline "" write-host -NoNewline $Job write-host "" write-host -NoNewline "" write-host -NoNewline $ResultLookUp[$LastResult] write-host "" write-host "0" write-host "ps.acronis.jobState" write-host "" } function Test-XMLFile { [CmdletBinding()] param ( [parameter(mandatory=$true)][ValidateNotNullorEmpty()][string]$xmlFilePath ) if(!(Test-Path -Path $xmlFilePath)) { throw "$xmlFilePath is not valid. Please provide a valid path to the .xml file" } $xml = New-Object System.Xml.XmlDocument try { $xml.Load((Get-ChildItem -Path $xmlFilePath).FullName) return $true } catch [System.Xml.XmlException] { Write-Verbose "$xmlFilePath : $($_.toString())" return $false } } write-host "" Build-XML Server1 ok Build-XML Server2 Error write-host ""