<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://znil.net/index.php?action=history&amp;feed=atom&amp;title=Zabbix%3ATemplate_BackupExec_2012_Jobs</id>
	<title>Zabbix:Template BackupExec 2012 Jobs - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://znil.net/index.php?action=history&amp;feed=atom&amp;title=Zabbix%3ATemplate_BackupExec_2012_Jobs"/>
	<link rel="alternate" type="text/html" href="https://znil.net/index.php?title=Zabbix:Template_BackupExec_2012_Jobs&amp;action=history"/>
	<updated>2026-04-19T06:38:25Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in znilwiki</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://znil.net/index.php?title=Zabbix:Template_BackupExec_2012_Jobs&amp;diff=9514&amp;oldid=prev</id>
		<title>BLinz2: Textersetzung - „&lt;comments&gt;“ durch „&lt;comments /&gt;“</title>
		<link rel="alternate" type="text/html" href="https://znil.net/index.php?title=Zabbix:Template_BackupExec_2012_Jobs&amp;diff=9514&amp;oldid=prev"/>
		<updated>2017-08-06T18:52:09Z</updated>

		<summary type="html">&lt;p&gt;Textersetzung - „&amp;lt;comments&amp;gt;“ durch „&amp;lt;comments /&amp;gt;“&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;
[[Kategorie:Zabbix_Templates]]&lt;br /&gt;
&amp;lt;u&amp;gt;&amp;#039;&amp;#039;&amp;#039;Changelog:&amp;#039;&amp;#039;&amp;#039;&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
* 25.04.2014: Erste Öffentliche Version 0.0.0.40&lt;br /&gt;
* 29.01.2015: Version 0.0.0.42 unterstützt auch BackupExec 2014&lt;br /&gt;
* 20.02.2015: Version 0.0.0.43 kann nun auch wirklich gleichzeitig 2014 und 2012&lt;br /&gt;
* 13.05.2015: Version 0.0.0.45 kann auch mit BackupExec 15 umgehen&lt;br /&gt;
* 13.09.2016: Version 1.0.0.7 (BETA Version) sollte pauschal mit allen BackupExec Versionen mit PowerShell umgehen können&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;&amp;#039;&amp;#039;&amp;#039;Bekannte Fehler:&amp;#039;&amp;#039;&amp;#039;&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
* Der Zabbix Agent wird mit SYSTEM-Rechten ausgeführt. Die Abfrage von BackupExec 2012 erfolgt über die BEMCLI, das ist die PowerShell Erweiterung zu BackupExec 2012. In der Praxis bedeutet dies, das eine PowerShell gestartet wird, diese die BackupExec Erweiterungen nachlädt und dann die eigentlichen Abfragen durchführt. Die Erweiterungen werden über PowerShell-Scripts (&amp;#039;&amp;#039;&amp;#039;.ps1&amp;#039;&amp;#039;&amp;#039;) geladen. Und bei deren Ausführung zickt Windows gerne rum wenn diese z.B. nicht signiert sind. Beim Programmieren musste ich leider mehrmals feststellen das es hakte. Deshalb führt mein Programm bei der Abfrage ein &amp;lt;code&amp;gt;Set-ExecutionPolicy Bypass&amp;lt;/code&amp;gt; aus. &amp;#039;&amp;#039;&amp;#039;DAMIT WERDEN ALLE POWERSHELL-SCRIPTE OHNE ÜBERPRÜFUNG DER SIGNATUR AUSGEFÜHRT. DIESE EINSTELLUNG IST FÜR DEN SERVER GGF. DAUERHAFT FÜR ALLE SCRIPTE&amp;#039;&amp;#039;&amp;#039;&amp;lt;br&amp;gt;&lt;br /&gt;
{{Hinweis| Die neue Version 0.0.0.43 funktioniert auch mit BackupExec 2014!}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{Hinweis| Die BETA Version 1.0.0.7 funktioniert sollte mit jeder BackupExec Version ab 2012 funktionieren}}&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Download==&lt;br /&gt;
&amp;lt;big&amp;gt;Download: &amp;#039;&amp;#039;&amp;#039;[[Media:ZabbixTemplateBackupExec2012.zip|ZabbixTemplateBackupExec2012.zip]]&amp;#039;&amp;#039;&amp;#039;&amp;lt;/big&amp;gt; Version 0.0.0.43 mit BackupExec 2014 Unterstützung&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;big&amp;gt;Download BETA: &amp;#039;&amp;#039;&amp;#039;[[Media:ZabbixTemplateBackupExecPS.zip|ZabbixTemplateBackupExecPS.zip]]&amp;#039;&amp;#039;&amp;#039;&amp;lt;/big&amp;gt; Version 1.0.0.7 mit BackupExec PS Unterstützung&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Vorwort==&lt;br /&gt;
Nachdem ich so etwas für BackupExec 2010 geschrieben hatte fehlte noch das Gegenstück für BackupExec 2012. Hier gibt es keine &amp;lt;code&amp;gt;bemcmd.exe&amp;lt;/code&amp;gt; sondern die &amp;lt;code&amp;gt;BEMCLI&amp;lt;/code&amp;gt; wird genutzt.&amp;lt;br&amp;gt;&lt;br /&gt;
Dabei handelt es sich um eine PowerShell Erweiterung.&amp;lt;br&amp;gt;&lt;br /&gt;
Die aktuelle Version sollte mit BackupExec 2014 und BackupExec 15 auch umgehen können.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Screenshots / Bilder==&lt;br /&gt;
[[Datei:Zabbix-BackupExec2012-001.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Funktionsweise==&lt;br /&gt;
&amp;lt;u&amp;gt;&amp;#039;&amp;#039;&amp;#039;Wie funktioniert es?&amp;#039;&amp;#039;&amp;#039;&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Die &amp;lt;code&amp;gt;BackupExec2012.exe&amp;lt;/code&amp;gt; wird vom Zabbix Agenten auf dem jeweiligen Server aufgerufen.&amp;lt;br&amp;gt;&lt;br /&gt;
Die &amp;#039;&amp;#039;&amp;#039;.exe&amp;#039;&amp;#039;&amp;#039; ermittelt in der Registry den Installationspfad von BackupExec 2012 und sucht darüber den Pfad zur PowerShell-Erweiterung &amp;lt;code&amp;gt;BEMCLI&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Diese wird von der &amp;#039;&amp;#039;&amp;#039;BackupExec2012.exe&amp;#039;&amp;#039;&amp;#039; aufgerufen und kennt verschiedene Parameter:&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 discoverjobs       : Erzeugt eine Liste im JSON Format über alle Backup-Aufträge&lt;br /&gt;
                      die wiederkehrend geplant oder gerade aktiv sind.&lt;br /&gt;
 &lt;br /&gt;
 Die nachfolgenden Parameter erwarten als 2. Parameter die Job Id!&lt;br /&gt;
 &lt;br /&gt;
 jobstatus          : Gibt den Status des letzen Backup-Auftrages zurück. &lt;br /&gt;
                      Rückgabewert ist Text&lt;br /&gt;
  &lt;br /&gt;
 jobhowlongago      : Gibt die Zeit in Sekunden zurück die seit dem letzen Start des&lt;br /&gt;
                      Auftrages vergangen sind. Mit einem Trigger läßt sich so abfangen&lt;br /&gt;
                      das ein Auftrag nicht mehr wie geplant angelaufen ist.&lt;br /&gt;
 &lt;br /&gt;
 jobbytes           : Gibt die gesamte gesicherte Datenmenge in Bytes zurück&lt;br /&gt;
 &lt;br /&gt;
 jobruntime         : Gibt die Laufzeit des Backup-Auftrages in Sekunden zurück&lt;br /&gt;
 &lt;br /&gt;
 jobPercentComplete : In Prozent wieviel gesichert wurde, 0 bis 100 möglich&lt;br /&gt;
 &lt;br /&gt;
 jobErrorCode       : Gibt den letzten Fehlercode zurück (scheinbar immer 0)&lt;br /&gt;
 &lt;br /&gt;
 jobErrorCategory   : Ist bei einem Fehler nicht 0, mögliche Werte noch unbekannt&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
Damit könnt Ihr das ganze zuvor einmal auf der Kommandozeile / DOS-Box testen.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Template==&lt;br /&gt;
&amp;lt;!--Zunächst müsst Ihr unter&lt;br /&gt;
 Administration -&amp;gt; General -&amp;gt; Value mapping&lt;br /&gt;
Das folgende, neue Value mapping anlegen:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:Zabbix-BackupExec2010-003.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
 Name:       BackupExec 2010&lt;br /&gt;
 Value:   1  Abgebrochen&lt;br /&gt;
          3  Erfolgreich (mit Ausnahmen)&lt;br /&gt;
          6  Fehlgeschlagen&lt;br /&gt;
         19  Erfolgreich&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
Im Zip-Archiv findet Ihr neben der &amp;lt;code&amp;gt;BackupExec2012.exe&amp;lt;/code&amp;gt; auch das Template in Deutsch.&amp;lt;br&amp;gt;&lt;br /&gt;
Die deutschen Versionen findet Ihr nach dem Import in der Hostgruppe &amp;#039;&amp;#039;&amp;#039;&amp;#039;Templates znil.net&amp;#039;&amp;#039;&amp;#039;&amp;#039; mit den Namen&lt;br /&gt;
 znil Template BackupExec 2012 Auftragsueberwachung ACTIVE AGENT&lt;br /&gt;
Also nur eine Active Agent Version - paasiv müsstet ihr eben selbst daraus bauen bei Bedarf&amp;lt;br&amp;gt;&lt;br /&gt;
Darin sind NUR die Items - keine Trigger - die müsst ihr euch selbst anlegen. Als Hilfe dafür habe ich z.B. die Rückgabewerte gebaut wie lange der letzte Start her ist. Damit lässt sich indirekt erkennen wenn z.B,. ein Job hängt (wenn er z.B. mehr als 25h nicht neu gestartet wurde) etc.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Rückgabewerte &amp;quot;letzter Status&amp;quot;==&lt;br /&gt;
Folgende Rückgabewerte sind bei &amp;quot;letzter Status&amp;quot; möglich:&amp;lt;br&amp;gt;&lt;br /&gt;
 Unknown&lt;br /&gt;
 Canceled&lt;br /&gt;
 Completed&lt;br /&gt;
 SucceededWithExceptions&lt;br /&gt;
 OnHold&lt;br /&gt;
 Error&lt;br /&gt;
 Missed&lt;br /&gt;
 Recovered&lt;br /&gt;
 Resumed&lt;br /&gt;
 Succeeded&lt;br /&gt;
 ThresholdAbort&lt;br /&gt;
 Dispatched&lt;br /&gt;
 DispatchFailed&lt;br /&gt;
 InvalidSchedule&lt;br /&gt;
 InvalidTimeWindow&lt;br /&gt;
 NotInTimeWindow&lt;br /&gt;
 Queued&lt;br /&gt;
 Disabled&lt;br /&gt;
 Active&lt;br /&gt;
 Ready&lt;br /&gt;
 Scheduled&lt;br /&gt;
 Superseded&lt;br /&gt;
 ToBeScheduled&lt;br /&gt;
 Linked&lt;br /&gt;
 RuleBlocked&lt;br /&gt;
In der Praxis einige wie &amp;quot;Queued&amp;quot; oder &amp;quot;Scheduled&amp;quot; eher nicht da meine Funktion den letzten Rückgabewert des letzten Auftrages/Jobs zurück liefert, nicht zukünftiger oder gerade laufender Aufträge.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Download==&lt;br /&gt;
&amp;lt;big&amp;gt;Download: &amp;#039;&amp;#039;&amp;#039;[[Media:ZabbixTemplateBackupExec2012.zip|ZabbixTemplateBackupExec2012.zip]]&amp;#039;&amp;#039;&amp;#039;&amp;lt;/big&amp;gt; Version 0.0.0.45&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
&amp;lt;u&amp;gt;&amp;#039;&amp;#039;&amp;#039;Zur Installation müsst Ihr folgendes tun:&amp;#039;&amp;#039;&amp;#039;&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
* Kopiert die &amp;lt;code&amp;gt;BackupExec2012.exe&amp;lt;/code&amp;gt; in das Verzeichnis in dem auch schon der Zabbix-Agent ist, z.B.&lt;br /&gt;
 C:\Program Files\Zabbix&lt;br /&gt;
* Tragt in die Agenten-Konfigurationsdatei, in der Regel ist das die &amp;lt;code&amp;gt;zabbix_agentd.win.conf&amp;lt;/code&amp;gt; die Zeile&lt;br /&gt;
 UserParameter=znil.BackupExec2012[*],&amp;quot;C:\Program Files\Zabbix\BackupExec2012.exe&amp;quot; $1 &amp;quot;$2&amp;quot;&lt;br /&gt;
ein - Pfad natürlich ggf. anpassen&amp;lt;br&amp;gt;&lt;br /&gt;
* Startet des Zabbix Agenten Dienst neu&lt;br /&gt;
 net stop &amp;quot;zabbix agent&amp;quot;&lt;br /&gt;
 net start &amp;quot;zabbix agent&amp;quot;&lt;br /&gt;
*Import eine der &amp;lt;code&amp;gt;.XML&amp;lt;/code&amp;gt; Dateien in Zabbix und verknüpft diese mit dem Host.&lt;br /&gt;
* Warten! Alle 3600 Sekunden = 1 Stunde wird die Abfrage gestartet.&amp;lt;br&amp;gt;&lt;br /&gt;
* Da erst die Aufträge gefunden werden und dann daurch die Items angelegt werden dauert es eine Weile bis der Agent davon weis.&amp;lt;br&amp;gt;&lt;br /&gt;
* Als Beschleunigung: Nachdem Ihr in Zabbix die Items sehen könnt startet den AGenten auf dem Server noch einmal neu. Wen Ihr noch einen Proxy dazwischen habt müsst ihr den Dienst auf diesen auch einmal neu starten ... oder einfach abwarten!&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Quellcode==&lt;br /&gt;
Hier noch für Interessierte der Quellcode der &amp;lt;code&amp;gt;BackupExec2012.exe&amp;lt;/code&amp;gt;:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;AutoIt&amp;quot;&amp;gt;&lt;br /&gt;
#NoTrayIcon&lt;br /&gt;
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****&lt;br /&gt;
#AutoIt3Wrapper_Icon=Icon256-32.ico&lt;br /&gt;
#AutoIt3Wrapper_Outfile=BackupExec2014.exe&lt;br /&gt;
#AutoIt3Wrapper_UseUpx=y&lt;br /&gt;
#AutoIt3Wrapper_Change2CUI=y&lt;br /&gt;
#AutoIt3Wrapper_Res_Description=Zabbix Available Windows Updates&lt;br /&gt;
#AutoIt3Wrapper_Res_Fileversion=0.0.0.46&lt;br /&gt;
#AutoIt3Wrapper_Res_Fileversion_AutoIncrement=y&lt;br /&gt;
#AutoIt3Wrapper_Res_LegalCopyright=2014 Bernhard Linz&lt;br /&gt;
#AutoIt3Wrapper_Res_SaveSource=y&lt;br /&gt;
#AutoIt3Wrapper_Res_Language=1031&lt;br /&gt;
#AutoIt3Wrapper_Res_Field=Website|http://znil.net&lt;br /&gt;
#AutoIt3Wrapper_Res_Field=Manual|http://znil.net/index.php?title=Zabbix:Template_BackupExec_2014_Jobs&lt;br /&gt;
#AutoIt3Wrapper_Res_Field=See You|znil.net&lt;br /&gt;
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****&lt;br /&gt;
Opt(&amp;#039;MustDeclareVars&amp;#039;, 1)&lt;br /&gt;
#Region    ;************ Includes ************&lt;br /&gt;
#Include &amp;lt;Array.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;Constants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;Date.au3&amp;gt;&lt;br /&gt;
#EndRegion ;************ Includes ************&lt;br /&gt;
; ##########################################################################################################################&lt;br /&gt;
; ##########################################################################################################################&lt;br /&gt;
; # backupexec2014.exe --&amp;gt; Tool for Check BackupJobs in Zabbix                                                             #&lt;br /&gt;
; # 2014 Bernhard Linz    /    Bernhard@znil.de    /    http://znil.net                                                    #&lt;br /&gt;
; # Idea and Original at Zabbix Wiki                                                                                       #&lt;br /&gt;
; #                                                                                                                        #&lt;br /&gt;
; # Latest Version of this Program and Template in German:                                                                 #&lt;br /&gt;
; # http://znil.net/index.php?title=Zabbix:Template_BackupExec_2014_Jobs                                                   #&lt;br /&gt;
; #                                                                                                                        #&lt;br /&gt;
; #	         ________  .__   __.  __   __        .__   __.  _______ .___________.                                          #&lt;br /&gt;
; #	        |       /  |  \ |  | |  | |  |       |  \ |  | |   ____||           |                                          #&lt;br /&gt;
; #	        `---/  /   |   \|  | |  | |  |       |   \|  | |  |__   `---|  |----`                                          #&lt;br /&gt;
; #	           /  /    |  . `  | |  | |  |       |  . `  | |   __|      |  |                                               #&lt;br /&gt;
; #	          /  /----.|  |\   | |  | |  `----.__|  |\   | |  |____     |  |                                               #&lt;br /&gt;
; #	         /________||__| \__| |__| |_______(__)__| \__| |_______|    |__|                                               #&lt;br /&gt;
; #                                                                                                                        #&lt;br /&gt;
; ##########################################################################################################################&lt;br /&gt;
; ##########################################################################################################################&lt;br /&gt;
&lt;br /&gt;
; find the &amp;#039;BEMCLI.exe&amp;#039; - take a look at Registry of Host&lt;br /&gt;
Dim $SoftwareBasePaths[9] = [&amp;quot;HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Symantec Backup Exec 14.2&amp;quot;, _&lt;br /&gt;
							 &amp;quot;HKLM64\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Symantec Backup Exec 14.2&amp;quot;, _&lt;br /&gt;
							 &amp;quot;HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\Symantec Backup Exec 14.2&amp;quot;, _&lt;br /&gt;
							 &amp;quot;HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Symantec Backup Exec 14.1&amp;quot;, _&lt;br /&gt;
							 &amp;quot;HKLM64\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Symantec Backup Exec 14.1&amp;quot;, _&lt;br /&gt;
							 &amp;quot;HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\Symantec Backup Exec 14.1&amp;quot;, _&lt;br /&gt;
							 &amp;quot;HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Symantec Backup Exec 14.0&amp;quot;, _&lt;br /&gt;
							 &amp;quot;HKLM64\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Symantec Backup Exec 14.0&amp;quot;, _&lt;br /&gt;
							 &amp;quot;HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\Symantec Backup Exec 14.0&amp;quot;]&lt;br /&gt;
Global $bemcli&lt;br /&gt;
Dim $aparameter[4]&lt;br /&gt;
	;$aparameter[0] = &amp;quot;Get-BEJob -JobType Backup -Status Scheduled,Active | select-object -property *&amp;quot; 					; get a List of scheduled and active jobs&lt;br /&gt;
	$aparameter[0] = &amp;quot;Get-BEJob -JobType Backup,Duplicate -Status Scheduled,Active,Linked | select-object -property *&amp;quot; 					; get a List of scheduled and active jobs&lt;br /&gt;
	$aparameter[1] = &amp;quot;Get-BEJob -JobType Duplicate -Status Linked | select-object -property *&amp;quot; 					; get a list of Duplicate Jobs&lt;br /&gt;
	$aparameter[2] = &amp;#039;-o21 -e -j&amp;quot;Name of Job&amp;quot;&amp;#039;			; get last Exit-Code of a specific job by Name&lt;br /&gt;
	$aparameter[3] = &amp;#039;Get-BEJob -Id {ID of Job} | Get-BEJobHistory -FromLastJobRun | select-object -property *&amp;#039;			; get last Exit-Code of a specific job by ID&lt;br /&gt;
&lt;br /&gt;
Dim $stemp&lt;br /&gt;
Dim $atemp&lt;br /&gt;
Dim $aatemp&lt;br /&gt;
Dim $aDateTemp&lt;br /&gt;
Dim $aRuntimeTemp&lt;br /&gt;
Dim $aBackupJobs_byName[1] = [ 0 ]&lt;br /&gt;
Dim $aBackupJobs_byID[1] = [ 0 ]&lt;br /&gt;
Dim $aBackupJobs_Selection[1] = [ 0 ]&lt;br /&gt;
&lt;br /&gt;
Dim $s_JSONOutput&lt;br /&gt;
Dim $sRunCommand&lt;br /&gt;
Dim $sJobStatus&lt;br /&gt;
Dim $iJobStatus&lt;br /&gt;
Dim $iJobhowlongago&lt;br /&gt;
Dim $iJobBytes&lt;br /&gt;
Dim $iJobRuntime&lt;br /&gt;
Dim $iJobPercentComplete&lt;br /&gt;
Dim $iJobErrorCode&lt;br /&gt;
&lt;br /&gt;
; Ok, we need the BEMCLI Extension for PowerShell, just find the BackupExec Installation Folder&lt;br /&gt;
; we take 3 try - depends of we are a 32 or 64 bit exe and if we run on a 32 or 64 bit system&lt;br /&gt;
$bemcli = RegRead($SoftwareBasePaths[0], &amp;quot;InstallLocation&amp;quot;)&lt;br /&gt;
If $bemcli = &amp;quot;&amp;quot; Then&lt;br /&gt;
	$bemcli = RegRead($SoftwareBasePaths[1], &amp;quot;InstallLocation&amp;quot;)&lt;br /&gt;
	If $bemcli = &amp;quot;&amp;quot; Then&lt;br /&gt;
		$bemcli = RegRead($SoftwareBasePaths[2], &amp;quot;InstallLocation&amp;quot;)&lt;br /&gt;
		If $bemcli = &amp;quot;&amp;quot; Then&lt;br /&gt;
		$bemcli = RegRead($SoftwareBasePaths[3], &amp;quot;InstallLocation&amp;quot;)&lt;br /&gt;
			If $bemcli = &amp;quot;&amp;quot; Then&lt;br /&gt;
				$bemcli = RegRead($SoftwareBasePaths[4], &amp;quot;InstallLocation&amp;quot;)&lt;br /&gt;
				If $bemcli = &amp;quot;&amp;quot; Then&lt;br /&gt;
					$bemcli = RegRead($SoftwareBasePaths[5], &amp;quot;InstallLocation&amp;quot;)&lt;br /&gt;
					If $bemcli = &amp;quot;&amp;quot; Then&lt;br /&gt;
						$bemcli = RegRead($SoftwareBasePaths[6], &amp;quot;InstallLocation&amp;quot;)&lt;br /&gt;
						If $bemcli = &amp;quot;&amp;quot; Then&lt;br /&gt;
							$bemcli = RegRead($SoftwareBasePaths[7], &amp;quot;InstallLocation&amp;quot;)&lt;br /&gt;
							If $bemcli = &amp;quot;&amp;quot; Then&lt;br /&gt;
								$bemcli = RegRead($SoftwareBasePaths[8], &amp;quot;InstallLocation&amp;quot;)&lt;br /&gt;
								If $bemcli = &amp;quot;&amp;quot; Then&lt;br /&gt;
									ConsoleWriteError(&amp;quot;Error, no installed BackupExec 2012/2014 found&amp;quot; &amp;amp; @CRLF)&lt;br /&gt;
								Exit 1&lt;br /&gt;
								EndIf&lt;br /&gt;
							EndIf&lt;br /&gt;
						EndIf&lt;br /&gt;
					EndIf&lt;br /&gt;
				EndIf&lt;br /&gt;
			EndIf&lt;br /&gt;
		EndIf&lt;br /&gt;
	EndIf&lt;br /&gt;
EndIf&lt;br /&gt;
$bemcli = &amp;quot;Import-Module &amp;#039;&amp;quot; &amp;amp; $bemcli &amp;amp; &amp;quot;Modules\BEMCLI\BEMCLI&amp;#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
; ##########################################################################################################################&lt;br /&gt;
; ##########################################################################################################################&lt;br /&gt;
;                                                                                   ########################################&lt;br /&gt;
; ######## ##     ## ##    ##  ######  ######## ####  #######  ##    ##  ######     ########################################&lt;br /&gt;
; ##       ##     ## ###   ## ##    ##    ##     ##  ##     ## ###   ## ##    ##    ########################################&lt;br /&gt;
; ##       ##     ## ####  ## ##          ##     ##  ##     ## ####  ## ##          ########################################&lt;br /&gt;
; ######   ##     ## ## ## ## ##          ##     ##  ##     ## ## ## ##  ######     ########################################&lt;br /&gt;
; ##       ##     ## ##  #### ##          ##     ##  ##     ## ##  ####       ##    ########################################&lt;br /&gt;
; ##       ##     ## ##   ### ##    ##    ##     ##  ##     ## ##   ### ##    ##    ########################################&lt;br /&gt;
; ##        #######  ##    ##  ######     ##    ####  #######  ##    ##  ######     ########################################&lt;br /&gt;
;                                                                                   ########################################&lt;br /&gt;
; ##########################################################################################################################&lt;br /&gt;
; ##########################################################################################################################&lt;br /&gt;
Func _BEMCLI($sbemparameter)&lt;br /&gt;
	Local $sRunCommand&lt;br /&gt;
	Local $outputBEMCLI&lt;br /&gt;
	Local $errorsBEMCLI&lt;br /&gt;
	Local $hBEMCLI&lt;br /&gt;
	Local $iBEMCLImaxWaitTime = 20000&lt;br /&gt;
	Local $iBEMCLImaxWaitTimeSTART&lt;br /&gt;
	Local $stdoutReadFEHLER&lt;br /&gt;
	; build the Command for run&lt;br /&gt;
	$sRunCommand = $bemcli &amp;amp; &amp;quot; ; &amp;quot; &amp;amp; $sbemparameter&lt;br /&gt;
	; Start the timer for max wait time&lt;br /&gt;
	$iBEMCLImaxWaitTimeSTART = TimerInit()&lt;br /&gt;
	; run the Command&lt;br /&gt;
	;ConsoleWrite(&amp;#039;powershell.exe Set-ExecutionPolicy Bypass ; &amp;quot;&amp;#039; &amp;amp; $sRunCommand &amp;amp; &amp;#039;&amp;quot;&amp;#039; &amp;amp; @CRLF)&lt;br /&gt;
	$hBEMCLI = Run(&amp;#039;powershell.exe Set-ExecutionPolicy Bypass ; &amp;quot;&amp;#039; &amp;amp; $sRunCommand &amp;amp; &amp;#039;&amp;quot;&amp;#039;, @SystemDir, @SW_HIDE, $STDIN_CHILD + $STDOUT_CHILD + $STDERR_CHILD)&lt;br /&gt;
	StdinWrite($hBEMCLI, @CRLF)&lt;br /&gt;
	StdinWrite($hBEMCLI)&lt;br /&gt;
	;get the output&lt;br /&gt;
	Do&lt;br /&gt;
		;Sleep(5)&lt;br /&gt;
		; get the output&lt;br /&gt;
		$outputBEMCLI = $outputBEMCLI &amp;amp; StdoutRead($hBEMCLI)&lt;br /&gt;
		; get the errors&lt;br /&gt;
		$errorsBEMCLI = $errorsBEMCLI &amp;amp; StderrRead($hBEMCLI)&lt;br /&gt;
		; did we have an error while reading?&lt;br /&gt;
		$stdoutReadFEHLER = @error&lt;br /&gt;
		If $stdoutReadFEHLER &amp;lt;&amp;gt; &amp;quot;&amp;quot; Then&lt;br /&gt;
			; No error, go on&lt;br /&gt;
			If $outputBEMCLI = &amp;quot;&amp;quot; Then&lt;br /&gt;
				; but also no output, let us take a 2. try&lt;br /&gt;
				$outputBEMCLI = $outputBEMCLI &amp;amp; StdoutRead($hBEMCLI)&lt;br /&gt;
				If $outputBEMCLI = &amp;quot;&amp;quot; Then&lt;br /&gt;
					; anymore no output, oh oh&lt;br /&gt;
					If $stdoutReadFEHLER &amp;lt;&amp;gt; &amp;quot;&amp;quot; Then&lt;br /&gt;
						; but we have an error message&lt;br /&gt;
						Return $errorsBEMCLI&lt;br /&gt;
					EndIf&lt;br /&gt;
				EndIf&lt;br /&gt;
			EndIf&lt;br /&gt;
		EndIf&lt;br /&gt;
	Until $stdoutReadFEHLER Or TimerDiff($iBEMCLImaxWaitTimeSTART) &amp;gt; $iBEMCLImaxWaitTime&lt;br /&gt;
	;MsgBox(0,&amp;quot;&amp;quot;,$outputBEMCLI)&lt;br /&gt;
	Return $outputBEMCLI&lt;br /&gt;
EndFunc ;&amp;lt;== End _BEMCLI()&lt;br /&gt;
&lt;br /&gt;
; ##########################################################################################################################&lt;br /&gt;
; ##########################################################################################################################&lt;br /&gt;
;                                       ####################################################################################&lt;br /&gt;
; ##     ##    ###    #### ##    ##     ####################################################################################&lt;br /&gt;
; ###   ###   ## ##    ##  ###   ##     ####################################################################################&lt;br /&gt;
; #### ####  ##   ##   ##  ####  ##     ####################################################################################&lt;br /&gt;
; ## ### ## ##     ##  ##  ## ## ##     ####################################################################################&lt;br /&gt;
; ##     ## #########  ##  ##  ####     ####################################################################################&lt;br /&gt;
; ##     ## ##     ##  ##  ##   ###     ####################################################################################&lt;br /&gt;
; ##     ## ##     ## #### ##    ##     ####################################################################################&lt;br /&gt;
;                                       ####################################################################################&lt;br /&gt;
; ##########################################################################################################################&lt;br /&gt;
; ##########################################################################################################################&lt;br /&gt;
&lt;br /&gt;
If StringInStr($CmdLineRaw, &amp;quot;discoverjobs&amp;quot;) &amp;gt; 0 Then&lt;br /&gt;
	Dim $s_JSONOutput&lt;br /&gt;
	; Get all scheduled and active Jobs&lt;br /&gt;
	$stemp = _BEMCLI($aparameter[0])&lt;br /&gt;
&lt;br /&gt;
	$atemp = StringSplit($stemp, @CRLF)&lt;br /&gt;
&lt;br /&gt;
	For $i = 1 To $atemp[0]&lt;br /&gt;
		If StringLeft($atemp[$i],StringLen(&amp;quot;Id&amp;quot;)) = &amp;quot;Id&amp;quot; Then&lt;br /&gt;
			$aatemp = StringSplit($atemp[$i],&amp;#039; : &amp;#039;, 1)&lt;br /&gt;
			_ArrayAdd($aBackupJobs_byID, $aatemp[$aatemp[0]])&lt;br /&gt;
			$aBackupJobs_byID[0] = $aBackupJobs_byID[0] + 1&lt;br /&gt;
		EndIf&lt;br /&gt;
		If StringLeft($atemp[$i],StringLen(&amp;quot;Name&amp;quot;)) = &amp;quot;Name&amp;quot; Then&lt;br /&gt;
			$aatemp = StringSplit($atemp[$i],&amp;#039; : &amp;#039;, 1)&lt;br /&gt;
			_ArrayAdd($aBackupJobs_byName, $aatemp[$aatemp[0]])&lt;br /&gt;
			$aBackupJobs_byName[0] = $aBackupJobs_byName[0] + 1&lt;br /&gt;
		EndIf&lt;br /&gt;
		If StringLeft($atemp[$i],StringLen(&amp;quot;SelectionSummary&amp;quot;)) = &amp;quot;SelectionSummary&amp;quot; Then&lt;br /&gt;
			$aatemp = StringSplit($atemp[$i],&amp;#039; : &amp;#039;, 1)&lt;br /&gt;
			_ArrayAdd($aBackupJobs_Selection, $aatemp[$aatemp[0]])&lt;br /&gt;
			$aBackupJobs_Selection[0] = $aBackupJobs_Selection[0] + 1&lt;br /&gt;
		EndIf&lt;br /&gt;
	Next&lt;br /&gt;
	$s_JSONOutput = &amp;#039;{&amp;quot;data&amp;quot;:[&amp;#039;&lt;br /&gt;
	For $i = 1 To $aBackupJobs_byName[0]&lt;br /&gt;
		$s_JSONOutput = $s_JSONOutput &amp;amp; @CRLF&lt;br /&gt;
		$s_JSONOutput = $s_JSONOutput &amp;amp; &amp;quot;     &amp;quot; &amp;amp; &amp;#039;{&amp;#039; &amp;amp; @CRLF&lt;br /&gt;
		$s_JSONOutput = $s_JSONOutput &amp;amp; &amp;quot;          &amp;quot; &amp;amp; &amp;#039;&amp;quot;{#BACKUPEXECJOB}&amp;quot;:&amp;quot;&amp;#039; &amp;amp; $aBackupJobs_byName[$i] &amp;amp; &amp;#039;&amp;quot;,&amp;#039; &amp;amp; @CRLF&lt;br /&gt;
		$s_JSONOutput = $s_JSONOutput &amp;amp; &amp;quot;          &amp;quot; &amp;amp; &amp;#039;&amp;quot;{#BACKUPEXECID}&amp;quot;:&amp;quot;&amp;#039; &amp;amp; $aBackupJobs_byID[$i] &amp;amp; &amp;#039;&amp;quot;,&amp;#039; &amp;amp; @CRLF&lt;br /&gt;
		;$s_JSONOutput = $s_JSONOutput &amp;amp; &amp;quot;          &amp;quot; &amp;amp; &amp;#039;&amp;quot;{#BACKUPEXECSELECTION}&amp;quot;:&amp;quot;&amp;#039; &amp;amp; $aBackupJobs_Selection[$i] &amp;amp; &amp;#039;&amp;quot;&amp;#039; &amp;amp; @CRLF&lt;br /&gt;
		$s_JSONOutput = $s_JSONOutput &amp;amp; &amp;quot;          &amp;quot; &amp;amp; &amp;#039;&amp;quot;{#BACKUPEXECSELECTION}&amp;quot;:&amp;quot;&amp;#039; &amp;amp; &amp;quot;---&amp;quot; &amp;amp; &amp;#039;&amp;quot;&amp;#039; &amp;amp; @CRLF&lt;br /&gt;
		$s_JSONOutput = $s_JSONOutput &amp;amp; &amp;quot;     &amp;quot; &amp;amp; &amp;#039;},&amp;#039;&lt;br /&gt;
	Next&lt;br /&gt;
	$s_JSONOutput = StringTrimRight($s_JSONOutput, 1) &amp;amp; @CRLF &amp;amp; &amp;#039;]}&amp;#039;&lt;br /&gt;
	ConsoleWrite($s_JSONOutput &amp;amp; @CRLF)&lt;br /&gt;
EndIf&lt;br /&gt;
&lt;br /&gt;
If $CmdLine[0] = 2 Then&lt;br /&gt;
	If $CmdLine[1] = &amp;quot;jobstatus&amp;quot; Then&lt;br /&gt;
		$stemp = _BEMCLI(StringReplace($aparameter[3], &amp;#039;{ID of Job}&amp;#039;,$CmdLine[2]))&lt;br /&gt;
		$atemp = StringSplit($stemp, @CRLF)&lt;br /&gt;
		For $i = 1 To $atemp[0]&lt;br /&gt;
			If StringLeft($atemp[$i],StringLen(&amp;quot;JobStatus&amp;quot;)) = &amp;quot;JobStatus&amp;quot; Then&lt;br /&gt;
				$aatemp = StringSplit($atemp[$i],&amp;#039; : &amp;#039;,1)&lt;br /&gt;
				$sJobStatus = $aatemp[$aatemp[0]]&lt;br /&gt;
				ConsoleWrite($sJobStatus &amp;amp; @CRLF)&lt;br /&gt;
				Exit 0&lt;br /&gt;
			EndIf&lt;br /&gt;
			If StringInStr($atemp[$i], &amp;quot;Get-BEJob : Cannot find&amp;quot;) &amp;gt; 0 Then&lt;br /&gt;
				ConsoleWrite(&amp;quot;ZBX_NOTSUPPORTED&amp;quot; &amp;amp; @CRLF)&lt;br /&gt;
				Exit 0&lt;br /&gt;
			EndIf&lt;br /&gt;
		Next&lt;br /&gt;
	EndIf&lt;br /&gt;
&lt;br /&gt;
	If $CmdLine[1] = &amp;quot;jobhowlongago&amp;quot; Then&lt;br /&gt;
		$stemp = _BEMCLI(StringReplace($aparameter[3], &amp;#039;{ID of Job}&amp;#039;,$CmdLine[2]))&lt;br /&gt;
		$atemp = StringSplit($stemp, @CRLF)&lt;br /&gt;
		For $i = 1 To $atemp[0]&lt;br /&gt;
			If StringLeft($atemp[$i],StringLen(&amp;quot;StartTime&amp;quot;)) = &amp;quot;StartTime&amp;quot; Then&lt;br /&gt;
				$aatemp = StringSplit($atemp[$i],&amp;#039; : &amp;#039;,1)&lt;br /&gt;
				$stemp = $aatemp[$aatemp[0]]&lt;br /&gt;
				$aDateTemp = StringSplit($stemp, &amp;quot; .&amp;quot;)&lt;br /&gt;
				; [1] = Tag&lt;br /&gt;
				; [2] = Monat&lt;br /&gt;
				; [3] = Jahr&lt;br /&gt;
				; [4] = Uhrzeit als hh:mm:ss&lt;br /&gt;
				$iJobhowlongago = _DateDiff(&amp;quot;s&amp;quot;, $aDateTemp[3] &amp;amp; &amp;quot;/&amp;quot; &amp;amp; $aDateTemp[2] &amp;amp; &amp;quot;/&amp;quot; &amp;amp; $aDateTemp[1] &amp;amp; &amp;quot; &amp;quot; &amp;amp; $aDateTemp[4], @YEAR &amp;amp; &amp;quot;/&amp;quot; &amp;amp; @MON &amp;amp; &amp;quot;/&amp;quot; &amp;amp; @MDAY &amp;amp; &amp;quot; &amp;quot; &amp;amp; @HOUR &amp;amp; &amp;quot;:&amp;quot; &amp;amp; @MIN &amp;amp; &amp;quot;:&amp;quot; &amp;amp; @SEC)&lt;br /&gt;
				ConsoleWrite($iJobhowlongago &amp;amp; @CRLF)&lt;br /&gt;
				Exit 0&lt;br /&gt;
			EndIf&lt;br /&gt;
			If StringInStr($atemp[$i], &amp;quot;Get-BEJob : Cannot find&amp;quot;) &amp;gt; 0 Then&lt;br /&gt;
				ConsoleWrite(&amp;quot;ZBX_NOTSUPPORTED&amp;quot; &amp;amp; @CRLF)&lt;br /&gt;
				Exit 0&lt;br /&gt;
			EndIf&lt;br /&gt;
		Next&lt;br /&gt;
	EndIf&lt;br /&gt;
&lt;br /&gt;
	If $CmdLine[1] = &amp;quot;jobbytes&amp;quot; Then&lt;br /&gt;
		$stemp = _BEMCLI(StringReplace($aparameter[3], &amp;#039;{ID of Job}&amp;#039;,$CmdLine[2]))&lt;br /&gt;
		$atemp = StringSplit($stemp, @CRLF)&lt;br /&gt;
		For $i = 1 To $atemp[0]&lt;br /&gt;
			If StringLeft($atemp[$i],StringLen(&amp;quot;TotalDataSizeBytes&amp;quot;)) = &amp;quot;TotalDataSizeBytes&amp;quot; Then&lt;br /&gt;
				$aatemp = StringSplit($atemp[$i],&amp;#039; : &amp;#039;,1)&lt;br /&gt;
				$stemp = $aatemp[$aatemp[0]]&lt;br /&gt;
				$iJobBytes = Int($stemp)&lt;br /&gt;
				ConsoleWrite($iJobBytes &amp;amp; @CRLF)&lt;br /&gt;
				Exit 0&lt;br /&gt;
			EndIf&lt;br /&gt;
			If StringInStr($atemp[$i], &amp;quot;Get-BEJob : Cannot find&amp;quot;) &amp;gt; 0 Then&lt;br /&gt;
				ConsoleWrite(&amp;quot;ZBX_NOTSUPPORTED&amp;quot; &amp;amp; @CRLF)&lt;br /&gt;
				Exit 0&lt;br /&gt;
			EndIf&lt;br /&gt;
		Next&lt;br /&gt;
	EndIf&lt;br /&gt;
&lt;br /&gt;
	If $CmdLine[1] = &amp;quot;jobruntime&amp;quot; Then&lt;br /&gt;
		$stemp = _BEMCLI(StringReplace($aparameter[3], &amp;#039;{ID of Job}&amp;#039;,$CmdLine[2]))&lt;br /&gt;
		$atemp = StringSplit($stemp, @CRLF)&lt;br /&gt;
		For $i = 1 To $atemp[0]&lt;br /&gt;
			If StringLeft($atemp[$i],StringLen(&amp;quot;ElapsedTime&amp;quot;)) = &amp;quot;ElapsedTime&amp;quot; Then&lt;br /&gt;
				$aatemp = StringSplit($atemp[$i],&amp;#039; : &amp;#039;,1)&lt;br /&gt;
				$stemp = $aatemp[$aatemp[0]]&lt;br /&gt;
				$aRuntimeTemp = StringSplit($stemp,&amp;quot;:&amp;quot;)&lt;br /&gt;
				; [1] = Stunden&lt;br /&gt;
				; [2] = Minuten&lt;br /&gt;
				; [3] = Sekunden&lt;br /&gt;
				$iJobRuntime = Int($aRuntimeTemp[3]) + (Int($aRuntimeTemp[2]) * 60) + (Int($aRuntimeTemp[1]) * 3600)&lt;br /&gt;
				ConsoleWrite($iJobRuntime &amp;amp; @CRLF)&lt;br /&gt;
				Exit 0&lt;br /&gt;
			EndIf&lt;br /&gt;
			If StringInStr($atemp[$i], &amp;quot;Get-BEJob : Cannot find&amp;quot;) &amp;gt; 0 Then&lt;br /&gt;
				ConsoleWrite(&amp;quot;ZBX_NOTSUPPORTED&amp;quot; &amp;amp; @CRLF)&lt;br /&gt;
				Exit 0&lt;br /&gt;
			EndIf&lt;br /&gt;
		Next&lt;br /&gt;
	EndIf&lt;br /&gt;
&lt;br /&gt;
	If $CmdLine[1] = &amp;quot;jobPercentComplete&amp;quot; Then&lt;br /&gt;
		$stemp = _BEMCLI(StringReplace($aparameter[3], &amp;#039;{ID of Job}&amp;#039;,$CmdLine[2]))&lt;br /&gt;
		$atemp = StringSplit($stemp, @CRLF)&lt;br /&gt;
		For $i = 1 To $atemp[0]&lt;br /&gt;
			If StringLeft($atemp[$i],StringLen(&amp;quot;PercentComplete&amp;quot;)) = &amp;quot;PercentComplete&amp;quot; Then&lt;br /&gt;
				$aatemp = StringSplit($atemp[$i],&amp;#039; : &amp;#039;,1)&lt;br /&gt;
				$iJobPercentComplete = $aatemp[$aatemp[0]]&lt;br /&gt;
				If $iJobPercentComplete = -1 Then&lt;br /&gt;
					$iJobPercentComplete = 0&lt;br /&gt;
				EndIf&lt;br /&gt;
				ConsoleWrite($iJobPercentComplete &amp;amp; @CRLF)&lt;br /&gt;
				Exit 0&lt;br /&gt;
			EndIf&lt;br /&gt;
			If StringInStr($atemp[$i], &amp;quot;Get-BEJob : Cannot find&amp;quot;) &amp;gt; 0 Then&lt;br /&gt;
				ConsoleWrite(&amp;quot;ZBX_NOTSUPPORTED&amp;quot; &amp;amp; @CRLF)&lt;br /&gt;
				Exit 0&lt;br /&gt;
			EndIf&lt;br /&gt;
		Next&lt;br /&gt;
	EndIf&lt;br /&gt;
&lt;br /&gt;
	If $CmdLine[1] = &amp;quot;jobErrorCode&amp;quot; Then&lt;br /&gt;
		$stemp = _BEMCLI(StringReplace($aparameter[3], &amp;#039;{ID of Job}&amp;#039;,$CmdLine[2]))&lt;br /&gt;
		$atemp = StringSplit($stemp, @CRLF)&lt;br /&gt;
		For $i = 1 To $atemp[0]&lt;br /&gt;
			If StringLeft($atemp[$i],StringLen(&amp;quot;ErrorCode&amp;quot;)) = &amp;quot;ErrorCode&amp;quot; Then&lt;br /&gt;
				$aatemp = StringSplit($atemp[$i],&amp;#039; : &amp;#039;,1)&lt;br /&gt;
				$iJobErrorCode = $aatemp[$aatemp[0]]&lt;br /&gt;
				ConsoleWrite($iJobErrorCode &amp;amp; @CRLF)&lt;br /&gt;
				Exit 0&lt;br /&gt;
			EndIf&lt;br /&gt;
			If StringInStr($atemp[$i], &amp;quot;Get-BEJob : Cannot find&amp;quot;) &amp;gt; 0 Then&lt;br /&gt;
				ConsoleWrite(&amp;quot;ZBX_NOTSUPPORTED&amp;quot; &amp;amp; @CRLF)&lt;br /&gt;
				Exit 0&lt;br /&gt;
			EndIf&lt;br /&gt;
		Next&lt;br /&gt;
	EndIf&lt;br /&gt;
&lt;br /&gt;
	If $CmdLine[1] = &amp;quot;jobErrorCategory&amp;quot; Then&lt;br /&gt;
		$stemp = _BEMCLI(StringReplace($aparameter[3], &amp;#039;{ID of Job}&amp;#039;,$CmdLine[2]))&lt;br /&gt;
		$atemp = StringSplit($stemp, @CRLF)&lt;br /&gt;
		For $i = 1 To $atemp[0]&lt;br /&gt;
			If StringLeft($atemp[$i],StringLen(&amp;quot;ErrorCategory&amp;quot;)) = &amp;quot;ErrorCategory&amp;quot; Then&lt;br /&gt;
				$aatemp = StringSplit($atemp[$i],&amp;#039; : &amp;#039;,1)&lt;br /&gt;
				$iJobErrorCode = $aatemp[$aatemp[0]]&lt;br /&gt;
				ConsoleWrite($iJobErrorCode &amp;amp; @CRLF)&lt;br /&gt;
				Exit 0&lt;br /&gt;
			EndIf&lt;br /&gt;
			If StringInStr($atemp[$i], &amp;quot;Get-BEJob : Cannot find&amp;quot;) &amp;gt; 0 Then&lt;br /&gt;
				ConsoleWrite(&amp;quot;ZBX_NOTSUPPORTED&amp;quot; &amp;amp; @CRLF)&lt;br /&gt;
				Exit 0&lt;br /&gt;
			EndIf&lt;br /&gt;
		Next&lt;br /&gt;
	EndIf&lt;br /&gt;
&lt;br /&gt;
EndIf&lt;br /&gt;
&lt;br /&gt;
Exit 0&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Kommentare==&lt;br /&gt;
&amp;lt;comments /&amp;gt;&lt;/div&gt;</summary>
		<author><name>BLinz2</name></author>
	</entry>
</feed>