<?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=Exchange_Build_Nummer_mit_Zabbix_abfragen</id>
	<title>Exchange Build Nummer mit Zabbix abfragen - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://znil.net/index.php?action=history&amp;feed=atom&amp;title=Exchange_Build_Nummer_mit_Zabbix_abfragen"/>
	<link rel="alternate" type="text/html" href="https://znil.net/index.php?title=Exchange_Build_Nummer_mit_Zabbix_abfragen&amp;action=history"/>
	<updated>2026-04-28T08:32:43Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in znilwiki</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://znil.net/index.php?title=Exchange_Build_Nummer_mit_Zabbix_abfragen&amp;diff=11842&amp;oldid=prev</id>
		<title>BLinz am 27. Februar 2020 um 13:43 Uhr</title>
		<link rel="alternate" type="text/html" href="https://znil.net/index.php?title=Exchange_Build_Nummer_mit_Zabbix_abfragen&amp;diff=11842&amp;oldid=prev"/>
		<updated>2020-02-27T13:43:11Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Problemstellung==&lt;br /&gt;
Im Zusammenhang mit einer Exchange Sicherheitslücke (CVE-2020-0688) kam die Frage auf wie wir schnell und dauerhaft einen Überblick über die Exchange-Versionen in den vielen überwachten Umgebungen erhalten können.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Die Exchange-Profis gaben wir folgenden PowerShell-Befehl:&amp;lt;br&amp;gt;&lt;br /&gt;
 Get-ExchangeServer | Format-List Name,Edition,AdminDisplayVersion&lt;br /&gt;
Die Ausgabe sieht wie folgt aus:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-200227-141421.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Ich fand das zu aufwendig über die PowerShell und habe mich nach anderen Möglichkeiten umgesehen.&amp;lt;br&amp;gt;&lt;br /&gt;
In der &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;Systemsteuerung&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; unter &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;Programme und Funktionen&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; kann man diese Versionsnummer ja auch sehen:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-200227-141724.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Also habe ich mich in der Registry auf die Suche nach dieser Nummer gemacht - und bin mehrfach fündig geworden.&amp;lt;br&amp;gt;&lt;br /&gt;
Zum Beispiel hier:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-200227-141923.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
 HKLM\SOFTWARE\Microsoft\ExchangeServer\v15\ClientAccessRole      REG_SZ      ConfiguredVersion&lt;br /&gt;
Ein schneller Test brachte hervor das es diesen Schlüssel identisch für&amp;lt;br&amp;gt;&lt;br /&gt;
 Exchange 2013&lt;br /&gt;
 Exchange 2016&lt;br /&gt;
 Exchange 2019&lt;br /&gt;
gibt. Bei Exchange 2010 ist die Version &amp;lt;code&amp;gt;v14&amp;lt;/code&amp;gt; statt &amp;lt;code&amp;gt;v15&amp;lt;/code&amp;gt;:&amp;lt;br&amp;gt;&lt;br /&gt;
 HKLM\SOFTWARE\Microsoft\ExchangeServer\v14\ClientAccessRole      REG_SZ      ConfiguredVersion&lt;br /&gt;
Prima, brauchen wir also nur den Registry-Schlüssel auslesen.&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Wert aus Registry auslesen==&lt;br /&gt;
Es ist zwar kaum zu glauben - aber das hatte ich in Zabbix noch nicht gebraucht.&amp;lt;br&amp;gt;&lt;br /&gt;
Wenn man danach googelt findet man &amp;#039;&amp;#039;&amp;#039;.vbs&amp;#039;&amp;#039;&amp;#039;-Skripte oder PowerShell-Befehle welche als &amp;#039;&amp;#039;&amp;#039;UserParameter&amp;#039;&amp;#039;&amp;#039; in den Agenten eingebunden werden.&amp;lt;br&amp;gt;&lt;br /&gt;
Das wäre jetzt aber doch schon aufwendiger gewesen - schließlich müsste man dazu überall die Agentenkonfiguration anpassen um den neuen UserParameter hinzu zu fügen.&amp;lt;br&amp;gt;&lt;br /&gt;
Eine andere, of übersehende Methode ist der Item-Key&amp;lt;br&amp;gt;&lt;br /&gt;
 system.run[&amp;lt;Befehl&amp;gt;]&lt;br /&gt;
Dieser setzt aber voraus das in der Agentenkonfiguration der Parameter&amp;lt;br&amp;gt;&lt;br /&gt;
 EnableRemoteCommands=1&lt;br /&gt;
gesetzt ist. Was er aber in unseren Umgebungen ist (und auch in dem von mir geschriebene Installationsskript).&amp;lt;br&amp;gt;&lt;br /&gt;
So konnten wir schnell eine Prüfung zusammenbauen:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-200227-142856.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Der Item Key ist:&amp;lt;br&amp;gt;&lt;br /&gt;
 system.run[@echo off &amp;amp; FOR /F &amp;quot;tokens=2* skip=2&amp;quot; %a in (&amp;#039;reg query HKLM\SOFTWARE\Microsoft\ExchangeServer\v15\ClientAccessRole /v ConfiguredVersion&amp;#039;) do echo %b]&lt;br /&gt;
und liefert dann nur die Version zurück:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-200227-143127.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Wie zuvor erwähnt - für Exchange 2010 aus dem v15 ein V14 machen.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Anmerkungen==&lt;br /&gt;
Getestet wurde es mit Zabbix 4.x und 3.x&amp;lt;br&amp;gt;&lt;br /&gt;
Falls es nicht geht fügt der Agentenkonfiguration noch die folgende Zeile hinzu:&amp;lt;br&amp;gt;&lt;br /&gt;
 UnsafeUserParameters=1 &lt;br /&gt;
Die habe ich auch überall gesetzt. Damit werden in Item-Parametern Sonderzeichen erlaubt (das brauchte ich vor Jahren schon einmal).&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Der reine CMD-Befehl ist:&amp;lt;br&amp;gt;&lt;br /&gt;
 @echo off &amp;amp; FOR /F &amp;quot;tokens=2* skip=2&amp;quot; %a in (&amp;#039;reg query HKLM\SOFTWARE\Microsoft\ExchangeServer\v15\ClientAccessRole /v ConfiguredVersion&amp;#039;) do echo %b&lt;br /&gt;
Normalerweise wenn danach googelt wird es immer&lt;br /&gt;
 %%a %%b&lt;br /&gt;
sein - das ist nur innerhalb einer Batchdatei so. Das da oben ist ein Einzeiler wie Ihr ihn auch direkt eintippen könnt.&amp;lt;br&amp;gt;&lt;br /&gt;
Der &amp;lt;code&amp;gt;reg query&amp;lt;/code&amp;gt; Befehl liefert eine 3teilige Ausgabe zurück welche wir mit dem &amp;lt;code&amp;gt;FOR&amp;lt;/code&amp;gt; zerlegen und uns nur den 3 Abschnitt zurückgeben lassen.&amp;lt;br&amp;gt;&lt;br /&gt;
Das funktioniert hier gut weil das Ergebnis keine Leerzeichen etc. hat.&amp;lt;br&amp;gt;&lt;br /&gt;
Das &amp;lt;code&amp;gt;@echo off&amp;lt;/code&amp;gt; brauchen wir davor damit er den &amp;lt;code&amp;gt;echo&amp;lt;/code&amp;gt; Befehel selbst nicht mit hinschreibt.&amp;lt;br&amp;gt;&lt;br /&gt;
Ein&amp;lt;br&amp;gt;&lt;br /&gt;
 do @echo %b&lt;br /&gt;
würde wohl auch gehen (jetzt wo ich so darüber nachdenke&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Quellen==&lt;br /&gt;
* https://www.zabbix.com/documentation/current/manual/config/items/itemtypes/zabbix_agent&lt;br /&gt;
----&lt;br /&gt;
==Kommentare==&lt;br /&gt;
&amp;lt;comments /&amp;gt;&lt;/div&gt;</summary>
		<author><name>BLinz</name></author>
	</entry>
</feed>