101 lines
2.2 KiB
PowerShell
101 lines
2.2 KiB
PowerShell
<#
|
|
.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 "<result>"
|
|
|
|
write-host -NoNewline "<channel>"
|
|
write-host -NoNewline $Job
|
|
write-host "</channel>"
|
|
|
|
write-host -NoNewline "<value>"
|
|
write-host -NoNewline $ResultLookUp[$LastResult]
|
|
write-host "</value>"
|
|
|
|
write-host "<float>0</float>"
|
|
|
|
write-host "<ValueLookup>ps.acronis.jobState</ValueLookup>"
|
|
|
|
write-host "</result>"
|
|
|
|
}
|
|
|
|
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 fileh"
|
|
}
|
|
|
|
$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 "<prtg>"
|
|
|
|
Build-XML Server1 ok
|
|
Build-XML Server2 Error
|
|
|
|
write-host "</prtg>"
|
|
|