Module with DSC Resources for deployment and configuration of Microsoft Exchange Server.

Minimum PowerShell version


Installation Options

Copy and Paste the following command to install this package using PowerShellGet More Info

Install-Module -Name xExchange -RequiredVersion

You can deploy this package directly to Azure Automation. Note that deploying packages with dependencies will deloy all the dependencies to Azure Automation. Learn More

Manually download the .nupkg file to your system's default download location. Note that the file won't be unpacked, and won't include any dependencies. Learn More


Microsoft Corporation


(c) 2018 Microsoft Corporation. All rights reserved.



DesiredStateConfiguration DSC DSCResourceKit DSCResource


Get-ExistingRemoteExchangeSession Get-RemoteExchangeSession New-RemoteExchangeSession Import-RemoteExchangeSession Remove-RemoteExchangeSession Test-ExchangePresent Get-ExchangeVersionYear Get-ExchangeUninstallKey Get-DetailedInstalledVersion Test-ExchangeSetupComplete Test-ExchangeSetupPartiallyCompleted Get-SetupExeVersion Test-ShouldUpgradeExchange Get-ExchangeInstallStatus Set-WSManConfigStatus Test-ShouldInstallUMLanguagePack Test-ExchangeSetupRunning Compare-StringToString Compare-BoolToBool Compare-TimespanToString Compare-ByteQuantifiedSizeToString Compare-UnlimitedToString Compare-ADObjectIdToSmtpAddressString Convert-StringToArray Convert-StringArrayToLowerCase Compare-ArrayContent Test-ArrayElementsInSecondArray Add-ToPSBoundParametersFromHashtable Remove-FromPSBoundParametersUsingHashtable Remove-NotApplicableParamsForVersion Set-EmptyStringParamsToNull Test-ExchangeSetting Write-InvalidSettingVerbose Write-FunctionEntry Start-ExchangeScheduledTask Test-CmdletHasParameter Get-PreviousError Assert-NoNewError Restart-ExistingAppPool Test-UMLanguagePackInstalled Compare-IPAddressToString Compare-SmtpAddressToString Compare-IPAddressesToArray Compare-PSCredential Test-ExtendedProtectionSPNList Assert-IsSupportedWithExchangeVersion Invoke-DotSourcedScript Remove-HelperSnapin Wait-ForProcessStart Wait-ForProcessStop Assert-ExchangeSetupArgumentsComplete Get-StringFromHashtable Get-DomainDNFromFQDN


xExchActiveSyncVirtualDirectory xExchAntiMalwareScanning xExchAutodiscoverVirtualDirectory xExchAutoMountPoint xExchClientAccessServer xExchDatabaseAvailabilityGroup xExchDatabaseAvailabilityGroupMember xExchDatabaseAvailabilityGroupNetwork xExchEcpVirtualDirectory xExchEventLogLevel xExchExchangeCertificate xExchExchangeServer xExchImapSettings xExchInstall xExchJetstress xExchJetstressCleanup xExchMailboxDatabase xExchMailboxDatabaseCopy xExchMailboxServer xExchMailboxTransportService xExchMaintenanceMode xExchMapiVirtualDirectory xExchOabVirtualDirectory xExchOutlookAnywhere xExchOwaVirtualDirectory xExchPopSettings xExchPowerShellVirtualDirectory xExchReceiveConnector xExchTransportService xExchUMCallRouterSettings xExchUMService xExchWaitForADPrep xExchWaitForDAG xExchWaitForMailboxDatabase xExchWebServicesVirtualDirectory


This module has no dependencies.

Release Notes

- Opt-in for the common test flagged Script Analyzer rules
 ([issue 234](https://github.com/PowerShell/xExchange/issues/234)).
- Opt-in for the common test testing for relative path length.
- Removed the property `PSDscAllowPlainTextPassword` from all examples
 so the examples are secure by default. The property
 `PSDscAllowPlainTextPassword` was previously needed to (test) compile
 the examples in the CI pipeline, but now the CI pipeline is using a
 certificate to compile the examples.
- Opt-in for the common test that validates the markdown links.
- Fix typo of the word "Certificate" in several example files.
- Add spaces between array members.
- Add initial set of Unit Tests (mostly Get-TargetResource tests) for all
 remaining resource files.
- Add WaitForComputerObject parameter to xExchWaitForDAG
- Add spaces between comment hashtags and comments.
- Add space between variable types and variables.
- Fixes issue where xExchMailboxDatabase fails to test for a Journal Recipient
 because the module did not load the Get-Recipient cmdlet (335).
- Fixes broken Integration tests in
 MSFT_xExchMaintenanceMode.Integration.Tests.ps1 (336).
- Fix issue where Get-ReceiveConnector against an Absent connector causes an
 error to be logged in the MSExchange Management log.
- Rename poorly named functions in xExchangeDiskPart.psm1 and
 MSFT_xExchAutoMountPoint.psm1, and add comment based help.

Version History

Version Downloads Last updated 425 2/20/2019 403 1/10/2019 (current version) 394 11/29/2018 445 10/25/2018 367 9/5/2018 331 7/25/2018 450 6/13/2018 409 5/2/2018 1,013 2/8/2018 414 12/20/2017 335 11/15/2017 594 8/23/2017 605 5/31/2017 921 3/8/2017 443 1/26/2017 364 12/14/2016 359 11/2/2016 469 9/21/2016 360 8/10/2016 300 6/29/2016 446 5/18/2016 973 2/3/2016 377 11/16/2015 136 10/22/2015 750 9/11/2015 171 7/24/2015 261 4/23/2015 122 2/19/2015 33 12/18/2014 53 10/28/2014 20 10/16/2014