Im Gegensatz zu vorherigen Versionen von Exchange Server, wo Update Rollups relative kleine Installationspakete darstellten, kommt die Installation von Cumulativen Updates (CU) bei Exchange Server 2013 faktisch einer Neuinstallation gleich. Hierdurch ergibt sich ein ganz anderer Planungsaufwand für die Durchführung eines Upgrades, sowohl in zeitlicher wie auch in ressourcentechnischer Hinsicht. Erstellen Sie sich eine zeitliche Baseline, um die erforderliche Zeit für die CU Installationen in Ihre Wartungspläne zu integrieren.
Wenn Sie auf einem Exchange 2013 Server ein CU installieren möchten, müssen die anderen Exchange Server wissen, dass ein Upgrade durchgeführt wird. Wenn Sie den entsprechenden Server nicht als "in Wartung" kennzeichnen, wird der Primary Activation Manager (PAM) der Database Availability Group (DAG) im Fehlerfall versuchen, auf dem im Upgrade befindlichen Server passiven Datenbank aktiv in Betrieb zu nehmen. Dies wird mit sehr großer Wahrscheinlich zu einem unfreiwilligen Test Ihres Desaster Recovery Plans führen.
Die folgenden Schritte beschreiben die Aktivierung und Deaktivierung der Wartung.
Vor dem Aktivieren der Wartung gilt es einige Vorbereitungen zu treffen, um unnötige Fehlersituationen des Exchange 2013 Setups zu vermeiden.
Prüfung Festplattenplatz
Auf dem Laufwerk der Exchange Server 2013 Installation, müssen ca. 10 GB freier Festplattenplatz zur Verfügung stehen. Sollte auf dem Laufwerk weniger Platz zur Verfügung stehen, müssen Sie diesen Platz zuerst sicherstellen.
Prüfung PowerShell Execution Policy
Wird auf dem Exchange Server die MachinePolicy per Gruppenrichtlinie (GPO) gesetzt, wird es beim Ausführen des Exchange Setups zu einem Fehler kommen.
Prüfung der aktuellen Konfiguration erfolgt mit Get-ExecutionPolicy -List.
Ist die MachinePolicy konfiguriert, so kann die Policy für die Installation mit folgendem PowerShell Befehl (Berechtigung vorausgesetzt) auf nicht konfiguriert gesetzt werden.
Get-ExecutionPolicy -List Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\PowerShell -Name ExecutionPolicy -Value ""
Starten Sie die Exchange Management Shell als Adminstrator und prüfen Sie zuerst den aktuellen Status aller Serverkomponenten. Bei dieser Abfrage müssen alle Komponenten auf active stehen. Anschließend werden die Komponenten Hub Transport und UM Call Router auf Draining gesetzt. Dies Ausführung als Administrator ist erforderlich, da in den PowerShell Scripten StartDAGMaintenance und StopDAGMaintenance auch Cluster Befehle ausgeführt werden.
Get-ServerComponentState [SERVERNAME] Set-ServerComponentState [SERVERNAME] –Component HubTransport –State Draining –Requester Maintenance Set-ServerComponentState [SERVERNAME] –Component UMCallRouter –State Draining –Requester Maintenance
Verschieben Sie eventuell noch vorhandene Nachrichten im Transport Service auf einen anderen Transport Server.
Redirect-Message –Server [SOURCESERVER FQDN] –Target [TARGETSERVER FQDN]
Nach diesen Schritten wird der Server in DAG Maintenance gesetzt. Sollten Ihre DAG nur aus zwei Datenbankkopien bestehen, ergänzen Sie den Aufrud des PowerShel Scripts um den Switch Parameter -overrideMinimumTwoCopies.
cd $ExScripts .\StartDAGServerMaintenance.ps1 [SERVERNAME] Get-MailboxDatabaseCopyStatus -Server [SERVERNAME]
Setzen Sie nun alle Komponenten in serverweite Wartung.
Set-ServerComponentState [SERVERNAME] –Component ServerWideOffline –State Inactive –Requester Maintenance
Wenn alle Serverkomponeten auf Wartung gesetzt sind, kann die Installation des Cumulative Updates erfolgen. Schließen Sie die Exchange Management Shell und starten Sie ein neues PowerShell Fenster als Administrator. Wechseln Sie in das Verzeichnis des entpackten Exchange 2013 CU und starten Sie das Setup.
.\setup.exe /Mode:Upgrade /IAcceptExchangeServerLicenseTerms
Nach Ablauf des ersten Teils der Installation werden Sie aufgefordert, den Server neu zu starten. Nach erfolgreichem Neustart und erfolgter Anmeldung, starten Sie ein neues PowerShell Fenster als Administrator, wechseln erneut in das Verzeichnis des entpackten Exchange 2013 CU und starten Sie das Setup.
Nach erfolgreichem Setup von Exchange ist kein erneuter Start des Servers erforderlich.
Prüfen Sie die Version der Exchange Server.
Get-ExchangeServer | ft Name, Admin*
Nach erfolgter Installation des Exchange Server 2013 CU muss der Exchange Server aus der Wartung genommen werden, um wieder Verbindungen annehmen zu können.
Set-ServerComponentState [SERVERNAME] -Component ServerWideOffline -State Active -Requester Maintenance Get-ServerComponentState [SERVERNAME]
Wenn Sie die beiden Komponenten Hub Transport und UM Call Router in Draining gesetzt haben, werden diese beiden Komponenten separat wieder aktiviert.
Set-ServerComponentState [SERVERNAME] -Component UMCallRouter -State Active -Requester Maintenance Set-ServerComponentState [SERVERNAME] -Component HuBTransport -State Active -Requester Maintenance Get-ServerComponentState [SERVERNAME]
Anschließend wird die DAG Wartung beendet.
cd $ExScripts .\StopDAGServerMaintenance.ps1 [SERVERNAME] Get-MailboxDatabaseCopyStatus -Server [SERVERNAME]
Und nun heisst es warten auf das nächste CU für Exchange Server 2013.
Gerne unterstützen wir Sie bei der Planung und Umsetzung Ihrer Exchange Server 2013 Anforderungen und der Anbindung an Office 365. Kontaktieren Sie uns: info@granikos.eu Erfahren Sie mehr über unsere Beratungsdienstleistungen unter http://www.Granikos.eu.
The following PowerShell scripts have been published by our Exchange and Office 365 experts to the technical community at TechNet Gallery. Please use the GitHub repositories to report issues or to file feature requests.
Please send comments, wishes, and ideas to support@granikos.eu.
Enjoy!
Need assistance with your Exchange Server Organization? You plan to upgrade your Exchange Server Organization? You plan to migrate to Office 365? Contact us: info@granikos.eu
Update 2018-09-04: Add remote IP-address ranges to a receive connector added Update 2018-06-16: Manage Master Category List for Shared Mailboxes and Teams added Update 2018-04-29: Convert Word documents using PowerShell and Set Mailbox Item Private Flag added Update 2018-01-24: Create a new Room Mailbox with Security Groups added Update 2017-11-11: Export all user mailbox permissions added Update 2017-09-22: Remove Out-Of-Office rules from user mailbox added Update 2017-05-20: Parse email messages content for further processing and Update OWA vDir config across multiple servers added Update 2017-03-18: Fetch recently created public folders and Clear Private Flag on Mailbox Messages added Update 2017-02-22: Remove Orphaned HealthMailbox and SystemMailbox Accounts from MESO Container added Update 2017-02-17: Test Office 365 Domain Availability added Update 2017-02-13: Connect to Exchange Server 2013+ using remote PowerShell added Update 2017-02-07: Create Exchange internal/external Url based certificate requests, Create a scheduled task for Exchange Server 2013 added Update 2017-01-24: Gather Exchange Configuration Data added Update 2017-01-05: Export Messages from Transport Queue added Update 2016-11-29: Clean legacy public folder ACL added, Scripts categorized Update 2016-11-28: Add multiple legacy public folder replicas added Update 2016-08-18: Simple import of multiple PST files for a single user added Update 2016-07-28: Change IIS Log File settings Github Url added, Create a new Team Mailbox with Security Groups added Update 2016-06-04: GlobalFunctions added Update 2015-06-18: Copy-ReceiveConnector updated Update 2015-06-01: Exchange 2010 Public Folder Replication Report (UTF8 support) Update 2015-05-21: Copy anti-virus pattern to Exchange 2010/Exchange 2013 servers added Update 2014-12-10: Copy a receive connector from one Exchange Server to multiple Exchange Servers added
When setting up Exchange Server or any other Enterprise application that provides IIS services (i.e. SharePoint), it might be a requirement to change the default folder path für IIS log files to a different location than the default location (C:\inetpb\logs). Even though that todays physical or virtual system drives are in the 100GB range, it might be a design requirement to have the folder path placed on a different volume.
Especially when you have to configure more than one server, you prefer to have configurations implemented by script.
The script Set-Webserver.ps1 provides in it's current release the configuration of:
Addtional configurations, like logExtFileFlags, logFormat, truncateSize, can be implemented, if required.
The script runs on Windows Server 2008 R2, Windows Server 2012 and Windows Server 2012 R2.