tag:blogger.com,1999:blog-39830847397127570272024-02-19T01:58:08.016-08:00Aus der IT Praxis... Exchange and moreMicrosoft Exchange, Windows Server, Hyper-V und Failover Cluster. Alles aus der Praxis.Beat Brunnerhttp://www.blogger.com/profile/11354344382754234466noreply@blogger.comBlogger81125tag:blogger.com,1999:blog-3983084739712757027.post-72818479038570536872021-12-09T02:25:00.001-08:002021-12-09T02:25:12.943-08:00Hyper-V Livemigration auf Windows Server Core schlägt fehl (0x8009030D)<p> Die Installation eines Hyper-V Hostes mit Windows Server Core bietet sich an. Oder ihr verwendet eine der kostenlosen Windows Versionen "Hyper-V Server 2016" oder "Hyper-V Server 2019". Die kosten nichts, können aber nicht mit Desktop experience installiert werden.</p><p>Die Verwaltung der virtuellen Computer auf dem Hyper-V Host lässt sich wunderbar remote erledigen.</p><p>Doch vor kurzem habe ich doch etwas gefunden, was sich von der Ferne schlecht erledigen lässt. Wie ihr sicher wisst, funktionieren Livemigrationen von virtuellen Computern zwischen Hyper-V Hosts, auch wenn sie sich nicht als Cluster verbunden sind. Am einfachsten geht das zwischen Hyper-V Host welche Mitglied der gleichen Domäne sind.</p><p>Ich hatte damit nie Probleme, bis ich versucht habe eine VM per Livemigration von einem Hyper-V Host auf einen anderen Hyper-V Host zu verschieben und bei der Hyper-V Host's waren mit Windows Server Core installiert. Mir wurde eine unschöne Fehlermeldung angezeigt, die besagte, dass die Authentifizierung zwischen den Hyper-V Hosts nicht funktionierte und darum die VM nicht verschoben werden kann.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEiJQWbNLsREMoIQuXFhdvknHfj050zvuFRmEl-KoRVSl51RUDjmAzpt606H81nyz5txYo_AIMr8fwT6Veo5fKxg9vBJjTItQT_YrQ7tUp0A4TzcH54FobEvOdjGw506_TdGjO5g_-VzusgYx4xoEgiWRVlXcomOenr5SbkQMpiTFDMgVJBpOCtAmXXb=s499" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="337" data-original-width="499" height="432" src="https://blogger.googleusercontent.com/img/a/AVvXsEiJQWbNLsREMoIQuXFhdvknHfj050zvuFRmEl-KoRVSl51RUDjmAzpt606H81nyz5txYo_AIMr8fwT6Veo5fKxg9vBJjTItQT_YrQ7tUp0A4TzcH54FobEvOdjGw506_TdGjO5g_-VzusgYx4xoEgiWRVlXcomOenr5SbkQMpiTFDMgVJBpOCtAmXXb=w640-h432" width="640" /></a></div><br /><p>Dies ist die Fehlermeldung als Text:</p><p><i>Failed to establish a connection with host 'host name': No credentials are available in the security package (0x8009030E)</i></p><p>und in Deutsch:</p><p><i>Fehler beim Herstellen einer Verbindung mit dem Host 'host name': Die Anmeldeinformationen, die dem Paket übergeben wurden, wurden nicht erkannt. (0x8009030D).</i></p><p>Das Problem ist, dass für die Authentifizierung zwischen den Hyper-V Hosts standardmässig CredSSP verwendet wird. Dies hat einen entscheidenden Nachteil: </p><p>Man muss interaktiv an dem Hyper-V Host angemeldet sein, von dem aus man die Livemigration startet. Nur lässt sich auf einem Windows Server Core die Hyper-V Verwaltungskonsole nicht installieren. Man verwaltet die VMs aus der Ferne auf einem Admin-Server mit GUI.</p><p>Es gibt viele Vorschläge, wie man diese Problem lösen kann. Aus meiner Sicht ist es aber am einfachsten, die Livemigrationen direkt auf dem Hyper-V Host mit PowerShell zu starten:</p><p><span style="font-family: courier;">Move-VM -Name Test-VM001 -DestinationHost Host01 -IncludeStorage -DestinationStoragePath "D:\Hyper-V\Test-VM001"</span></p><p><br /></p><p><br /></p><p><br /></p><p><br /></p>Beat Brunnerhttp://www.blogger.com/profile/11354344382754234466noreply@blogger.com0tag:blogger.com,1999:blog-3983084739712757027.post-50315087364041141002021-03-08T01:18:00.012-08:002021-03-15T00:42:32.323-07:00Sicherheitslücke in Exchange - Wurde ich schon angegriffen? Hafnium Test<p> Es wurden ja in den letzten Monaten öfters Sicherheits-Updates für Exchange veröffentlicht. Doch die Sicherheitslücken, für welche Anfang März 2021 Patches veröffentlicht wurden, scheint eine der gefährlicheren zu sein. Informationen dazu gibt es auf dem <a href="https://techcommunity.microsoft.com/t5/exchange-team-blog/released-march-2021-exchange-server-security-updates/ba-p/2175901" target="_blank">Exchange Team Blog</a>, im <a href="https://msrc-blog.microsoft.com/2021/03/02/multiple-security-updates-released-for-exchange-server/" target="_blank">MS Security Blog</a> oder auch bei <a href="https://eightwone.com/2021/03/02/security-update-exchange-2010-2019-mar2021/" target="_blank">EighTwOne.com</a>.</p><p>Wichtig ist auch noch zu prüfen, ob schon ein Angriff stattgefunden hat, dies geht einfach mit dem Script Test-ProxyLogon.ps1: <a href="https://github.com/microsoft/CSS-Exchange/tree/main/Security" target="_blank">https://github.com/microsoft/CSS-Exchange/tree/main/Security</a></p><p>Unter obigem Link gibt es noch weitere Scripts, welche zu diesem Thema gehören. Das Script ExchangeMitigations.ps1 soll nur angewendet werden, wenn ihr den Exchange Server aus irgendwelchen Gründen nicht sofort Patchen könnt. Das selbe gilt für BackendCookieMitigation.ps1. Diese beiden Scripts benötigt ihr also nicht, wenn ihr die Sicherheits-Updates installiert.</p><p>Das Script CompareExchangeHashes.ps1 nutzt euch nur etwas, wenn ihr einen Supportvertrag mit Microsoft habt. Es soll zusätzlich prüfen, ob ihr angegriffen worden seid. Das Problem ist aber, dass das Script 600 - 800 MB grosse XML-Dateien produziert und immer sagt, ihr seid angegriffen worden. Auch wenn man das Script auf einem neu installierten Exchange Server ohne Internetverbindung ausführt, wie ihr hier nachlesen könnt: <a href="https://www.reddit.com/r/sysadmin/comments/m16y8m/hafnium_breach_recap_new_compareexchangehashes/" style="font-family: Calibri, sans-serif; font-size: 11pt;" target="_blank">https://www.reddit.com/r/sysadmin/comments/m16y8m/hafnium_breach_recap_new_compareexchangehashes/</a><br />Am Ende könnt ihr dass eben die XML-Dateien bei Microsoft hochladen, doch eben nur mit einem Supportvertrag.</p><p>Jedoch gibt es noch das Script HealtjCheck, welches sehr hilfreich ist: <a href="https://github.com/dpaulson45/HealthChecker#download" target="_blank">https://github.com/dpaulson45/HealthChecker#download</a></p><p>Damit könnt ihr einfach nachschauen, ob alle eure Exchange Server aktuell sind und es werden sonst noch sinnvolle Einstellungen geprüft.</p><p>Wenn euere Exchange Organisation aus mehren Exchange Server besteht, startend ihr das Health Checker Script am einfachsten mit folgenden Command:</p><p><span style="font-family: courier;">Get-ExchangeServer | ?{$_.AdminDisplayVersion -Match "^Version 15"} | %{.\HealthChecker.ps1 -Server $_.Name}; .\HealthChecker.ps1 -BuildHtmlServersReport; .\ExchangeAllServersReport.html</span></p>Beat Brunnerhttp://www.blogger.com/profile/11354344382754234466noreply@blogger.com0tag:blogger.com,1999:blog-3983084739712757027.post-77370016951477987562020-10-14T02:18:00.004-07:002020-10-14T02:29:43.518-07:00Schon wieder ein neuer Sicherheits-Patch für Exchange (CVE-2020-16969)<p> Kaum haben wir unsere Exchange-Umgebungen wieder sicher gemacht, indem eines der neusten CU's installiert wurde, erscheint schon wieder ein neuer Sicherheits-Patch für Exchange. Folgende Versionen sind betroffen:</p><p></p><ul style="text-align: left;"><li>Microsoft Exchange Server 2013 Cumulative Update 23</li><li>Microsoft Exchange Server 2016 Cumulative Update 17</li><li>Microsoft Exchange Server 2016 Cumulative Update 18</li><li>Microsoft Exchange Server 2019 Cumulative Update 6</li><li>Microsoft Exchange Server 2019 Cumulative Update 7</li></ul><div>Das Problem hat damit zu tun, wie Exchange Token validiert. Ein Angreifer, der die Sicherheitslücke erfolgreich ausnutzt, kann dies verwenden um weitere Informationen von einem Benutzer zu erhalten.</div><div><br /></div><div>Hier die Original-Beschreibung von Microsoft:</div><div><br /></div><div><div><i>An information disclosure vulnerability exists in how Microsoft Exchange validates tokens when handling certain messages. An attacker who successfully exploited the vulnerability could use this to gain further information from a user.</i></div><div><i><br /></i></div><div><i>To exploit the vulnerability, an attacker could include specially crafted OWA messages that could be loaded, without warning or filtering, from the attacker-controlled URL. This callback vector provides an information disclosure tactic used in web beacons and other types of tracking systems.</i></div><div><i><br /></i></div><div><i>The security update corrects the way that Exchange handles these token validations.</i></div></div><div><br /></div><div>Quelle: <a href="https://portal.msrc.microsoft.com/en-us/security-guidance/advisory/CVE-2020-16969" target="_blank">https://portal.msrc.microsoft.com/en-us/security-guidance/advisory/CVE-2020-16969</a></div><div><br /></div><div>Unter dem Link findet ihr weitere Informationen und könnt die Sicherheits-Paches herunterladen.</div><div><br /></div><div>Der Patch kommt als *.msp und ist in etwa 160 MB gross. Während der Installation werden die Exchange Services sowie der IIS gestoppt. Es gibt also einen Dienstunterbruch um am Ende muss der Server neu gestartet werden. Bei mir hat die Installation ca. eine Stunde gedauert. Am Ende musste der Server neu gestartet werden.</div><div><br /></div><div>Startet die Installation in einem CMD mit erhöhten Rechten und falls ihr eine Umgebung mit mehreren Exchange Servern betreibt, setzt die Server vor der Installation in den Maintenance Mode.</div><div><br /></div><p></p>Beat Brunnerhttp://www.blogger.com/profile/11354344382754234466noreply@blogger.com0tag:blogger.com,1999:blog-3983084739712757027.post-10940234693812287032020-10-06T01:23:00.003-07:002020-10-06T01:23:43.237-07:00Exchange Sicherheits-Updates<p> Gerade geht wieder durch die Fachpresse, dass es immer noch diverse Exchange Umgebungen gibt, welche dringend Sicherheitsupdates benötigen. Erstaunlich ist vor allen, dass die aktuellen Meldungen eine bekannte Sicherheitslücke betreffen, welche seit Anfang 2020 bekannt ist, seit Februar 2020 gibt es einen Patch dafür (<a href="https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2020-0688" target="_blank">CVE-2020-0688</a>). Aktive Angriffe sind bekannt.</p><p>Im Sommer 2020 wurde eine weitere Sicherheitslücke bekannt. Dafür hat Microsoft im September 2020 einen Patch veröffentlicht (<a href="https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2020-16875" target="_blank">CVE-2020-16875</a>).</p><p>Beide Sicherheitslücken schliesst ihr am einfachsten, indem ihr die neuesten CU's installiert.</p><p><a href="https://support.microsoft.com/kb/KB4571787" target="_blank">Exchange 2019 CU7</a></p><p><a href="https://www.microsoft.com/download/details.aspx?familyID=42086856-b6eb-4c6c-96cd-1c9d33a07d04" target="_blank">Exchange Server 2016 CU18</a></p><p><a href="https://www.microsoft.com/download/details.aspx?id=58392" target="_blank">Exchange Server 2013 CU23</a></p><p>Sicherheitslücken gibt es immer wieder. Gefährlich wird es, wenn die Lücken bekannt werden und die ersten aktiven Angriffe verzeichnet werden. Ab dann, werdet ihr nicht mehr von Hackern, sondern von Scriptkiddie angegriffen!</p><p>Nachlesen lässt sich das z.B. bei Heise: <a href="https://www.heise.de/news/Dringend-patchen-Rund-eine-viertel-Million-Exchange-Server-angreifbar-4920095.html">https://www.heise.de/news/Dringend-patchen-Rund-eine-viertel-Million-Exchange-Server-angreifbar-4920095.html</a></p>Beat Brunnerhttp://www.blogger.com/profile/11354344382754234466noreply@blogger.com0tag:blogger.com,1999:blog-3983084739712757027.post-82823627679240848862020-10-02T06:35:00.001-07:002020-10-02T06:36:22.412-07:00Virtual geekmania Extended Edition<p>Das in diesem Jahr alles etwas anders ist ist leider eine Tatsache. Auch unser Fachkongress, die Geekmania ist davon betroffen. Sie findet diese Jahr virtuell online statt.</p><p>Weiter Informationen findet ihr hier: <a href="https://geekmania.ch/vgm/vgmee/" target="_blank">https://geekmania.ch/vgm/vgmee/</a></p><p>Im übrigen haben wir durch das momentane virtuelle Format diverse neue lehrreiche Videos auf unserem YouTube Kanal: <a href="https://www.youtube.com/channel/UClg37D4J6CZ1YHBxHD8iWpw" target="_blank">iTrain GmbH YouTube Kanal</a></p><p><br /></p><p><br /></p>Beat Brunnerhttp://www.blogger.com/profile/11354344382754234466noreply@blogger.com0tag:blogger.com,1999:blog-3983084739712757027.post-18638196958750334942020-09-28T06:30:00.006-07:002020-09-28T06:39:14.674-07:00Neue Exchange Version angekündigt (Exchange vNext)<p> Seit einigen Jahren steht betreffend MS Exchange immer wieder die gleiche Frage im Raum: Wird Microsoft noch eine neue Exchange Version on-premise herausbringen?</p><p>Nun, vor ein paar Tagen hat Microsoft an der Ignite verkündet, dass es in der zweiten Jahreshälfte 2021 die nächste Exchange Version für lokale Installationen geben wird.</p><p>Das ist doch nett, denken sich die meisten ;-) Schauen wir uns doch erst mal an, was Microsoft denn angekündigt hat:</p><p></p><ul style="text-align: left;"><li>Migration von Exchange 2019 auf "Exchange vNext" ist als Inplace Upgrade möglich. Das heisst, Exchange vNext lässt sich auf einem Exchange 2019 genauso wie ein CU installieren. Man muss nicht parallel neue Server aufbauen und alles rüber migrieren.<br /><br /></li><li>Exchange vNetxt erlaubt eine Koexistenz mit Exchange 2013, 2016 und 2019. Bis anhin waren immer nur die 2 letzten Versionen unterstützt. Nun sind es also die 3 letzten Versionen.<br /><br /></li><li>Exchange vNext Lizenz gibt es nur subscription-based, also als Abo.</li></ul><div><br /></div><div>Wenn man sich diese Punkte auf der Zuge zergehen lässt und ein paar wenige graue Zellen im Hirn hat, dürfte jedem klar sein, was Microsoft mit dieser Exchange vNext Version für Ziele hat ;-)</div><div><br /></div><div>Soviel , zu "nette Microsoft", wir dürfen ein CU bei euch kaufen und das geht nur im Abo ...</div><div><br /></div><div><a href="https://techcommunity.microsoft.com/t5/exchange-team-blog/exchange-news-and-announcements-microsoft-ignite-2020-edition/ba-p/1662224?WT.mc_id=M365-MVP-5000284" target="_blank">Exchange Team Blog zum Thema</a></div><p></p>Beat Brunnerhttp://www.blogger.com/profile/11354344382754234466noreply@blogger.com0tag:blogger.com,1999:blog-3983084739712757027.post-83990860460162178872019-12-04T07:03:00.001-08:002019-12-04T07:03:18.891-08:00geekmania 2019: Keynote: Microsoft, wir müssen reden!<iframe allowfullscreen="" frameborder="0" height="270" src="https://www.youtube.com/embed/2t6wFKgkgIg" width="480"></iframe>Beat Brunnerhttp://www.blogger.com/profile/11354344382754234466noreply@blogger.com0tag:blogger.com,1999:blog-3983084739712757027.post-47014653731009879032019-12-04T07:02:00.001-08:002019-12-04T07:02:39.155-08:00geekmania 2019: Die Fischer von gestern sind die IT-Terroristen von Morg...<iframe allowfullscreen="" frameborder="0" height="270" src="https://www.youtube.com/embed/2Zm2nkAHlrM" width="480"></iframe>Beat Brunnerhttp://www.blogger.com/profile/11354344382754234466noreply@blogger.com0tag:blogger.com,1999:blog-3983084739712757027.post-37943589087082173082019-12-04T07:01:00.001-08:002019-12-04T07:01:58.350-08:00geekmania 2019: Hyperconverged! Die Mitmachsession - Part I<iframe allowfullscreen="" frameborder="0" height="270" src="https://www.youtube.com/embed/5houQ9qSLL8" width="480"></iframe>Beat Brunnerhttp://www.blogger.com/profile/11354344382754234466noreply@blogger.com0tag:blogger.com,1999:blog-3983084739712757027.post-60314195793556927442019-12-04T06:56:00.001-08:002019-12-04T06:56:59.555-08:00geekmania 2019: Exchange Troubleshooting<iframe allowfullscreen="" frameborder="0" height="270" src="https://www.youtube.com/embed/3vArXPDHuUU" width="480"></iframe>Beat Brunnerhttp://www.blogger.com/profile/11354344382754234466noreply@blogger.com0tag:blogger.com,1999:blog-3983084739712757027.post-41835532728193876232019-10-28T07:53:00.003-07:002019-10-28T07:56:12.878-07:00Page File auf einem Windows Server 2019 CORE anpassenWir betreiben einen Hyper-Converged Cluster mit 2 Nodes unter Windows Server 2019 CORE. Jeder Node verfügt über 192 GB RAM. Da unsere OS Laufwerke aber eine Grösse von 220 GB haben, wurde der freie Speicherplatz auf dem OS Laufwerk knapp, denn die Page Files haben eine Grösse von 192 GB.<br />
<br />
Daher habe ich die maximale Page File Grösse angepasst, was gar nicht so einfach ist. Es gibt ja keine Grafische Oberfläche, um die Konfiguration des Page Files anzupassen. Doch wenn man mal herausgefunden hat, wie es gemacht werden muss, ist es gar nicht mehr so schwer.<br />
<br />
Zuerst einmal schauen wir uns die momentane Konfiguration an:<br />
<br />
<span style="font-family: "courier new" , "courier" , monospace;">wmic.exe pagefileset</span><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrVj0igsGhL3_u2oHXN-SOFWR5Q7FcTBirpCD7kOSlmPWuL7B1US6MorvFkGp9_gh7hTyTKczs_5mjPyY9LOznNzd2K0KeKL1OFVkJIvaynABBeGmF_1mTDUiG_EIkspbOvNXkhvtD0OU/s1600/Server_Core_Page_FIle-show_config.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="148" data-original-width="1110" height="83" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrVj0igsGhL3_u2oHXN-SOFWR5Q7FcTBirpCD7kOSlmPWuL7B1US6MorvFkGp9_gh7hTyTKczs_5mjPyY9LOznNzd2K0KeKL1OFVkJIvaynABBeGmF_1mTDUiG_EIkspbOvNXkhvtD0OU/s640/Server_Core_Page_FIle-show_config.png" width="640" /></a></div>
<br />
<br />
<a name='more'></a><br /><br />
Zuerst einmal muss man das Page File Management von "automatisch" auf "manuell" umstellen. Dies geht soweit noch ohne Probleme:<br />
<br />
<span style="font-family: "courier new" , "courier" , monospace;">wmic computersystem set Automaticmanagedpagefile=false</span><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEja5krHftVGFWVQS9RgL8BJ3GauYB41D_hf_TyhqV5e66esU7AEt2jcLJqDqSQDtq_R7LxnsVb0n1ApMR_IODHivYAdYtywzlDpxCRd2rn3A9sAhJWexCHXyuSgUACDisiRj6WR43DrPl0/s1600/Server_Core_Page_FIle-set_to_manual.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="148" data-original-width="1110" height="83" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEja5krHftVGFWVQS9RgL8BJ3GauYB41D_hf_TyhqV5e66esU7AEt2jcLJqDqSQDtq_R7LxnsVb0n1ApMR_IODHivYAdYtywzlDpxCRd2rn3A9sAhJWexCHXyuSgUACDisiRj6WR43DrPl0/s640/Server_Core_Page_FIle-set_to_manual.png" width="640" /></a></div>
<br />
Nun wollen wir die Grösse des Page Files fixieren. Genau hier bin ich lange gescheitert, denn die neue fixierte Grösse darf nicht grösser sein als der verfügbare Speicherplatz auf dem OS Laufwerk. Wenn man versucht, das Page File auf einen grösseren Wert als der freie Speicherplatz auf dem OS Laufwerk zu setzen, bekommt man eine eher nichtssagende Fehlermeldung "Value out of range":<br />
<br />
<span style="font-family: "courier new" , "courier" , monospace;">wmic pagefileset set initialsize=122880,Maximumsize=122880</span><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNb57SUaJy3wKhQ_Y0tXTWoq1KAG8TV6wy0KS3HibChc6VPE6iy5bd-sWwsD8B-dXvHaio5sMrukT1QpuYuk4omb078WHX6_235auruCWhds2AnW3sTyvtfFsCGIFFyJu5E_PyXwwsIw8/s1600/Server_Core_Page_FIle-out+of+range.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="148" data-original-width="1110" height="83" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNb57SUaJy3wKhQ_Y0tXTWoq1KAG8TV6wy0KS3HibChc6VPE6iy5bd-sWwsD8B-dXvHaio5sMrukT1QpuYuk4omb078WHX6_235auruCWhds2AnW3sTyvtfFsCGIFFyJu5E_PyXwwsIw8/s640/Server_Core_Page_FIle-out+of+range.png" width="640" /></a></div>
<br />
Um ans Ziel zu kommen, sind also zwei Schritte notwendig. Zuerst musste ich das Page File auf 3 GB setzen, den Server neu starten. Danach konnte ich das Page File auf 120 GB setzen und musste natürlich nochmals neu starten.<br />
<br />
Page File auf 3 GB setzen:<br />
<br />
<span style="font-family: "courier new" , "courier" , monospace;">wmic pagefileset set initialsize=3072,Maximumsize=3073</span><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPvQp_F5MjNG-qvx599lk3rkgzklwo39bGkkAHK9CF_Cm2gEdZqGp1dV4LLz1QYECPGzQKgO5ha1z0VnUEGHlbOMKoroeIao7mJseTsER6vAHcLaa7Ho3R8iy1QO_y3d6WSQS_kqeSqMw/s1600/Server_Core_Page_FIle-set+to+3+GB.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="148" data-original-width="1110" height="83" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPvQp_F5MjNG-qvx599lk3rkgzklwo39bGkkAHK9CF_Cm2gEdZqGp1dV4LLz1QYECPGzQKgO5ha1z0VnUEGHlbOMKoroeIao7mJseTsER6vAHcLaa7Ho3R8iy1QO_y3d6WSQS_kqeSqMw/s640/Server_Core_Page_FIle-set+to+3+GB.png" width="640" /></a></div>
<br />
Nun muss der Server neu gestartet werden. Nach dem Neustart, kann nun das Page File auf 120 GB gesetzt werden:<br />
<br />
<span style="font-family: "courier new" , "courier" , monospace;">wmic pagefileset set initialsize=122880,Maximumsize=122880</span><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWhKfghb2_kg8pynC2-9YWewMCpNdWt8bQHt9ZUtR5RLCZNx6F-gwLl75FjhVu02-nVof5h1NWLdhXEu_nwc0XjuB5vhwvEiLfhTESl77GM2ffkntzBNsQMxvQRlBj8bg_-PI4TwoDhlA/s1600/Server_Core_Page_FIle-set+to+128+GB.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="155" data-original-width="1109" height="88" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWhKfghb2_kg8pynC2-9YWewMCpNdWt8bQHt9ZUtR5RLCZNx6F-gwLl75FjhVu02-nVof5h1NWLdhXEu_nwc0XjuB5vhwvEiLfhTESl77GM2ffkntzBNsQMxvQRlBj8bg_-PI4TwoDhlA/s640/Server_Core_Page_FIle-set+to+128+GB.png" width="640" /></a></div>
<br />
Nun nochmals neu starten und die gewünschte Page File Grösse ist gesetzt:<br />
<br />
<span style="font-family: "courier new" , "courier" , monospace;">wmic.exe pagefileset</span><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiF9bJyIshy13MAOYKe5D8PAxtyjvL8c9WqqddWUHifywY7Jkw982HscgiPtqSklDl7UGn7QabkSsNcnqlGU8OzVxC60tOEjJOH4xVe-YKZPb0xebxoHMnPh8UR6bASFhUZPsTsG9Wq3ck/s1600/Server_Core_Page_FIle-show_config+on+end.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="155" data-original-width="1109" height="88" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiF9bJyIshy13MAOYKe5D8PAxtyjvL8c9WqqddWUHifywY7Jkw982HscgiPtqSklDl7UGn7QabkSsNcnqlGU8OzVxC60tOEjJOH4xVe-YKZPb0xebxoHMnPh8UR6bASFhUZPsTsG9Wq3ck/s640/Server_Core_Page_FIle-show_config+on+end.png" width="640" /></a></div>
<br />
Ob diese Konfiguration für einen Hyper-Converged Cluster unterstützt ist, habe ich nirgends gefunden, doch in unsren Fall blieb keine andere Lösung, ausser neue OS Platten anzuschaffen oder das Page File zu begrenzen.<br />
<br />
Natürlich ist es grundsätzlich besser, grössere OS Laufwerke einzuplanen ;-)<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />Beat Brunnerhttp://www.blogger.com/profile/11354344382754234466noreply@blogger.com0tag:blogger.com,1999:blog-3983084739712757027.post-30056684126817997732018-11-12T02:38:00.002-08:002018-11-12T02:42:58.465-08:00Geekmania 2018 - Meine Exchange 2019 Session ist onlineLetzten Freitag war die Geekmania 2018. Meine Session über Exchange 2019 könnt ihr euch online ansehen:<br />
<a href="https://www.youtube.com/watch?v=GTcdfC6Dgpk" target="_blank">About Exchange 2019 - Geekmania 2018</a><br />
<br />
Alle Sessions an der Geekmania der iTrain Mitarbeiter findet ihr hier:<br />
<a href="https://www.youtube.com/user/iTrainCH?fbclid=IwAR0FbSqpHKtUPhSRWQqGdlg_Mb0CK9UOIj5IsU0825OenCCpNbs4KB0GBNg" target="_blank">Alle iTrain Sessions - Geekmania 2018</a><br />
<br />
Viel Spass damit!Beat Brunnerhttp://www.blogger.com/profile/11354344382754234466noreply@blogger.com0tag:blogger.com,1999:blog-3983084739712757027.post-83093446622052292212018-06-06T05:57:00.001-07:002018-06-06T05:58:29.221-07:00Externer OAB Download benötigt 30 Minuten<div class="separator" style="clear: both; text-align: left;">
Ich hatte gerade bei einem Kunden den Fall, dass der manuelle Download des OAB in Outlook nach einer Migration auf Exchange 2016 30 Minuten benötigte. Nachdem wir den Download des OAB in Outlook manuell gestartet haben, blieb das Fenster, welches den Vorschritt des Downloads anzeigt, einfach ohne Reaktion stehen:</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEij9vdGU2QOmXRZU4lRCdyLslrXKE1rX38igAAwUcxT2Q5IaMRvo5TC1dqz46ulD9bQbTgTHwuYrZJ6k5Im06-a5rnaaMHggRGLwkDniKBJBFRDxofYjjt7zlK4QTe1r_PVcPTR4wmxyzc/s1600/OAB_Download_Problem_01.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="234" data-original-width="363" height="257" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEij9vdGU2QOmXRZU4lRCdyLslrXKE1rX38igAAwUcxT2Q5IaMRvo5TC1dqz46ulD9bQbTgTHwuYrZJ6k5Im06-a5rnaaMHggRGLwkDniKBJBFRDxofYjjt7zlK4QTe1r_PVcPTR4wmxyzc/s400/OAB_Download_Problem_01.png" width="400" /></a></div>
<br />
Irgendwann haben wir dann auch genug lange gewartet und bemerkt, dass der Download nach 30 Minuten startet und auch erfolgreich ist.<br />
<br />
Nach längerer Suche haben wir dann das Problem gefunden. Der Download des OAB läuft über BITS. BITS hat einen Standard-Timeout von 30 Minuten, wenn eine URL nicht erreichbar ist. Dies passt ja genau zur Wartezeit beim Download des OAB...<br />
<br />
Im Eventlog "Bits-Client" (Anwendungs- und Dienstprotokolle -> Microsoft -> Windows -> Bits-Client) habe ich dann den Event mit der ID 61 (Quelle: Bits-Client) gefunden und gesehen, dass Outlook versucht das OAB auf der internen URL herunterzuladen. Erst nach 30 Minuten wird die "alternative" URL kontaktiert.<br />
<br />
Wir haben das virtuelle Verzeichnis für OAB mit einer internen URL (FQDN/oab) und einer externen URL (mail.mydomain.ch/oab) konfiguriert. Nun scheint es so zu sein, dass Outlook nicht wirklich weiss, ob es intern oder extern ist und verwendet für das OAB zuerst die interne URL, welche aber von Extern nicht erreichbar ist.<br />
<br />
Die Lösung in meinem Fall: Auf dem virtuellen Verzeichnis für OAB für interne und externe URL die externe URL eintagen. So kommt Outlook gar nicht erst in Versuchung, die interne URL zu probieren.<br />
<br />
Der Grund für das Problem kann nur ein Bug sein.Beat Brunnerhttp://www.blogger.com/profile/11354344382754234466noreply@blogger.com0tag:blogger.com,1999:blog-3983084739712757027.post-75400178709848726842018-06-05T02:54:00.000-07:002018-06-05T02:54:12.058-07:00Exchange Log Partition läuft vollGrundsätzlich sollte dies nicht passieren. In einer produktiven sorgt das Backup dafür, dass die Logfiles der Datenbanken nach jedem erfolgreichen Backup gelöscht werden. Dies verhindert, dass die Log-Platten eines Exchange Servers voll laufen.<br />
<br />
In einer Testumgebung wird eher selten ein funktionierendes Backup eingerichtet. Daher kann es vorkommen, dass die Laufwerke mit den Logfiles der DBs gefüllt werden. Um die Logs wieder los zu werden, gibt es einen simplen Trick.<br />
<br />
<br />
<ol>
<li>Starte auf dem Exchange ein CMD mit erhöhten Rechten<br /></li>
<li>Tippe "Diskshadow" und drücke Enter<br /></li>
<li>Tippe "add volume x:" und drücke Enter (das "x" mit dem Laufwerksbuchstaben ersetzen, auf welchem die Logs liegen)<br /></li>
<li>Tippe "begin Backup" und drücke Enter<br /></li>
<li>Tippe "create" und drücke Enter<br /></li>
<li>Wenn der Vorgang abgeschlossen ist, tippe "end Backup" und drücke Enter</li>
</ol>
<div>
Nach kurzer Zeit kann man zusehen, wie sich die Logfiles "in Luft auflösen".</div>
<div>
<br /></div>
<div>
Die Verwendung dieser Prozedur geschieht auf eigene Gefahr ;-)</div>
Beat Brunnerhttp://www.blogger.com/profile/11354344382754234466noreply@blogger.com0tag:blogger.com,1999:blog-3983084739712757027.post-38804651259828254832017-12-13T03:51:00.000-08:002017-12-13T03:52:34.662-08:00Autodiscover langsam?Wir haben bei unseren Kunden oft das Problem, dass das Outlook sehr lange braucht, um seine Konfiguration über Autodiscover zu erhalten. Oft liegt es daran, wie der Autodiscover Prozess in Outlook abläuft.<br />
<br />
Grob gesagt, nimmt Outlook zuerst was hinter dem @ der Mailadresse steht und versucht darüber den Autodiscover Service zu erreichen.<br />
<br />
hans.muster@itrain.ch = https://itrain.ch/autodiscover/autodiscover.xml<br />
<br />
Genau dies schlägt meist fehl, denn entweder zeigt diese URL auf den Webserver. Noch schlimmer wird es, wenn die URL dem Domänen Namen entspricht, dann zeigt "itrain.ch" auf alle Domänen Kontroller in der Domäne. Dies hat dann zur Folge, dass jeder Domänen Kontroller kontaktiert wird und keiner dieser DCs kann Autodiscover Informationen liefern. Dies kann sehr lange dauern, denn standardmässig ist ein Timeout von 25 Sekunden hinterlegt.<br />
<br />
Der nächste Schritt im Autodiscover Prozess ist, dass Outlook nimmt was hinter dem @ steht und autodiscover. davor setzt.<br />
<br />
hans.muster@itrain.ch = https://autodiscover.itrain.ch/autodiscover/autodiscover.xml<br />
<br />
Dies ist dann meist erfolgreich.<br />
<br />
Um nun die Wartezeit für https://itrain.ch/autodiscover/autodiscover.xml zu umgehen, kann ein Registry Eintrag erstellt werden, welcher das Outlook anweisst, diese Schritt zu überspringen.<br />
<br />
Dazu wird unter<br />
<br />
"HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Outlook\AutoDiscover"<br />
<br />
ein DWORD Eintrag mit Namen "ExcludeHttpsRootDomain" und dem Wert 1 erstellt.<br />
<br />
Weitere Informationen: <a href="https://support.microsoft.com/en-us/help/3211279/outlook-2016-implementation-of-autodiscover" target="_blank">https://support.microsoft.com/en-us/help/3211279/outlook-2016-implementation-of-autodiscover </a><br />
<br />
<br />Beat Brunnerhttp://www.blogger.com/profile/11354344382754234466noreply@blogger.com1tag:blogger.com,1999:blog-3983084739712757027.post-46511867108362777962017-01-05T05:07:00.000-08:002017-01-05T05:07:13.303-08:00ActiveSync bleibt verbunden trotz...Kunden haben mir gemeldete, dass ActiveSync Verbindungen trotz geändertem Passwort oder sogar deaktiviertem AD User Objekt weiterhin verbunden bleibt, und dies zum Teil für Tage.<br />
<br />
Aufgefallen ist dies, weil ja die meisten Firmen einen sporadischen Passwortwechsel verlangen. Dabei hat sich gezeigt, dass Mobile Geräte zum Teil erst nach Tagen das neue Passwort verlangen und in der Zwischenzeit munter Mails empfangen und versendet werden konnten, alles unter einem Passwort, welches eigentlich nicht mehr gültig ist.<br />
<br />
Für Benutzer, welche einfach so oder weil dies sporadisch verlangt wird, ihr Passwort ändern, die Firma aber nicht verlassen, stellt dieses Verhalten kein allzu grosses Problem dar. Der Benutzer hat ja sein Passwort selbst gewechselt und wüsste das neue Passwort.<br />
<br />
Problematisch wird es, wenn das Passwort vom Administrator gewechselt oder der Account deaktiviert wurde, weil der Benutzer das Unternehmen verlassen hat. In diesem Fall würde man ja annehmen, dass der Benutzer durch diese Aktion keinerlei Zugriffe auf die Firmeninfrastruktur mehr hat.<br />
<br />
Durch die Beschriebene Problematik ist der Benutzer also, unter Umständen, noch tagelang in der Lage Mails zu empfangen und auch zu versenden. Dies kann grossen Schaden verursachen, je nach dem wie einvernehmlich die Trennung von der Firma abgelaufen ist.<br />
<br />
Meine Suche nach einer Lösung hat hervorgebracht, dass dieses Problem schon diversen Personen aufgefallen ist, es aber keine Lösung dafür gibt. Es scheint, dass hier Sicherheit durch Benutzerfreundlichkeit ausgehebelt wurde.<br />
<br />
Wichtig ist, diesen Umstand zu kennen, denn ein User lässt schon gänzlich von seinem Postfach trennen, nur reicht es nicht, "nur" den AD Account zu deaktivieren oder das Passwort zu ändern. Mindestens einer der folgenden Schritte muss zusätzlich ausgeführt werden:<br />
<ul>
<li>Neustart der Webservices (IIS)</li>
<li>Recyceln der Application Pools "MSExchangeSyncAppPool"</li>
</ul>
Diese beiden Optionen sind nicht die optimalsten, denn diese Aktionen betreffen auch andere Benutzer. Ohne andere Benutzer zu stören nützen auch folgende Aktionen:<br />
<ul>
<li>In den Einstellungen des Postfaches ActiveSync deaktivieren</li>
<li>Das betroffene Postfach in eine andere Datenbank verschieben</li>
<li>Das Telefon aus der Exchange Verwaltungsseite heraus wipen</li>
<li>Die Verbindung des Telefons aus dem Postfach löschen</li>
</ul>
Beat Brunnerhttp://www.blogger.com/profile/11354344382754234466noreply@blogger.com1tag:blogger.com,1999:blog-3983084739712757027.post-34641505485308205042016-06-01T02:14:00.001-07:002016-06-01T02:15:50.417-07:00OWA und EAS Log Analyse<div lang="de-CH" style="font-family: Calibri; font-size: 14pt; margin: 0in;">
<span style="color: #e69138;">OWA Log Analyse</span></div>
<div lang="de-CH" style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
Die
Zugriffe auf OWA lassen sich mittels der IIS Logs analysieren. Dazu kann man
das MS Tool «LogParser 2.2» verwenden. Das Tool lässt sich hier herunter laden:</div>
<div lang="de-CH" style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
<a href="https://www.microsoft.com/en-us/download/details.aspx?id=24659" target="_blank">https://www.microsoft.com/en-us/download/details.aspx?id=24659</a></div>
<div lang="de-CH" style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
<br /></div>
<div lang="de-CH" style="font-family: Calibri; font-size: 14pt; margin: 0in;">
<span style="color: #e69138;">Arbeitsordner erstellen</span></div>
<div lang="de-CH" style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
Für die
Analyse der IIS Logs ist es am einfachsten, zuerst mal einen Arbeitsordner zu
erstellen. Danach werden dort die Logs abgelegt, welche analysiert werden
sollen.</div>
<div lang="de-CH" style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
<br />
<a name='more'></a><br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKhANRP_B8LptWt3vWVU03BSKWa1EOqIng5h02T2Khd0p8rHb_jcEjIPFmI28tmqxhK-HC2lNMEEWxfgcHRaRkRXARFdc5KfDA61adjiyTvE16SEFLR_kfY5TE8ldrd8Ff73cwQtK8e2c/s1600/OWA_und_EAS_Log_Analyse01.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="263" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKhANRP_B8LptWt3vWVU03BSKWa1EOqIng5h02T2Khd0p8rHb_jcEjIPFmI28tmqxhK-HC2lNMEEWxfgcHRaRkRXARFdc5KfDA61adjiyTvE16SEFLR_kfY5TE8ldrd8Ff73cwQtK8e2c/s400/OWA_und_EAS_Log_Analyse01.png" width="400" /></a></div>
<div lang="de-CH" style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
<br /></div>
<div style="margin: 0in;">
</div>
<div lang="de-CH" style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
<br /></div>
<div lang="de-CH" style="font-family: Calibri; font-size: 14pt; margin: 0in;">
<span style="color: #e69138;"><br /></span></div>
<div lang="de-CH" style="font-family: Calibri; font-size: 14pt; margin: 0in;">
<span style="color: #e69138;"><br /></span></div>
<div lang="de-CH" style="font-family: Calibri; font-size: 14pt; margin: 0in;">
<span style="color: #e69138;"><br /></span></div>
<div lang="de-CH" style="font-family: Calibri; font-size: 14pt; margin: 0in;">
<span style="color: #e69138;"><br /></span></div>
<div lang="de-CH" style="font-family: Calibri; font-size: 14pt; margin: 0in;">
<span style="color: #e69138;"><br /></span></div>
<div lang="de-CH" style="font-family: Calibri; font-size: 14pt; margin: 0in;">
<span style="color: #e69138;"><br /></span></div>
<div lang="de-CH" style="font-family: Calibri; font-size: 14pt; margin: 0in;">
<span style="color: #e69138;"><br /></span></div>
<div lang="de-CH" style="font-family: Calibri; font-size: 14pt; margin: 0in;">
<br /></div>
<div lang="de-CH" style="font-family: Calibri; font-size: 14pt; margin: 0in;">
<br /></div>
<div lang="de-CH" style="font-family: Calibri; font-size: 14pt; margin: 0in;">
<span style="color: #e69138;"><br /></span></div>
<div lang="de-CH" style="font-family: Calibri; font-size: 14pt; margin: 0in;">
<span style="color: #e69138;"><br /></span></div>
<div lang="de-CH" style="font-family: Calibri; font-size: 14pt; margin: 0in;">
<span style="color: #e69138;">Zusammenführung und Umwandlung ins CSV Format</span></div>
<div lang="de-CH" style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
Die Logs
werden nun mittels LogParser zusammengeführt und ins CSV Format umgewandelt.
Dazu wird folgender Befehl verwendet:</div>
<div lang="de-CH" style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
<br /></div>
<div lang="de-CH" style="font-size: 11pt; margin: 0in;">
<span style="font-family: "courier new" , "courier" , monospace;">LogParser.exe
-i:iisw3c "select * into C:\LogAnalyse\mergedlog\merge.log from
C:\LogAnalyse\*" -o:csv</span></div>
<div lang="de-CH" style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
<br /></div>
<div lang="de-CH" style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
Wenn das
geklappt hat wurde ein Verzeichnis namens «mergedlog» und darunter das File
«merge.log» erstellt.</div>
<div lang="de-CH" style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
<br /></div>
<div lang="de-CH" style="font-family: Calibri; font-size: 14pt; margin: 0in;">
<span style="color: #e69138;">Zusammengeführtes Log auf OWA Anfragen filtern</span></div>
<div lang="de-CH" style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
Nun
können wir mit folgendem Befehl ein neues File erzeugen, welches die
OWA-Relevanten Daten enthält:</div>
<div lang="de-CH" style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
<br /></div>
<div lang="de-CH" style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
LogParser
-i:csv "SELECT cs-username, date, time, c-ip, cs-uri-stem,cs(User-Agent)
FROM C:\LogAnalyse\mergedlog\merge.log TO C:\LogAnalyse\Output.csv WHERE
cs-method LIKE '%get%' and cs-uri-stem LIKE '%owa%'</div>
<div lang="de-CH" style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
<br /></div>
<div lang="de-CH" style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
Wenn's
geklappt hat, wurde ein File namens Output.csv erstellt:</div>
<div lang="de-CH" style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMOUhePKqPQDrXMJ5MKahnYcclN_sj4nN2m-O8VBmXNDf49TkzC5jMJAWLZ92B2JuOrx8PU16k8jg0WrMCDKSYHYmKdX7S66eULsAyGOJbNfbCNt64pXfHmmsb5u-lIsM8LfK2O2X05T4/s1600/OWA_und_EAS_Log_Analyse02.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="285" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMOUhePKqPQDrXMJ5MKahnYcclN_sj4nN2m-O8VBmXNDf49TkzC5jMJAWLZ92B2JuOrx8PU16k8jg0WrMCDKSYHYmKdX7S66eULsAyGOJbNfbCNt64pXfHmmsb5u-lIsM8LfK2O2X05T4/s400/OWA_und_EAS_Log_Analyse02.png" width="400" /></a></div>
<div lang="de-CH" style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
<br /></div>
<div style="margin: 0in;">
</div>
<div lang="de-CH" style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
<br /></div>
<div lang="de-CH" style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
<br /></div>
<div lang="de-CH" style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
<br /></div>
<div lang="de-CH" style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
<br /></div>
<div lang="de-CH" style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
<br /></div>
<div lang="de-CH" style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
<br /></div>
<div lang="de-CH" style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
<br /></div>
<div lang="de-CH" style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
<br /></div>
<div lang="de-CH" style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
<br /></div>
<div lang="de-CH" style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
<br /></div>
<div lang="de-CH" style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
<br /></div>
<div lang="de-CH" style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
<br /></div>
<div lang="de-CH" style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
<br /></div>
<div lang="de-CH" style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
<br /></div>
<div lang="de-CH" style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
<br /></div>
<div lang="de-CH" style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
<br /></div>
<div lang="de-CH" style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
Diese
File kann nun ins Excel geladen und weiter analysiert werden. In Excel ist dann
die Filterfunktion sehr hilfreich:</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMCaKKdkLaNp84f_P3M8pL3ECrUIxc5ZCwe9AWRdFobwcLRzOMKUmksmhMxhNdB2N4wkaCZcEUvEsMBxEzw8W7OmkGvOrTdmD0sY8Nz7rOP6Z7x3sqSXdFqREKVmXyfmvyv97zltPx6Ms/s1600/OWA_und_EAS_Log_Analyse03.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="277" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMCaKKdkLaNp84f_P3M8pL3ECrUIxc5ZCwe9AWRdFobwcLRzOMKUmksmhMxhNdB2N4wkaCZcEUvEsMBxEzw8W7OmkGvOrTdmD0sY8Nz7rOP6Z7x3sqSXdFqREKVmXyfmvyv97zltPx6Ms/s400/OWA_und_EAS_Log_Analyse03.png" width="400" /></a></div>
<div lang="de-CH" style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
<br /></div>
<div lang="de-CH" style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
<br /></div>
<div lang="de-CH" style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
<br /></div>
<div lang="de-CH" style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
<br /></div>
<div lang="de-CH" style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
<br /></div>
<div lang="de-CH" style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
<br /></div>
<div lang="de-CH" style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
<br /></div>
<div lang="de-CH" style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
<br /></div>
<div lang="de-CH" style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
<br /></div>
<div lang="de-CH" style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
<br /></div>
<div lang="de-CH" style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
<br /></div>
<div lang="de-CH" style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
<br /></div>
<div lang="de-CH" style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
<br /></div>
<div lang="de-CH" style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
<br /></div>
<div lang="de-CH" style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
<br /></div>
<div lang="de-CH" style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
<br /></div>
<div style="margin: 0in;">
</div>
<div lang="de-CH" style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
<br /></div>
<div lang="de-CH" style="font-family: Calibri; font-size: 14pt; margin: 0in;">
<span style="color: orange;">EAS Log Analyse</span></div>
<div lang="de-CH" style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
Auf die
gleiche Weise lassen sich die IIS Logs auch nach EAS Logins durchsuchen:</div>
<div lang="de-CH" style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
<br /></div>
<div lang="de-CH" style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
LogParser
-i:csv "SELECT cs-username, date, time, c-ip, cs-uri-stem,cs(User-Agent)
FROM C:\LogAnalyse\mergedlog\merge.log TO C:\LogAnalyse\EWS-Output.csv WHERE
cs-method LIKE '%post%' and cs-uri-stem LIKE '%Microsoft-Server-ActiveSync%'</div>
<div lang="de-CH" style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
<br /></div>
<div lang="de-CH" style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
Doch die
Analyse der EAS Logins lässt sich auch einfacher bewerkstelligen, denn dafür
haben wir von Microsoft in der Exchange Shell einen eigenen Befehl erhalten: <a href="https://technet.microsoft.com/de-de/library/bb123821.aspx">Export-ActiveSyncLog</a></div>
<div lang="de-CH" style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
<br /></div>
<div lang="de-CH" style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
Export-ActiveSyncLog
-Filename:"C:\inetpub\logs\LogFiles\W3SVC1\u_ex160531.log"
-OutputPath "C:\LogAnalyse\EAS"</div>
<div lang="de-CH" style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
<br /></div>
<div lang="de-CH" style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
Dieser
Befehl erzeugt mehrere CSV Files welche nun weiter mittels Excel ausgewertet
werden können.</div>
Beat Brunnerhttp://www.blogger.com/profile/11354344382754234466noreply@blogger.com0tag:blogger.com,1999:blog-3983084739712757027.post-14481601340843696662016-04-27T04:44:00.000-07:002016-04-27T04:46:11.237-07:00Hierarchisches AdressbuchIn grossen Organisationen stellt sich immer wieder die Frage, wie Adressbücher übersichtlich gestaltet werden sollen. Seit Exchange 2010 SP1 haben wir eine neue Funktion bekommen, welche sich «Hierarchisches Adressbuch» nennt. Das Ganze sieht wie folgt aus:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSQmYb0c5WZ8ouO-BLzIS9k3KnJTFeSRLs61M-Fi9Q6GkaqrApDtUx4s1RNb-dgI9gqnS7CjOnhOxjetes3HQlgiU-BQTrQIRKRNxYAa0pB8zFmKvUXR6g2x1Psp17HREO719_cBO7Ay8/s1600/Hierarchisches+Adressbuch+01.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="255" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSQmYb0c5WZ8ouO-BLzIS9k3KnJTFeSRLs61M-Fi9Q6GkaqrApDtUx4s1RNb-dgI9gqnS7CjOnhOxjetes3HQlgiU-BQTrQIRKRNxYAa0pB8zFmKvUXR6g2x1Psp17HREO719_cBO7Ay8/s400/Hierarchisches+Adressbuch+01.png" width="400" /></a></div>
<br />
Der Aufbau eines hierarchischen Adressbuches wird über Verteilerlisten gesteuert. Diese werden ineinander verschachtelt und so gekennzeichnet, dass sie im hierarchischen Adressbuch berücksichtigt werden. Wie das geht, zeige ich anhand einer Step by Step Anleitung am Beispiel der Firma, in welcher ich arbeite. Das Ziel ist, ein hierarchisches Adressbuch aufzubauen, wie ihr es oben in der Ausbildung sehen könnt.<br />
<br />
<a name='more'></a><br />
<br />
<div>
Zuerst erstellen wir die Verteilergruppe für die oberste Hierarchie:</div>
<div>
<br /></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace;">New-DistributionGroup
-Name "iTrain GmbH" -DisplayName "iTrain GmbH" -Alias
"iTrainRoot" -OrganizationalUnit "OU=Addressbook
Groups,OU=Groups,OU=Schmerikon,DC=core,DC=itrain,DC=ch" -SamAccountName
"iTrainRoot" -Type "Distribution"</span></div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGFe8EIYWdGeUV7k_kmy0owyTODWh6hyvO1BBpSq4v4FPHg_F9tcBbUzGClIJAR_9WIgMeLxYC9p7oTr1igpgk0_J810EmLEutiq0mL6PY6iJkV6HUFu3dbAjLLbPajcZB95t9nT_kQ_o/s1600/Hierarchisches+Adressbuch+02.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="83" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGFe8EIYWdGeUV7k_kmy0owyTODWh6hyvO1BBpSq4v4FPHg_F9tcBbUzGClIJAR_9WIgMeLxYC9p7oTr1igpgk0_J810EmLEutiq0mL6PY6iJkV6HUFu3dbAjLLbPajcZB95t9nT_kQ_o/s400/Hierarchisches+Adressbuch+02.png" width="400" /></a></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
Nun legen wir das erstellte Adressbuch als oberste Hierarchie fest:</div>
<div>
<br /></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace;">Set-OrganizationConfig
-HierarchicalAddressBookRoot "iTrain GmbH"</span></div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMqmr4frKvedrK2_ejpNOufUOtKHCLYS7GP3BxMnRMMDeOaFvlRYP5HwqS2_fzDRW7Ga-66U0xf1WjFViJJ2BIKCrbEIMd_ZcnbI3D_dQXoYZtBW8CP4lYsIrXHGLjQkVtzU4KtAgkqqg/s1600/Hierarchisches+Adressbuch+03.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="107" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMqmr4frKvedrK2_ejpNOufUOtKHCLYS7GP3BxMnRMMDeOaFvlRYP5HwqS2_fzDRW7Ga-66U0xf1WjFViJJ2BIKCrbEIMd_ZcnbI3D_dQXoYZtBW8CP4lYsIrXHGLjQkVtzU4KtAgkqqg/s400/Hierarchisches+Adressbuch+03.png" width="400" /></a></div>
<div>
<br /></div>
Als nächstes erstellen wir die untergeordneten Verteilergruppen:<br />
<br />
Erstellen der Verteilergruppe "Techies":<br />
<span style="font-family: "courier new" , "courier" , monospace;">New-DistributionGroup -Name "Techies" -DisplayName "Techies" -Alias "Techies" -OrganizationalUnit "OU=Addressbook Groups,OU=Groups,OU=Schmerikon,DC=core,DC=itrain,DC=ch" -SamAccountName "Techies" -Type "Distribution"</span><br />
<br />
Erstellen der Verteilergruppe "Programmierer":<br />
<span style="font-family: "courier new" , "courier" , monospace;">New-DistributionGroup -Name "Programmierer" -DisplayName "Programmierer" -Alias "Programmierer" -OrganizationalUnit "OU=Addressbook Groups,OU=Groups,OU=Schmerikon,DC=core,DC=itrain,DC=ch" -SamAccountName "Programmierer" -Type "Distribution"</span><br />
<br />
Erstellen der Verteilergruppe "Administration":<br />
<span style="font-family: "courier new" , "courier" , monospace;">New-DistributionGroup -Name "Administration" -DisplayName "Administration" -Alias "Administration" -OrganizationalUnit "OU=Addressbook Groups,OU=Groups,OU=Schmerikon,DC=core,DC=itrain,DC=ch" -SamAccountName "Administration" -Type "Distribution"</span><br />
<br />
Erstellen der Verteilergruppe "Externe":<br />
<span style="font-family: "courier new" , "courier" , monospace;">New-DistributionGroup -Name "Externe" -DisplayName "Externe" -Alias "Externe" -OrganizationalUnit "OU=Addressbook Groups,OU=Groups,OU=Schmerikon,DC=core,DC=itrain,DC=ch" -SamAccountName "Externe" -Type "Distribution"</span><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitPUAZrj0W8hY4nr6UsjNf99HJGX2xjC2nJsDQpHeItaidOeRUYDMKe1ywLC1zDFPcW4RI8V1WOmNaYAF5RMU0B6kLA2fWgDDT7IR2DBCrd1xY7DagjxyRY9gIYmi3gJJzq7Pp4JQKyRM/s1600/Hierarchisches+Adressbuch+04.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="208" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitPUAZrj0W8hY4nr6UsjNf99HJGX2xjC2nJsDQpHeItaidOeRUYDMKe1ywLC1zDFPcW4RI8V1WOmNaYAF5RMU0B6kLA2fWgDDT7IR2DBCrd1xY7DagjxyRY9gIYmi3gJJzq7Pp4JQKyRM/s400/Hierarchisches+Adressbuch+04.png" width="400" /></a></div>
<br />
Die erstellten Verteilergruppen als Mitglieder des hierarchischen Adressbuchs festlegen:<br />
<br />
<span style="font-family: "courier new" , "courier" , monospace;">Set-Group -Identity "iTrain GmbH" -IsHierarchicalGroup $true</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">Set-Group -Identity "Techies" -IsHierarchicalGroup $true</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">Set-Group -Identity "Programmierer" -IsHierarchicalGroup $true</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">Set-Group -Identity "Administration" -IsHierarchicalGroup $true</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">Set-Group -Identity "Externe" -IsHierarchicalGroup $true</span><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7WXSmIcU16pwsU8hjEKTKFB7MQnAnqqPjVxumyBc38FQlRcZT6R3oli2LQsRF_WDWkSlB4ksrP8bid_qzwMpZLfCkydFO0vA8po_VoU1g_TQ7AH9tj56YtgBiI0Eoogon39rCSR8aoPk/s1600/Hierarchisches+Adressbuch+05.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="65" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7WXSmIcU16pwsU8hjEKTKFB7MQnAnqqPjVxumyBc38FQlRcZT6R3oli2LQsRF_WDWkSlB4ksrP8bid_qzwMpZLfCkydFO0vA8po_VoU1g_TQ7AH9tj56YtgBiI0Eoogon39rCSR8aoPk/s400/Hierarchisches+Adressbuch+05.png" width="400" /></a></div>
<br />
Die Verteilergruppen Techies, Programmierer, Administration und Externe in die Verteilergruppe iTrain GmbH verschachteln:<br />
<br />
<span style="font-family: "courier new" , "courier" , monospace;">Add-DistributionGroupMember -Identity "iTrainRoot" -Member "Techies"</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">Add-DistributionGroupMember -Identity "iTrainRoot" -Member "Programmierer"</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">Add-DistributionGroupMember -Identity "iTrainRoot" -Member "Administration"</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">Add-DistributionGroupMember -Identity "iTrainRoot" -Member "Externe"</span><br />
<div>
<br /></div>
<div>
Normalerweise wird die Hierarchie im hierarchischen Adressbuch alphabetisch dargestellt, Dies kann über den Parameter «SeniorityIndex» beienflusst werden. Die Verteilerlisten mit dem höchsten SeniorityIndex (Wert zwischen 1 - 100) werden zuoberst dargestellt. Und so werden die Werte gesetzt:</div>
<div>
<br /></div>
<div>
<div>
<span style="font-family: "courier new" , "courier" , monospace;">Set-Group -Identity "Techies" -SeniorityIndex 100</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace;">Set-Group -Identity "Programmierer" -SeniorityIndex 90</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace;">Set-Group -Identity "Administration" -SeniorityIndex 80</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace;">Set-Group -Identity "Externe" -SeniorityIndex 70</span></div>
</div>
<div>
<br /></div>
<div>
<div>
Nun sollte das hierarchische Adressbuch im Outlook sichtbar sein (eventuell muss das Adressbuch neu heruntergelade werden). Doch die Verteilergruppen sind ja noch leer. Also befüllen wir die Verteilergruppen noch mit den entsprechenden Usern. Ich erledige das über das EAC. Danach sieht dann das Adressbuch so aus:</div>
</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-zJikpa4Tmb980DK4R_mEjVlI4gS92Ht42xwkMEsIahXyRM5gVos_XqUaBbtnbfPjo_gxuV3qhQLlbPphqcOXolUhWOVX62_Mtlu_JP1x9QzSiPbiiv3rP2b3Q4hPY2xy2yTYhtqVopQ/s1600/Hierarchisches+Adressbuch+06.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="255" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-zJikpa4Tmb980DK4R_mEjVlI4gS92Ht42xwkMEsIahXyRM5gVos_XqUaBbtnbfPjo_gxuV3qhQLlbPphqcOXolUhWOVX62_Mtlu_JP1x9QzSiPbiiv3rP2b3Q4hPY2xy2yTYhtqVopQ/s400/Hierarchisches+Adressbuch+06.png" width="400" /></a></div>
<div>
<br /></div>
<div>
Nun haben wir aber nur eine zweistufige Hierarchie. Die Hierarchie kann aber durchaus weiter in die Tiefe verschachtelt werden. Ich zeige dies mal anhand einer Raumliste:</div>
<div>
<br /></div>
<div>
Zuerst erstelle ich eine Verteilerliste mit dem namen «Räume»:</div>
<div>
<br /></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace;">New-DistributionGroup -Name "Räume" -DisplayName "Räume" -Alias "Räume" -OrganizationalUnit "OU=Addressbook Groups,OU=Groups,OU=Schmerikon,DC=core,DC=itrain,DC=ch" -SamAccountName "Räume" -Type "Distribution"</span></div>
<div>
<br /></div>
<div>
Nun gebe ich wieder an, dass diese Verteilerliste im hierarchischen Adressbuch angezeigt werden soll:</div>
<div>
<br /></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace;">Set-Group -Identity "Räume" -IsHierarchicalGroup $true</span></div>
<div>
<br /></div>
<div>
Als nächstes erstelle ich eine Verteilerliste, welche unseren Standort repräsentiert:</div>
<div>
<br /></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace;">New-DistributionGroup -Name "Schmerikon" -DisplayName "Schmerikon" -Alias "Schmerikon" -OrganizationalUnit "OU=Addressbook Groups,OU=Groups,OU=Schmerikon,DC=core,DC=itrain,DC=ch" -SamAccountName "Schmerikon" -Type "Distribution"</span></div>
<div>
<br /></div>
<div>
Natürlich müssen wir auch für diese Verteilerliste angeben, dass wir sie im hierarchischen Adressbuch verwenden wollen:</div>
<div>
<br /></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace;">Set-Group -Identity "Schmerikon" -IsHierarchicalGroup $true</span></div>
<div>
<br /></div>
<div>
Nun verschachteln wir die Verteilerliste «Räume» in die Verteilerliste «iTrainRoot»:</div>
<div>
<br /></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace;">Add-DistributionGroupMember
-Identity "iTrainRoot" -Member "Räume"</span></div>
<div>
<br /></div>
<div>
und die Verteilerliste «Schmerikon» in die Verteilerliste «Räume»:</div>
<div>
<br /></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace;">Add-DistributionGroupMember
-Identity "Räume" -Member "Schmerikon"</span></div>
<div>
<br /></div>
<div>
Nachdem ich nun meine Räume (wir haben nur einen) der Verteilerliste «Räume» hinzugefügt habe, sieht mein hierarchisches Adressbuch wie folgt aus:</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGc-kXN23eBJ1jWroZpRB1QWH6ZJDt60sOVjNkDOaVCickmffyF0vsozYhRpGtBA8xdyzimBknJ9SjneU6yO7z-pIIcpB__BQpBi_ksqcxiEeJsT5o3irgU8pfAsGDdJ9O3CKJdOmSn50/s1600/Hierarchisches+Adressbuch+01.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="255" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGc-kXN23eBJ1jWroZpRB1QWH6ZJDt60sOVjNkDOaVCickmffyF0vsozYhRpGtBA8xdyzimBknJ9SjneU6yO7z-pIIcpB__BQpBi_ksqcxiEeJsT5o3irgU8pfAsGDdJ9O3CKJdOmSn50/s400/Hierarchisches+Adressbuch+01.png" width="400" /></a></div>
<div>
<br /></div>
<div>
Natürlich sieht dies bei unsrer Firmengrösse nicht wahnsinnig spektakulär aus, doch in grossen Organisationen kann sowas schon sehr hilfreich sein.</div>
<div>
<br /></div>
Beat Brunnerhttp://www.blogger.com/profile/11354344382754234466noreply@blogger.com0tag:blogger.com,1999:blog-3983084739712757027.post-70638405976334629842016-01-11T05:47:00.003-08:002016-01-11T05:47:52.936-08:00Exchange 2016 - Deaktiviertes Postfach mit Archiv wieder verbindenWenn man unter Exchange 2016 ein Postfach mit Archiv deaktiviert, wird sowohl das Postfach wie auch das Archiv vom Userobjekt in der AD abgekoppelt. Exchange löscht nun das Postfach wie auch das Archiv in der Datenbank gemäss den Einstellungen auf der Datenbank (Gelöschte Postfächer aufbewahren für (Tage)). Der Standardwert für die Vorhaltezeit gelöschter Postfächer sind 30 Tage.<br />
<br />
Wenn man nun ein deaktiviertes Postfach wieder mit einem Userobjekt in der AD verbinden will (muss nicht das ursprüngliche Userobjekt sein), muss man zuerst die «MailboxGuid» des Postfaches herausfinden. Dies kann mit folgendem Befehl gefunden werden:<br />
<br />
<span style="font-family: Courier New, Courier, monospace;">Get-MailboxStatistics -Database MDB02 | fl DisplayName,MailboxGuid</span><br />
<br />
Dieser Befehl gibt aber alle vorhandenen Postfächer in einer Datenbank aus. Natürlich ist das nicht sehr praktisch in einer Umgebung mit vielen Postfächern. Also kann es erforderlich sein, etwas mehr zu filtern.<br />
<br />
<span style="font-family: Courier New, Courier, monospace;">Get-MailboxStatistics -Database MDB02 | ? {$_.DisplayName -like "*Brunner*"} | FL DisplayName,MailboxGuid</span><br />
<br />
Hier werden alle Postfächer gefunden, welche im Namen «Brunner» beinhalten und sich in der Datenbank «MDB02» befinden.<br />
<br />
Wenn ich aber nun nicht weiss, in welcher Datenbank sich das Postfach (oder das Archiv) befunden hat, kann ich über folgenden Befehl herausfinden, welche Postfächer (oder Archive) es in allen Datenbanken gibt, welche im Namen «Brunner» beinhalten. Im Resultat wird auch gleich die MailboxGuid der Postfächer ausgegeben:<br />
<br />
<span style="font-family: Courier New, Courier, monospace;">Get-MailboxDatabase | Get-MailboxStatistics | ? {$_.DisplayName -like "*Brunner*"} | FL DisplayName,MailboxGuid,Database</span><br />
<br />
Um einfach alle getrennten Postfächer in allen Datenbanken anzuzeigen kann folgender Befehl verwendet werden:<br />
<br />
<span style="font-family: Courier New, Courier, monospace;">Get-MailboxDatabase | Get-MailboxStatistics | ? {$_.DisconnectDate -ne $NULL} | FL DisplayName,MailboxGuid,Database,DisconnectDate</span><br />
<br />
Wenn wir nun mal die MailboxGuid haben, können wir das Postfach wieder mit einem Userobjekt verbinden. Ich verwende jeweils den UPN des Userobjektes, an welches ich das Postfach hängen will:<br />
<br />
<span style="font-family: Courier New, Courier, monospace;">Connect-Mailbox –Identity 4cd7b972-cb64-43bc-b6fc-5dc4446ed971 –Database MDB02 –user b.brunner@itrain.ch</span><br />
<br />
Leider ist nun aber lediglich das primäre Postfach verbunden. Wenn das Postfach vorher ein Archiv hatte, muss ich das auch noch mit dem Userobjekt verbinden. Dies geht mit folgenden Befehl:<br />
<br />
<span style="font-family: Courier New, Courier, monospace;">Enable-Mailbox -ArchiveGuid 8d6fbef2-5f73-4e00-b06e-5e91c9e9ad30 -ArchiveDatabase MDB02 -Identity b.brunner@itrain.ch</span><br />
<br />
Nun sind Postfach und Archiv wieder gemeinsam mit dem gewünschten Userobjekt verbunden.<br />
<br />
<br />
<br />
<br />Beat Brunnerhttp://www.blogger.com/profile/11354344382754234466noreply@blogger.com0tag:blogger.com,1999:blog-3983084739712757027.post-15313806272896898802015-10-02T04:00:00.000-07:002015-10-02T04:05:22.505-07:00Mail versenden mit AliasHatte gerade eine Anforderung eines Kunden. Dort sollen Leute Mails wahlweise unter einem Alias versenden können anstelle unter der Standard Antwort Adresse die im Postfach konfiguriert ist. Grundsätzlich ist dies nicht möglich. Es musste also ein Workaround gefunden werden.<br />
<br />
Als erstes habe ich natürlich daran gedacht, einfach den Alias vom Postfach zu entfernen und ein separates Postfach mit der Adresse zu erstellen. Dann gibt man noch «Vollzugriff» und «Senden als» Berechtigungen für die Person, welche die Adresse verwenden will.<br />
Nachteil dieser Lösung ist, dass der User am Ende eine weiteres Postfach im Outlook hat und auch die gesendeten Mails werden natürlich in diesem zusätzlichen Postfach abgelegt. Diese Lösung gefiel dem Kunden nicht. Die User sollen weiterhin nur ein Postfach im Outlook haben und über die Auswahl im «Von Feld» die zweite Adresse auswählen können. Auch sollen die gesendet Mails in diesem einen Postfach abgelegt werden.<br />
<br />
Im Internet findet man auch Lösungsansätze, die sich mit einem POP3 «dummy» Postfach behelfen. Ich wollte keine POP3 auf dem Exchange aktivieren und habe weiter nach einer bessern Lösung gesucht.<br />
<br />
<a name='more'></a><br /><br />
Meine Lösung beihaltet nun eine Verteilerliste. Man entfernt den Alias vom eigentlichen Postfach, erstellt eine Verteilerliste mit dieser Alias-Adresse und packt das eigentliche Postfach als Mitglied in die Verteilerliste. Dies sichert schon mal den Mailempfang. Mails die an die Verteilerliste mit der Aliasadresse gesendet werden, kommen s weiterhin im eigentlichen Postfach an.<br />
Um nun auch noch den Versand über die Aliasadresse (oder eben nun die Verteilerliste) zu ermöglichen, bekommt der eigentliche User auf der Verteilerliste das Recht «Senden als». So ist der User in der Lage, Mails mit dem Absender der Verteilerliste zu versenden.<br />
<br />
Hier nochmal alles Schritt für Schritt:<br />
<br />
1. Zuerst den Alias vom eigentlichen Postfach entfernen:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhy-r2Th-RkSe2g9ls6FkCxcM8JRtNMibK8x5nm5hK0VMLSoHds4jcP2LDu_VcQilS-M1HxhiK3afhvvWQVaNTgoEW7FClSzlhbiEGAzpBAXjcoxDoLGC_-tmzyf6ejJhSJyyqbyfAEUMo/s1600/Send-As_Alias001.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="255" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhy-r2Th-RkSe2g9ls6FkCxcM8JRtNMibK8x5nm5hK0VMLSoHds4jcP2LDu_VcQilS-M1HxhiK3afhvvWQVaNTgoEW7FClSzlhbiEGAzpBAXjcoxDoLGC_-tmzyf6ejJhSJyyqbyfAEUMo/s320/Send-As_Alias001.png" width="320" /></a></div>
<br />
2. Eine Verteilerliste erstellen:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRuWderDGzgbp1w_sOQJzuSU9EL3leYIJr09faLTcgcn-2NQmfQ_lN1QZoxxMTYWQ7U7qIJDnyODOPU6cxFAvRtffGaeA4YnMMc9t2WJ37UzeMQjuA1E_RvnmTdZh1fM67_91yI_MBJCc/s1600/Send-As_Alias002.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="255" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRuWderDGzgbp1w_sOQJzuSU9EL3leYIJr09faLTcgcn-2NQmfQ_lN1QZoxxMTYWQ7U7qIJDnyODOPU6cxFAvRtffGaeA4YnMMc9t2WJ37UzeMQjuA1E_RvnmTdZh1fM67_91yI_MBJCc/s320/Send-As_Alias002.png" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4WL4a4hnWK9kpxyano9126hheA4q1AVUZ5vWtEhybRPcQ-TptH3hBajiwuHO0mVTQTpjxA3Ops66UKDsmWMSlmdCi7shGRyQcfcXbc8b8COiePN2gD84BuSK-PPuhAByPOBTB0oVlNqw/s1600/Send-As_Alias003.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="255" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4WL4a4hnWK9kpxyano9126hheA4q1AVUZ5vWtEhybRPcQ-TptH3hBajiwuHO0mVTQTpjxA3Ops66UKDsmWMSlmdCi7shGRyQcfcXbc8b8COiePN2gD84BuSK-PPuhAByPOBTB0oVlNqw/s320/Send-As_Alias003.png" width="320" /></a></div>
<br />
Owner kann auch der Admin sein, dies spielt keine Rolle.<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAP6CIn0hUFSyzwW5NdVKngsrYa5MC-NVv2wrUOt_O7rJNLoPQOunjeizkMLQzSUHGjbVaasoq1RWCyHPvX0jJ3s_k2Za8T2SR6i75oOqS3r7sQ03oMub5BY9Aex91Ix2RoDa1YPogHtY/s1600/Send-As_Alias004.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="255" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAP6CIn0hUFSyzwW5NdVKngsrYa5MC-NVv2wrUOt_O7rJNLoPQOunjeizkMLQzSUHGjbVaasoq1RWCyHPvX0jJ3s_k2Za8T2SR6i75oOqS3r7sQ03oMub5BY9Aex91Ix2RoDa1YPogHtY/s320/Send-As_Alias004.png" width="320" /></a></div>
<br />
Member muss aber natürlich der Besitzer des eigentlichen Postfaches sein.<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMS8qYJTkfCkYCmJ4YDMef7E-OYLPZo88ubrC1sHhBdo9nTM1p4xvLJZH6JxFn3xy4mMaBMzdN9OvYkxJXx0YtiVcq8g7Mcm451oNd0veZoplCxH40YkcNBCQoDmMB9f-bPrbr9suZ6WU/s1600/Send-As_Alias005.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="255" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMS8qYJTkfCkYCmJ4YDMef7E-OYLPZo88ubrC1sHhBdo9nTM1p4xvLJZH6JxFn3xy4mMaBMzdN9OvYkxJXx0YtiVcq8g7Mcm451oNd0veZoplCxH40YkcNBCQoDmMB9f-bPrbr9suZ6WU/s320/Send-As_Alias005.png" width="320" /></a></div>
<br />
Sinnvollerweise wird die Verteilerliste als «geschlossen» konfiguriert.<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoClZhI5v4WocNV1NKAY_fA-b0RBm8_rly4Z8Ro3zsw0tDm-pWGagSlM_tHCRON8tP4930nVhEoGVRPNcKHCxgZR5i5vrya0OGp630oNaOd_SHTD7VTAMAIMyyesrRYyaNdZrWBzkO1TA/s1600/Send-As_Alias006.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="255" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoClZhI5v4WocNV1NKAY_fA-b0RBm8_rly4Z8Ro3zsw0tDm-pWGagSlM_tHCRON8tP4930nVhEoGVRPNcKHCxgZR5i5vrya0OGp630oNaOd_SHTD7VTAMAIMyyesrRYyaNdZrWBzkO1TA/s320/Send-As_Alias006.png" width="320" /></a></div>
<br />
Damit die Verteilerliste auch Mails aus dem Internet entgegen nehmen kann, muss die Konfiguration so eingestellt werden, wie es im Bild oben angegeben ist.<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4nNVGgKgWUhlsWI9rhIaLA_BnFBMK-EKc4q7MI_vDTCBH4O8AJwxa0P64X26EFL10FO22aPlFmvc-414V3LQ0RXOdk3JOo_6G9IPD4oZ2FhKnqPSWfww2CTy9X6Ab_-HC4OKEUTLR9wQ/s1600/Send-As_Alias007.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="255" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4nNVGgKgWUhlsWI9rhIaLA_BnFBMK-EKc4q7MI_vDTCBH4O8AJwxa0P64X26EFL10FO22aPlFmvc-414V3LQ0RXOdk3JOo_6G9IPD4oZ2FhKnqPSWfww2CTy9X6Ab_-HC4OKEUTLR9wQ/s320/Send-As_Alias007.png" width="320" /></a></div>
<br />
Und hier wird natürlich die Alias Adresse eingetragen.<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEic4LioC3FFKc2y7_1z2pgTHdYuLgOXr1D8Oy-hiTFeVag0ACKGZuv9GZQqkfk1E-2PfJVj1koAIrD-IuqDdCUIsVpmCcCzXRO1KoJlRxnykLGrYIEMLW6epkSbQH5FXC7L4oqZZEXuQe0/s1600/Send-As_Alias008.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="283" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEic4LioC3FFKc2y7_1z2pgTHdYuLgOXr1D8Oy-hiTFeVag0ACKGZuv9GZQqkfk1E-2PfJVj1koAIrD-IuqDdCUIsVpmCcCzXRO1KoJlRxnykLGrYIEMLW6epkSbQH5FXC7L4oqZZEXuQe0/s320/Send-As_Alias008.png" width="320" /></a></div>
<br />
Un der letzte Punkt ist ist wichtig, damit der eigentliche User auch das Recht hat, im Namen der Verteilerliste Mails zu versenden. «Send on Behalf» ist aber nicht unbedingt nötig.<br />
<br />
Wichtig: Ich musste bei meinem Test mein Outlook-Profil neu erstellen. Davor habe ich eine Fehlermeldung erhalten, wenn ich versucht habe im Outlook im Namen der Verteilerliste eine Mail zu versenden.<br />
<br />
Diese Lösung funktioniert für Exchange 2010 wie auch 2013.<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />Beat Brunnerhttp://www.blogger.com/profile/11354344382754234466noreply@blogger.com0tag:blogger.com,1999:blog-3983084739712757027.post-25499156747740708692015-05-06T23:27:00.003-07:002015-05-06T23:27:47.388-07:00Exchange 2016 - Erste News von der Ignite 2015Die ersten Infos über Exchange vNext sind nun draussen. die ersten Sessions zum Thema an der Ignite 2015 sind gelaufen. Hier ein paar Facts:<br />
<br />
<h4>
Release Date</h4>
<ul>
<li>Exchange 2016 Public beta ist auf Sommer 2015 angesagt. RTM soll im Herbst / Winter 2015 verfügbar sein.</li>
</ul>
<div>
<br /></div>
<div>
<h4>
Architektur</h4>
</div>
<div>
<ul>
<li>Keine Trennung der Rollen bei der Installation. Also keine reinen CAS oder MBX Server mehr</li>
<li>CAS Proxing zwischen Exchange 2016 und 2013 möglich, und dies in beide Richtungen</li>
<li>Gemischte Umgebungen mit Exchange 2010 SP3 RU11 (oder höher) oder Exchange 2013 CU10 (oder höher)</li>
<li>Wie zu erwarten war, keine Koexistenz mit Exchange 2007</li>
<li>Als OS wird 2012 R2 und Server 10 unterstützt</li>
<li>Forest und Domain Level müssen 2008 R2 oder höher sein</li>
<li>Es werden Outlook 2010 SP2 (mit KB2956191 und KB2965295 oder höher), Outlook 2013 SP1 (mit KB3020812 oder höher) und Outlook 2016 unterstützt</li>
<li>Als Standard-Clientprotokoll wird MAPI/HTTP verwendet</li>
<li>Witness Share (Zeugenserver) in Azure möglich</li>
</ul>
<div>
<br /></div>
<div>
<h4>
Speicherung der Daten</h4>
</div>
</div>
<div>
<ul>
<li>22% weniger IOPS im Vergleich zu Exchange 2013 RTM (und täglich grüsst das Murmeltier)</li>
<li>Der Suchindex wird auf der passiven Kopie einer Datenbank erstellt</li>
</ul>
<div>
<br /></div>
<div>
<h4>
Hochverfügbarkeit</h4>
</div>
</div>
<div>
<ul>
<li>DAG hat kein Clusterobjekt (CNO) mehr</li>
<li>Schnellere Datenbank-Umschaltung</li>
<li>Weitgehend die gleichen Anforderungen an Load Balancer wie bei Exchange 2013</li>
</ul>
<div>
<br /></div>
<div>
Weitere News werde ich wieder Posten.</div>
</div>
Beat Brunnerhttp://www.blogger.com/profile/11354344382754234466noreply@blogger.com0tag:blogger.com,1999:blog-3983084739712757027.post-86709295799875645192015-05-05T07:13:00.000-07:002015-05-05T07:13:03.631-07:00ADFS 3.0 non SNI Client Support konfigurationSeit Windows Server 2012 R2 ist ADFS in der Version 3.0 verfügbar. Eine der grossen Änderungen ist, dass das es ADFS Proxy nicht mehr gibt. Es wird auch keine IIS mehr benötigt. Dafür ist aber der Support von SNI dazu gekommen. Aber was ist denn SNI überhaupt? SNI heisst «Server Name Indication». Infos über SNI gibt es <a href="http://www.msxfaq.de/signcrypt/snicert.htm" target="_blank">hier</a> und <a href="http://en.wikipedia.org/wiki/Server_Name_Indication" target="_blank">hier</a>.<br />
<br />
Wie ihr also in den Links oben lesen könnt, sind «nur» neuere Clients in der Lage SNI-Informationen im TLS Handshake mitzusenden. Die Clients machen mir aber in der Praxis nur selten Sorgen. Es ist eher so, dass ADFS Umgebungen meist redundant aufgebaut werden und daher auch ein Load Balancing benötigen. Nun ist es eben so, dass die meisten Load Balancer nicht mit SNI umgehen können oder diese Informationen auf dem Backend einfach nicht weiter geben.<br />
<br />
Ein ADFS 3.0 Server möchte aber in der Default-Konfiguration diese Information haben. Anfragen ohne SNI Informationen werden nicht verarbeitet. Also müssen wir den ADFS 3.0 Server dazu bringen, diese Anfragen trotzdem zu verarbeitet. Bewerkstelligt wird dies, indem man ein Standard Zertifikat definiert. Und gemacht wird dies so:<br />
<br />
<a name='more'></a><br /><br />
<h4>
App-ID und Cert Hash auslesen</h4>
Um das Standard-Zertifikat zu setzen, benötigen wir den Cert-Hash und die App Id. Diese Information bekommen wir auf einem der ADFS Server in der Power Shell mit folgenden Befehl.<br />
<br />
<span style="font-family: Courier New, Courier, monospace;">netsh http show sslcert</span><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYrQBR9TIHDYd68MeTnetviDZDUKkF3mlaZMA-WJlReJTRb_7WK9vwC-fQUIfY65jrJBeAOgiOuSy7BzSc1fFZunO2rxUvzHs_Cf786ccKcEvwN8C-b1qwp6iz9fnOUCqOTWtvh8Y09Hw/s1600/01.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYrQBR9TIHDYd68MeTnetviDZDUKkF3mlaZMA-WJlReJTRb_7WK9vwC-fQUIfY65jrJBeAOgiOuSy7BzSc1fFZunO2rxUvzHs_Cf786ccKcEvwN8C-b1qwp6iz9fnOUCqOTWtvh8Y09Hw/s1600/01.jpg" height="293" width="400" /></a></div>
<br />
<h4>
Default Zertifikat setzen</h4>
Um nun das Default Zertifikat zu setzen, wird folgender Befehl verwendet:<br />
<br />
<span style="font-family: Courier New, Courier, monospace;">netsh http add sslcert ipport=<IPAddress:port> certhash=<certhash> appid='<appid>' certstorename=MY</span><br />
<br />
Um das Zertifikat an alle vorhandenen IPs des Server zu binden kann <IPAddress:port> mit 0.0.0.0:443 ersetzt werden. den certhash und die appid findet ihr im Resultat des letzten Befehls.<br />
<br />
Achtet auf die Hochkommas bei der App Id. Auf gewissen Systemen werden sie benötigt und auf anderen nicht.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOfpsA6fyTsrUyUTtUCBCTdnP-4rWw0VWlNB8k21j6N_XAoAyEd-hSDIDGqPERzn1qrcBgk7FbH7TptW6YiJ5aHNB3u0_oWPPyIhD9V2wsW2uBBlcVLEPCNt61OVTtSIC9eExlXYrJs2A/s1600/03.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOfpsA6fyTsrUyUTtUCBCTdnP-4rWw0VWlNB8k21j6N_XAoAyEd-hSDIDGqPERzn1qrcBgk7FbH7TptW6YiJ5aHNB3u0_oWPPyIhD9V2wsW2uBBlcVLEPCNt61OVTtSIC9eExlXYrJs2A/s1600/03.jpg" height="72" width="400" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
Wenn wir nun den ersten Befehl nochmal ausführen, sieht das Resultat wie folgt aus:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNcOxA_k3zQPiZ9z-1E-1nwtMFOa-5duPIWkTWdm-Mq-DDfT21jURGXiHL4tA9zDZVzznA4a9-OJCRXO99e_sFgAOjbeap6CR90l5phenzY6i84ag86wThMkgEMDfYV0Wb_Abv5xub4Fw/s1600/04.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNcOxA_k3zQPiZ9z-1E-1nwtMFOa-5duPIWkTWdm-Mq-DDfT21jURGXiHL4tA9zDZVzznA4a9-OJCRXO99e_sFgAOjbeap6CR90l5phenzY6i84ag86wThMkgEMDfYV0Wb_Abv5xub4Fw/s1600/04.jpg" height="375" width="400" /></a></div>
<br />
<br />
<br />
<br />Beat Brunnerhttp://www.blogger.com/profile/11354344382754234466noreply@blogger.com0tag:blogger.com,1999:blog-3983084739712757027.post-6523505870922510532015-04-09T23:06:00.003-07:002015-04-09T23:07:55.494-07:00iOS 8.3 bringt Exchange relevante FixesDas neueste Update für iPhones bringt auch Fehlerkorrekturen in Bezug auf Exchange:<br />
<br />
<br />
<ul>
<li>Exchange-Abwesenheitsbenachrichtigungen können jetzt separat für externe Antworten bearbeitet werden</li>
<li>Optimiert die Wiederherstellung von Exchange-Accounts bei temporären Verbindungsproblemen</li>
<li>Korrigiert ein Problem, durch das Exchange-Termine mit langen Notizen abgeschnitten wurden</li>
</ul>
<div>
Falls ihr in letzter Zeit mit solchen Problemen gekämpft habt, ist dies sicher eine gute Nachricht.</div>
<div>
<br /></div>
<div>
Die ganze Liste der Leistungsverbesserungen und Fehlerkorrekturen findet ihr <a href="https://support.apple.com/kb/DL1806?locale=de_de" target="_blank">hier</a>.</div>
Beat Brunnerhttp://www.blogger.com/profile/11354344382754234466noreply@blogger.com0tag:blogger.com,1999:blog-3983084739712757027.post-88570723369567084982015-03-27T03:20:00.001-07:002015-03-27T03:20:53.198-07:00Exchange 2013 - Maintenance Mode<div>
In einer hoch verfügbaren Exchange Organisation lassen sich einzelne Exchange Server der Organisation warten, ohne dass die User bei ihrer Arbeit gestört werden. Der Prozess, einen der Exchange Server in den Maintenance Mode zu versetzen, ist aber etwas mühsam, sprich, es sind diverse Schritte nötig. Daher liegt es auch nahe, dies mit Hilfe eines Scripts zu erledigen. Ich bin nicht wirklich der Scripter, doch es gibt ja zum Glück begnadete Scripter, welche ihre Scripts auch immer wieder mit der Welt teilen. In diesem Post will ich zeigen, wie der Prozess, einen Exchange Server in den Maintenance Mode zu versetzen, mit Hilfe der Scripts von <a href="http://vanhybrid.com/" target="_blank">Michael Van Horenbeeck</a> vereinfacht werden kann.</div>
<div>
<br />
<a name='more'></a><br /></div>
<div>
Zuerst einmal benötigen wir natürlich das Script. Dies kann hier herunter geladen werden:</div>
<div>
Script: <a href="http://vanhybrid.com/2013/11/28/script-putting-exchange-server-2013-into-maintenance-mode/" target="_blank">putting Exchange Server 2013 into Maintenance Mode</a></div>
<div>
<br /></div>
<div>
Das Script kann so wie es ist direkt verwendet werden, doch es geht noch einfacher. Dazu binde ich das Script in mein Power Shell Profil ein.</div>
<div>
<br /></div>
<div>
Dazu lege ich die beiden Scripts Start-ExchangeServerMaintenanceMode.ps1 und Stop-ExchangeServerMaintenanceMode.ps1 auf meinen Exchange Servern unter dem Pfad «C:\Scripts\include» ab. Natürlich könnt ihr auch einen anderen Pfad wählen.</div>
<div>
<br /></div>
<div>
Nun erstelle ich ein Power Shell Profil, sofern ich noch keines habe. Ob schon ein Profil vorhanden ist könnt ihr in der Exchange Power Shell mit folgenden Befehl prüfen:</div>
<div>
<br /></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">test-path $Profile</span></div>
<div>
<br /></div>
<div>
Kommt dabei «False» raus, ist noch kein Power Shell Profil vorhanden.</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXyViiv8ZnwQlic1UfeWIcP0f_WRuk3Cm2AfF36Zh6pOO-GNNJdMP52pmX0diMO5mlpsx4sX-YtDk12YYj2DokpaP_sxVNHtfFho7hXGevkIKTpBHf9JeJdMphEpKwlV6zioDEvOEe6fc/s1600/Maintenance-Mode01.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXyViiv8ZnwQlic1UfeWIcP0f_WRuk3Cm2AfF36Zh6pOO-GNNJdMP52pmX0diMO5mlpsx4sX-YtDk12YYj2DokpaP_sxVNHtfFho7hXGevkIKTpBHf9JeJdMphEpKwlV6zioDEvOEe6fc/s1600/Maintenance-Mode01.png" height="137" width="400" /></a></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
Mit folgenden Befehl wird nun ein Power Shell Profil erstellt:<br />
<br />
<span style="font-family: Courier New, Courier, monospace;">new-item -path $profile -type file -force</span></div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhO0I844r0Gp5Jhy-bBOSe-0qalaYvxzV6ChGlK6VbpsRczotCMHIYY5DnseBQqudh29jEl1LDsfrIHlu2EYkJsS9wRe2IiaWDw4VSYFhIAUV9IETVc7WqNiWq8JmSNZ_GRERCLPReeunA/s1600/Maintenance-Mode02.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhO0I844r0Gp5Jhy-bBOSe-0qalaYvxzV6ChGlK6VbpsRczotCMHIYY5DnseBQqudh29jEl1LDsfrIHlu2EYkJsS9wRe2IiaWDw4VSYFhIAUV9IETVc7WqNiWq8JmSNZ_GRERCLPReeunA/s1600/Maintenance-Mode02.png" height="83" width="400" /></a></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
Im File, welches in der Ausgabe des letzten Befehls ausgegeben wurde, wird nun folgendes eingefügt:<br />
<br /></div>
<div>
<div>
<span style="font-family: Courier New, Courier, monospace;">Set-Location "C:\Scripts"</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;"><span class="Apple-tab-span" style="white-space: pre;"> </span> </span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">Get-ChildItem ".\include" | Where {$_.Name -like "*.ps1"} | ForEach {</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;"><span class="Apple-tab-span" style="white-space: pre;"> </span> </span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;"><span class="Apple-tab-span" style="white-space: pre;"> </span>Write-Host "[Including $_]" -ForegroundColor Green</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;"><span class="Apple-tab-span" style="white-space: pre;"> </span>. .\include\$_</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;"><br /></span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">}</span></div>
</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgg42fpMRikN2RiqkX15t56gQat5Q4NXKLpN6LVTDUkBDLsi7AQF1SnWnafG-AtY9nV1f50hbS67Ea-trhRFMdA0wYLgQIBUlmY1mB1jpB6M3Gml-KL31S7UepvUqezq-l12dLJXbGcBP4/s1600/Maintenance-Mode03.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgg42fpMRikN2RiqkX15t56gQat5Q4NXKLpN6LVTDUkBDLsi7AQF1SnWnafG-AtY9nV1f50hbS67Ea-trhRFMdA0wYLgQIBUlmY1mB1jpB6M3Gml-KL31S7UepvUqezq-l12dLJXbGcBP4/s1600/Maintenance-Mode03.png" height="111" width="400" /></a></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div>
Falls ihr einen anderen Pfad gewählt hab, müsst ihr dies hier natürlich anpassen.<br />
<br />
Beim nächsten Start der Exchange Power Shell werden die Scripts unter dem Pfad «C:\Scripts\include» automatisch mitgeladen und können direkt verwendet werden:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg33MIYxIFHnAW1NaPlGFsXIDgTe1BhZ73fmvXKF1-FtIw32-6PVQnslTWVtpnqrjkZLK0A6Uxohy9VkwDYmESxZfdbW9kCUwYq96Nbsoux5CCuwScjMMRqCnYIi59KnPFQ1aj3ZdIhpvI/s1600/Maintenance-Mode04.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg33MIYxIFHnAW1NaPlGFsXIDgTe1BhZ73fmvXKF1-FtIw32-6PVQnslTWVtpnqrjkZLK0A6Uxohy9VkwDYmESxZfdbW9kCUwYq96Nbsoux5CCuwScjMMRqCnYIi59KnPFQ1aj3ZdIhpvI/s1600/Maintenance-Mode04.png" height="228" width="400" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br /></div>
<div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Diese Schritte müssen nun nicht mehr jedes mal durchgeführt werden. Ab jetzt könnt ihr eure Exchange Server wie folgt in dem Maintenance Mode versetzen.<br /><br />Zuerst einmal sorgen wir dafür, dass sich auf dem Exchange Server, welcher gewartet werden soll, keine aktive Datenbanken mehr haben. Dies mache ich jeweils über die Verwaltungswebsite:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiyq5r9m_CQ3tasMA9tvkCyGhBFfaBJFDZpzcUoXevgRRi1GBIh1nMr6_RokPrAI55_zBjx05mv2FeYOwa0PfKTL_32cQ2lBEhyDwCBvzZvQSSbVV94MOgC5ErPUWv8a9k7xmuqBNN0X7E/s1600/Maintenance-Mode05.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiyq5r9m_CQ3tasMA9tvkCyGhBFfaBJFDZpzcUoXevgRRi1GBIh1nMr6_RokPrAI55_zBjx05mv2FeYOwa0PfKTL_32cQ2lBEhyDwCBvzZvQSSbVV94MOgC5ErPUWv8a9k7xmuqBNN0X7E/s1600/Maintenance-Mode05.png" height="201" width="400" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Hier kann angegeben werden, auf welchen DAG Member die Datenbanken verschoben werden sollen oder ihr lasst Exchange selbst die beste Option finden:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1qhSE4yLkJOtkvdhOpobUVsHgXA4681cYEnSRa84CeHv0Bf8m2Eor31iSqbthNa9u7_nlpe7UadTq2hRW0iBcowDSK2zcg1wubhd64tFmy0g4YmUejH-yls6-TGQgmItTxaKOSj7Y11M/s1600/Maintenance-Mode06.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1qhSE4yLkJOtkvdhOpobUVsHgXA4681cYEnSRa84CeHv0Bf8m2Eor31iSqbthNa9u7_nlpe7UadTq2hRW0iBcowDSK2zcg1wubhd64tFmy0g4YmUejH-yls6-TGQgmItTxaKOSj7Y11M/s1600/Maintenance-Mode06.png" height="250" width="400" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh22zWIn1kwxJAzIV_eWJRsVpR86t_SAVtycyEkK_KBhFXqUTCdkoZQcvY_EnNEbaFzDR5ETqXN0YIRiBq-wCjCSlMLDYKBIqOO8IWSSUSVpNUPRzFwR2wKLX1lj2myKdodX3jpTojpMkg/s1600/Maintenance-Mode07.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh22zWIn1kwxJAzIV_eWJRsVpR86t_SAVtycyEkK_KBhFXqUTCdkoZQcvY_EnNEbaFzDR5ETqXN0YIRiBq-wCjCSlMLDYKBIqOO8IWSSUSVpNUPRzFwR2wKLX1lj2myKdodX3jpTojpMkg/s1600/Maintenance-Mode07.png" height="250" width="400" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Nun noch kontrollieren, dass wirklich keine Datenbank mehr auf dem zu wartenden Server aktiv sind:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivXA8acH-RdpH1EQPz1zm-ynLAi7ZrWivt83vmNPYgiexHbNF02Z9by0_Q5IDsSwoVI6NoEKaWMqoIkr338XiaFIYQ27Hfyx9AOp2ZEGpqEMWNyHvCVQugab2V4St7-Cs0JkQAI1XEOzE/s1600/Maintenance-Mode08.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivXA8acH-RdpH1EQPz1zm-ynLAi7ZrWivt83vmNPYgiexHbNF02Z9by0_Q5IDsSwoVI6NoEKaWMqoIkr338XiaFIYQ27Hfyx9AOp2ZEGpqEMWNyHvCVQugab2V4St7-Cs0JkQAI1XEOzE/s1600/Maintenance-Mode08.png" height="241" width="400" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Weiter geht es nun wieder in der Shell. Mit folgendem Befehl wird nun der Server SRV300 in den Maintenance Mode versetzt und alle Transportaufgaben auf den Server SRV302 verschoben:<br />
<br />
<span style="font-family: Courier New, Courier, monospace;">Start-ExchangeServerMaintenanceMode -Server SRV300 -TargetServerFQDN SRV302.corp.itrain.ch</span><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgo_Wv7E1848GSUggo1hFvmLPZ-CxZYpmJ29nGW5FLUft8n1kYRkD_8b3Asv9V56QGLrYrhsYzN-LO2NBwg0Lf4ZlTju-teM3o9OjJAhRfXwqI84WYSMWCA7lfZpm2FeoXx97eBverO4sA/s1600/Maintenance-Mode09.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgo_Wv7E1848GSUggo1hFvmLPZ-CxZYpmJ29nGW5FLUft8n1kYRkD_8b3Asv9V56QGLrYrhsYzN-LO2NBwg0Lf4ZlTju-teM3o9OjJAhRfXwqI84WYSMWCA7lfZpm2FeoXx97eBverO4sA/s1600/Maintenance-Mode09.png" height="353" width="400" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Nun noch prüfen, ob der Server wirklich im Maintenance Mode ist:<br />
<br />
<span style="font-family: Courier New, Courier, monospace;">Get-ServerComponentState SRV300 | FT Component,State -Autosize</span><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXigycDNyWb_FeyZ2KD2OR3aeACzgU1wS9i40aulyqSb4nZsraln0xZGvUwCgPe9oWT49ZIziEOt8g2eerx188G0jmUUAdNBFJSQkQklcLDQe0ck2B9LLGMwzTnvextlMMd1qWKE3bRHk/s1600/Maintenance-Mode10.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXigycDNyWb_FeyZ2KD2OR3aeACzgU1wS9i40aulyqSb4nZsraln0xZGvUwCgPe9oWT49ZIziEOt8g2eerx188G0jmUUAdNBFJSQkQklcLDQe0ck2B9LLGMwzTnvextlMMd1qWKE3bRHk/s1600/Maintenance-Mode10.png" height="185" width="400" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Nun könnt ihr in Ruhe eure Wartungsarbeiten durchführen. Wenn ihr damit fertig seid, holt ihr den Server wieder in den aktiven Modus zurück:<br /><br /><span style="font-family: Courier New, Courier, monospace;">Stop-ExchangeServerMaintenanceMode -Server SRV300</span><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwaRH5pTzu_6SBrEtAuuYZ7hHCh45uvqrkuqOj1wwTpdre1yifyJ3s7Wm3txfWjDHJghHCE5uPV_GssTOcUfcBl5RMaX15HCLuTh32Rjl1ChjZoXhjFM7XHN5rMP4yd2aUJDKo9ZBMtD0/s1600/Maintenance-Mode11.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwaRH5pTzu_6SBrEtAuuYZ7hHCh45uvqrkuqOj1wwTpdre1yifyJ3s7Wm3txfWjDHJghHCE5uPV_GssTOcUfcBl5RMaX15HCLuTh32Rjl1ChjZoXhjFM7XHN5rMP4yd2aUJDKo9ZBMtD0/s1600/Maintenance-Mode11.png" height="266" width="400" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Und natürlich kontrolieren wir wieder, ob der Server nun wirklich nicht mehr in Maintenance Mode ist:<br />
<br />
<span style="font-family: 'Courier New', Courier, monospace;">Get-ServerComponentState SRV300 | FT Component,State -Autosize</span><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiscSE2BWaauG1BwAD0lcyomZwBITmrxcnMvwWHH8W8oPH5t0PxQao4u1OW8P4FZAP5yWzhs2h9_yJ3YTml-KcAXtDF91I1FEw8t4Zu0C0rNWs_KPOEL4IP0oEpK0RXdCSTLThReunkyEM/s1600/Maintenance-Mode12.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiscSE2BWaauG1BwAD0lcyomZwBITmrxcnMvwWHH8W8oPH5t0PxQao4u1OW8P4FZAP5yWzhs2h9_yJ3YTml-KcAXtDF91I1FEw8t4Zu0C0rNWs_KPOEL4IP0oEpK0RXdCSTLThReunkyEM/s1600/Maintenance-Mode12.png" height="188" width="400" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br /></div>
Beat Brunnerhttp://www.blogger.com/profile/11354344382754234466noreply@blogger.com2tag:blogger.com,1999:blog-3983084739712757027.post-65819152418953828072015-03-23T06:41:00.003-07:002015-03-23T06:41:53.906-07:00Exchange 2010 - RU9 für SP3 verfügbarAuch am 17.03.2015 wurde das RU 9 für SP3 zum download bereit gestellt. Informationen dazu findet ihr auf dem <a href="http://blogs.technet.com/b/exchange/archive/2015/03/17/announcing-update-rollup-9-for-exchange-server-2010-service-pack-3.aspx">Exchange Team Blog</a>.<br />
<br />
Download: <a href="http://www.microsoft.com/en-us/download/details.aspx?id=46372">http://www.microsoft.com/en-us/download/details.aspx?id=46372</a><br />
<br />
Knowledge Base Article: <a href="https://support.microsoft.com/en-us/kb/3030085">https://support.microsoft.com/en-us/kb/3030085</a>Beat Brunnerhttp://www.blogger.com/profile/11354344382754234466noreply@blogger.com0