What is this?

This knowledgebase contains questions and answers about PRTG Network Monitor and network monitoring in general.

Learn more

PRTG Network Monitor

Intuitive to Use. Easy to manage.
More than 500,000 users rely on Paessler PRTG every day. Find out how you can reduce cost, increase QoS and ease planning, as well.

Free Download

Top Tags


View all Tags

Veeam Powershell Scrip Sensor Error

Votes:

0

Sensor Veeam Agent Backup

Antwort nicht wohlgeformt: "([xxx] Beim Verbinden mit dem Remoteserver "xxx" ist folgender Fehler aufgetreten: Zugriff verweigert Weitere Informationen finden Sie im Hilfethema "about_Remote_Troubleshooting". + CategoryInfo : OpenError: (xxx:String) [], PSRemoti ngTransportException + FullyQualifiedErrorId : AccessDenied,PSSessionStateBroken )" (Code: PE132)

Script: <# .SYNOPSIS PRTG Sensor script to monitor a Veeam Backup & Replication environment THIS CODE IS MADE AVAILABLE AS IS, WITHOUT WARRANTY OF ANY KIND. THE ENTIRE RISK OF THE USE OR THE RESULTS FROM THE USE OF THIS CODE REMAINS WITH THE USER. .DESCRIPTION .PARAMETER PrtgDevice Name des Servers, auf dem die NoSpamProxy Intranet Rolle installiert ist. .PARAMETER VeeamBRJobName Name des Jobs, der innerhalb von Veeam Backup & Replication abgefragt werden soll.

.INPUTS None

.OUTPUTS Output exit code and a description

.NOTES File: paessler-prtg_monitor-veeam-backupand-replication-job.ps1 Version: 1.1 Author: Daniel Wydler Creation Date: 10.03.2019, 10:54 Uhr Purpose/Change:

Date Comment ----------------------------------------------- 10.03.2019, 10:54 Uhr Initial community release 18.09.2019, 21:39 Uhr Code base revised 19.09.2019, 00:11 Uhr Added informations to the header 27.09.2019, 09:49 Uhr Fixed query of JobId .COMPONENT Veeam Backup & Replication Powershell-Module .LINK www.vmbaggum.nl/2015/03/monitor-veeam-backup-jobs-with-prtg/ github.com/dwydler/Powershell-Skripte/blob/master/Paessler/PRTG/paessler-prtg_monitor-veeam-backupand-replication-job.ps1 .EXAMPLE .\paessler-prtg_monitor-veeam-backupand-replication-job.ps1 -PrtgDevice "localhost" -VeeamBRJobName "Job1" .\paessler-prtg_monitor-veeam-backupand-replication-job.ps1 "localhost" "Job1"

  1. >
  2. ---------------------------------------------------------[Initialisations]--------------------------------------------------------

Param ( [Parameter( ValueFromPipelineByPropertyName, Position=0, Mandatory=$true )] [ValidateNotNullOrEmpty()] [string] $PrtgDevice, [Parameter( ValueFromPipelineByPropertyName, Position=1, Mandatory=$true )] [ValidateNotNullOrEmpty()] [string] $VeeamBRJobName ) Clear-Host

  1. ----------------------------------------------------------[Declarations]---------------------------------------------------------- [string] $FunctionForInvokeCommand = ""
  2. -----------------------------------------------------------[Functions]------------------------------------------------------------ function Set-PrtgResult {

Param ( [Parameter(Mandatory=$true, Position=0)] [ValidateNotNullOrEmpty()] [System.Object] $obLocalVBRxSession ) [string] $strVeeamBackupJobResult = ""

  1. Auswertung des letzten Backup Jobs If ($obLocalVBRxSession.Result -eq "Success") { $strVeeamBackupJobResult = "0:Job erfolgreich ausgeführt am" } ElseIf ($obLocalVBRxSession.Result -eq "Warning") { $strVeeamBackupJobResult = "1:Job mit Warnungen ausgeführt am" } ElseIf ($obLocalVBRxSession.Result -eq "Failed") { $strVeeamBackupJobResult = "2:Job fehlgeschlagen am" } Else { $strVeeamBackupJobResult = "2:Der Job hat einen unbekannten Status." }
  2. Zeitstempel anhängen $strVeeamBackupJobResult += " " + $obLocalVBRxSession.CreationTime.ToString("dd.MM.yyyy HH:mm") return $strVeeamBackupJobResult }
  3. ------------------------------------------------------------[Modules]-------------------------------------------------------------
  4. -----------------------------------------------------------[Execution]------------------------------------------------------------
  5. Vorberreitung, um bestehende Funktionen an das Invoke Command zu übergeben $FunctionForInvokeCommand = "function Set-PrtgResult { ${function:Set-PrtgResult} }"
  6. Nachstehende Befehle werden auf dem entfernen Computer ausgeführt $QueryResult = Invoke-Command -Computername $PrtgDevice -Args $VeeamBRJobName, $FunctionForInvokeCommand -ScriptBlock {
  7. Variablen übergeben param( [string] $strVeeamBackupJobName, [System.Object] $FunctionForInvokeCommand )
  8. Bereitgestellte Funktion wird aufgerufen . ([ScriptBlock]::Create($FunctionForInvokeCommand))
  1. Füge das Veeam Powershell SnapIn zu aktuellen Sitzung hinzu try { Add-PSSnapin -Name VeeamPSSnapIn } catch { return "2:Powershell - Veeam PSSnapIn konnte nicht geladen werden!" }
  2. Überprüfung, ob es bei dem Jobname um ein Backup & Replication Objekt handelt if (Get-VBRJob -Name $strVeeamBackupJobName -ErrorAction SilentlyContinue) {
  3. Auslesen des letzten Ausführungsergebnis vom dem angegebenen Veeam Backup Job $strVeeamBackupJobId = Get-VBRJob -Name $strVeeamBackupJobName | Select -ExpandProperty Id $obVBRSession = Get-VBRBackupSession | Select JobId, Result, CreationTime | Where-Object { $_.JobId -eq $strVeeamBackupJobId } | Sort -Descending -Property "CreationTime" | Select -First 1
  1. Auswertung des Ausführungsergebnis. Rückgabewert entspricht dem notwendigen Format für PRTG if($obVBRSession) { Set-PrtgResult -obLocalVBRxSession $obVBRSession } else { return "1:Der Job ist bisher noch nie gelaufen." } }
  2. Überprüfung, ob es bei dem Jobname um ein Backup & Replication Entpoint Objekt handelt. elseif (Get-VBREPJob -Name $strVeeamBackupJobName -ErrorAction SilentlyContinue) {
  3. Auslesen des letzten Ausführungsergebnis vom dem angegebenen Veeam Backup Job $strVeeamBackupJobId = Get-VBREPJob -Name $strVeeamBackupJobName | Select -ExpandProperty Id $obVBREPSession = Get-VBREPSession | Select JobId, Result, CreationTime | Where-Object { $_.JobId -eq $strVeeamBackupJobId } | Sort -Descending -Property "CreationTime" | Select -First 1
  4. Auswertung des Ausführungsergebnis. Rückgabewert entspricht dem notwendigen Format für PRTG if($obVBREPSession) { Set-PrtgResult -obLocalVBRxSession $obVBREPSession } else { return "1:Der Job ist bisher noch nie gelaufen." } } else { return "1:Es konnte kein Job mit dem Namen '$strVeeamBackupJobName' gefunden werden!" } }
  5. String splitten $exitcode = $QueryResult -Split(':')
  6. Ausgabe für PRTG write-host $QueryResult
  7. Script mit entsprechenden Fehlercode beenden exit $exitcode[0]

powershell prtg veeam

Created on Jun 30, 2020 8:50:39 AM



1 Reply

Votes:

0

Guten Tag,

wie alle Custom-Skripte können wir auch für diesen Sensor keinen Support anbieten. Der Fehlermeldung zufolge scheint es sich um ein falsches Passwort zu handeln, oder eine ungültige Anmeldung (Remote-Powershell funktioniert manchmal nur innerhalb der gleichen Domäne.)

Created on Jun 30, 2020 4:04:35 PM by  Arne Seifert [Paessler Support]




Disclaimer: The information in the Paessler Knowledge Base comes without warranty of any kind. Use at your own risk. Before applying any instructions please exercise proper system administrator housekeeping. You must make sure that a proper backup of all your data is available.