Skip to Content


<<<>>>


Get-Volume | FL DriveLetter, FileSystemLabel, AllocationUnitSize > C:\Media\Volume.txt



Get-OrganizationConfig | FL > C:\Media\OrganizationConfig.txt


Get-HybridConfiguration | FL > C:\Media\HybridConfiguration.txt


Get-AcceptedDomain | FL > C:\Media\AcceptedDomain.txt


Get-EmailAddressPolicy | FL > C:\Media\EmailAddressPolicy.txt


Get-TransportConfig | FL > C:\Media\TransportConfig.txt


Get-TransportService | FL > C:\Media\TransportService.txt


Get-ReceiveConnector | FL > C:\Media\ReceiveConnector.txt


Get-SendConnector | FL > C:\Media\SendConnector.txt


Get-ForeignConnector |FL > C:\Media\ForeignConnector.txt


Get-TransportRule | FL > C:\Media\TransportRules.txt


Get-ContentFilterConfig | FL > C:\Media\ContentFilterConfig.txt


Get-AddressList | FL > C:\Media\AddressList.txt


Get-AddressBookPolicy | FL > C:\Media\AddressBookPolicy.txt


Get-OfflineAddressBook | FL > C:\Media\OfflineAddressBook.txt


Get-RetentionPolicy | FL > C:\Media\RetentionPolicy.txt


Get-RetentionPolicyTag | FL > C:\Media\RetentionPolicyTag.txt


Get-JournalRule | FL > C:\Media\JournalRule.txt


Get-ThrottlingPolicy | FL > C:\Media\ThrottlePolicy.txt


Get-ExchangeServer | FL Name, Edition, AdminDisplayVersion > C:\Media\ExchangeServerE.txt


Get-ExchangeServer | FL > C:\Media\ExchangeServer.txt


Get-OutlookAnywhere | FL > C:\Media\OutlookAnywhere.txt


Get-MapiVirtualDirectory | FL > C:\Media\MapiVirtualDirectory.txt


Get-ClientAccessService | FL > C:\Media\ClientAccessService.txt


Get-WebServicesVirtualDirectory | FL > C:\Media\WebServicesVirtualDirectory.txt


Get-ActiveSyncVirtualDirectory | FL > C:\Media\ActiveSyncVirtualDirectory.txt


Get-OabVirtualDirectory | FL > C:\Media\OabVirtualDirectory.txt


Get-OwaVirtualDirectory | FL > C:\Media\OwaVirtualDirectory.txt


Get-EcpVirtualDirectory | FL > C:\Media\EcpVirtualDirectory.txt


Get-AutodiscoverVirtualDirectory | FL > C:\Media\AutodiscoverVirtualDirectory.txt


Get-PowerShellVirtualDirectory | FL > C:\Media\PowerShellVirtualDirectory.txt


Get-PopSettings | FL > C:\Media\PopSettings.txt


Get-ImapSettings | FL > C:\Media\ImapSettings.txt



Get-DatabaseAvailabilityGroup | FL > C:\Media\DatabaseAvailabilityGroup.txt



Get-MailboxDatabase | FL Identity, EdbFilePath, LogFolderPath, ProhibitSendReceiveQuota, ProhibitSendQuota, IssueWarningQuota, DatabaseCopies, Servers, ActivationPreference, RpcClientAccessServer, MaintenanceSchedule, CircularLoggingEnabled, ReplayLagTimes, TruncationLagTimes, AutoDatabaseMountDial, OfflineAddressBook > C:\Media\MailboxDatabaseS.txt


Get-MailboxDatabase | FL > C:\Media\MailboxDatabase.txt


Get-MailboxDatabase -Status | select Name, DatabaseSize, AvailableNewMailboxSpace > C:\Media\MailboxDatabaseSize.txt


Get-Mailbox -ResultSize Unlimited | Group-Object -Property:Database | Select-Object Name, Count | Sort-Object Name | Format-Table > C:\Media\MailboxCount.txt


Run Health Checker against a server to generate xml file. Run Health Checker again to generate html file from xml


?

<<<>>>

Download CU setup from Microsoft Download Center

Exchange 2019 CU15 setup requires .NET Framework 4.8.1

Check the installed .NET Framework and update or block \ unblock based on compatibilty with the Exchange CU

For instance to block automatic installation of .NET Framework 4.91 through Windows Update on Windows 2019 Server OS
REG ADD "HKEY_LOCAL_MACHINE\Software\Microsoft\NET Framework Setup\NDP\WU" /v BlockNetFramework491 /t REG_DWORD /d 1


Update Exchange 2019 Server OS with up to date patches made available through Windows Update
Backup AD DS
Backup Exchange 2019 servers and databases
Backup any out of box customized modifications such as OWA, config files on servers, registry changes or third party add-ons

^^^^^^^^^
NRAAMBX1
^^^^^^^^^

Configure Load Balancer to not redirect Exchange Traffic to NRAAMBX
Disbale Exchange aware Third Party AV
Disable File Level AV
Restart Exchange 2019 server

-----------------------------------------------
Prepare Schema from the Exchange 2019 CU15 Setup
-----------------------------------------------
1. Run setup.exe /PrepareSchema /IAcceptExchangeServerLicenseTerms_DiagnosticDataOFF
2. Run setup.exe /PrepareAD /IAcceptExchangeServerLicenseTerms_DiagnosticDataOFF
3. Run setup.exe /PrepareDomain /IAcceptExchangeServerLicenseTerms_DiagnosticDataOFF


----------------------------
Drain and Move Active Queues
----------------------------
Set-ServerComponentState -Identity NRAAMBX1 -Component HubTransport -State Draining -Requester Maintenance

Redirect-Message -Server NRAAMBX1.nraa.gov.om -Target NRAAMBX2.nraa.gov.om


-------------------------------
Suspend DAG Member from Cluster
-------------------------------
Suspend-ClusterNode -Name NRAAMBX1

--------------------------------
Disable database copy activation
--------------------------------
Set-MailboxServer -Identity NRAAMBX1 -DatabaseCopyActivationDisabledAndMoveNow $true

------------------------------------------
Review Database copy auto activation policy
------------------------------------------
Get-MailboxServer NRAAMBX1 | Select DatabaseCopyAutoActivationPolicy

---------------------------------------
Set auto activation policy to "Blocked"
---------------------------------------
Set-MailboxServer -Identity NRAAMBX1 -DatabaseCopyAutoActivationPolicy Blocked

------------------------------------
Put the Server into Maintenance Mode
------------------------------------
Set-ServerComponentState -Identity NRAAMBX1 -Component ServerWideOffline -State InActive -Requester Maintenance

*************************************
Install Exchange 2019 CU15 and Restart
*************************************
---------------------------------------
Take the Server out of Maintenance Mode
---------------------------------------
Set-ServerComponentState -Identity NRAAMBX1 -Component ServerWideOffline -State Active -Requester Maintenance

----------------------
Resume DAG Node Member
----------------------
Resume-ClusterNode -Name NRAAMBX1

--------------------------------
Check the Status of Cluser Nodes
--------------------------------
Open Command Prompt and run

cluster node

--------------------------------------------
Set auto activation policy to "Unrestricted"
--------------------------------------------
Set-MailboxServer -Identity NRAAMBX1 -DatabaseCopyAutoActivationPolicy Unrestricted

-------------------------------
Enable Database copy activation
-------------------------------
Set-MailboxServer -Identity NRAAMBX1 -DatabaseCopyActivationDisabledAndMoveNow $False

-----------------
Reactivate Queues
-----------------
Set-ServerComponentState -Identity NRAAMBX1 -Component HubTransport -State Active -Requester Maintenance


Configure Load Balancer to start redirecting Exchange Traffic to NRAAMBX1




^^^^^^^^^
NRAAMBX2
^^^^^^^^^

Configure Load Balancer to not redirect Exchange Traffic to NRAAMBX2
Disbale Exchange aware Third Party AV
Disable File Level AV
Restart Exchange 2019 server

----------------------------
Drain and Move Active Queues
----------------------------
Set-ServerComponentState -Identity NRAAMBX2 -Component HubTransport -State Draining -Requester Maintenance

Redirect-Message -Server NRAAMBX2.nraa.gov.om -Target NRAAMBX1.nraa.gov.om


-------------------------------
Suspend DAG Member from Cluster
-------------------------------
Suspend-ClusterNode -Name NRAAMBX2

--------------------------------
Disable database copy activation
--------------------------------
Set-MailboxServer -Identity NRAAMBX2 -DatabaseCopyActivationDisabledAndMoveNow $true

------------------------------------------
Review Database copy auto activation policy
------------------------------------------
Get-MailboxServer NRAAMBX2 | Select DatabaseCopyAutoActivationPolicy

---------------------------------------
Set auto activation policy to "Blocked"
---------------------------------------
Set-MailboxServer -Identity NRAAMBX2 -DatabaseCopyAutoActivationPolicy Blocked

------------------------------------
Put the Server into Maintenance Mode
------------------------------------
Set-ServerComponentState -Identity NRAAMBX2 -Component ServerWideOffline -State InActive -Requester Maintenance

*************************************
Install Exchange 2019 CU15 and Restart
*************************************
---------------------------------------
Take the Server out of Maintenance Mode
---------------------------------------
Set-ServerComponentState -Identity NRAAMBX2 -Component ServerWideOffline -State Active -Requester Maintenance

----------------------
Resume DAG Node Member
----------------------
Resume-ClusterNode -Name NRAAMBX2

--------------------------------
Check the Status of Cluser Nodes
--------------------------------
Open Command Prompt and run

cluster node

--------------------------------------------
Set auto activation policy to "Unrestricted"
--------------------------------------------
Set-MailboxServer -Identity NRAAMBX2 -DatabaseCopyAutoActivationPolicy Unrestricted

-------------------------------
Enable Database copy activation
-------------------------------
Set-MailboxServer -Identity NRAAMBX2 -DatabaseCopyActivationDisabledAndMoveNow $False

-----------------
Reactivate Queues
-----------------
Set-ServerComponentState -Identity NRAAMBX2 -Component HubTransport -State Active -Requester Maintenance

Configure Load Balancer to start redirecting Exchange Traffic to NRAAMBX2



^^^^^^^^^^^
DR-NRAAMBX3
^^^^^^^^^^^

Disbale Exchange aware Third Party AV
Disable File Level AV
Restart Exchange 2019 server

----------------------------
Drain and Move Active Queues
----------------------------
Set-ServerComponentState -Identity DR-NRAAMBX3 -Component HubTransport -State Draining -Requester Maintenance

Redirect-Message -Server DR-NRAAMBX3.nraa.gov.om -Target NRAAMBX2.nraa.gov.om


-------------------------------
Suspend DAG Member from Cluster
-------------------------------
Suspend-ClusterNode -Name DR-NRAAMBX3

--------------------------------
Disable database copy activation
--------------------------------
Set-MailboxServer -Identity DR-NRAAMBX3 -DatabaseCopyActivationDisabledAndMoveNow $true

------------------------------------------
Review Database copy auto activation policy
------------------------------------------
Get-MailboxServer DR-NRAAMBX3 | Select DatabaseCopyAutoActivationPolicy

---------------------------------------
Set auto activation policy to "Blocked"
---------------------------------------
Set-MailboxServer -Identity DR-NRAAMBX3 -DatabaseCopyAutoActivationPolicy Blocked

------------------------------------
Put the Server into Maintenance Mode
------------------------------------
Set-ServerComponentState -Identity DR-NRAAMBX3 -Component ServerWideOffline -State InActive -Requester Maintenance

*************************************
Install Exchange 2019 CU15 and Restart
*************************************
---------------------------------------
Take the Server out of Maintenance Mode
---------------------------------------
Set-ServerComponentState -Identity DR-NRAAMBX3 -Component ServerWideOffline -State Active -Requester Maintenance

----------------------
Resume DAG Node Member
----------------------
Resume-ClusterNode -Name DR-NRAAMBX3

--------------------------------
Check the Status of Cluser Nodes
--------------------------------
Open Command Prompt and run

cluster node

--------------------------------------------
Set auto activation policy to "Unrestricted"
--------------------------------------------
Set-MailboxServer -Identity DR-NRAAMBX3 -DatabaseCopyAutoActivationPolicy Unrestricted

-------------------------------
Enable Database copy activation
-------------------------------
Set-MailboxServer -Identity DR-NRAAMBX3 -DatabaseCopyActivationDisabledAndMoveNow $False

-----------------
Reactivate Queues
-----------------
Set-ServerComponentState -Identity DR-NRAAMBX3 -Component HubTransport -State Active -Requester Maintenance




------------------------------------
Exchange Server Emergency Mitigation
------------------------------------

After Exchange 2019 CU11 admin can enable or disable sending the optional data to the Office Config Service (OCS) on the Exchange server

Set-ExchangeServer -Identity <ServerName> -DataCollectionEnabled $false
OR
Set-ExchangeServer -Identity <ServerName> -DataCollectionEnabled $true

Verify that an Exchange server has connectivity to the OCS using the Test-MitigationServiceConnectivity.ps1 script
EM Service checks the OCS for migigations every 1 Hour

All applicable mitigations are enabled by default
An admin can enable and disable mitigations at an organizational level or at the Exchange server level

Set-OrganizationConfig -MitigationsEnabled $false
OR
Set-ExchangeServer -Identity <ServerName> -MitigationsEnabled $false

To view Applied and Blocked Mitigations

Get-ExchangeServer -Identity <ServerName> | fl name, MitigationsApplied, MitigationsBlocked

A detailed list of available mitigations can also be viewed using the Get-Mitigations.ps1 script

.\Get-Mitigation.ps1 -Identity <Server> -ExportCSV  C:\temp\CSVReport.csv



------------------------------------
Exchange Server Feature Flighting
------------------------------------

After Exchange 2019 CU15, Feature Flighting, by default assigns all Exchange Servers to RingLevel 1, this Ring will receive new features as soon as Microsoft has confirmed that the features are ready for general availability.
If you don't want Microsoft to automatically enable new features or make changes to your server via Feature Flighting, you must assign your Exchange servers to Ring 2, in this Ring Flighted features are shipped in a disabled state and must be manually enabled by the administrator.

The following example assigns a server to Ring 2

Set-ExchangeServer -Identity <ServerName> -RingLevel 2


Validate the assignments of Rings on all Exchange Servers in ORG

Get-ExchangeServer | Format-List Identity,RingLevel




^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
To verify the server is not in maintenance mode, run

Get-ServerComponentState <ServerName> | Format-Table Component,State -Autosize


Note: If you're installing an Exchange update, and the update process fails, it can leave some server components in an inactive state, which will be displayed in the output of the above Get-ServerComponentState cmdlet. To resolve this, run following commands

Set-ServerComponentState <ServerName> -Component ServerWideOffline -State Active -Requester Functional

Set-ServerComponentState <ServerName> -Component Monitoring -State Active -Requester Functional

Set-ServerComponentState <ServerName> -Component RecoveryActionsEnabled -State Active -Requester Functional



^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
If you're installing an Exchange update, and the update process fails, it can leave some server services in disabled state, to resolve this

Check the status of Exchange Services

Get-Service -DisplayName "Microsoft exchange*" | ft DisplayName,Starttype ,Status


​​​​​​​If the StartType value for Microsoft Exchange services is Disabled, run the following command in Windows PowerShell to restore the StartType

cd "C:\Program Files\Microsoft\Exchange Server\V15\Bin"
Add-PSSnapin -Name Microsoft.Exchange.Management.PowerShell.Setup -ErrorAction SilentlyContinue
.\ServiceControl.ps1 AfterPatch


Make sure that the status of Microsoft Exchange services display Automatic StartMode

Get-Service -DisplayName "Microsoft exchange*" | ft DisplayName,Starttype ,Status



<<<>>>