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 6,505 10/30/2019 7,967 9/19/2019 7,766 8/8/2019 30,047 2/20/2019 897 1/10/2019 (current version) 407 11/29/2018 481 10/25/2018 381 9/5/2018 345 7/25/2018 462 6/13/2018 420 5/2/2018 1,017 2/8/2018 419 12/20/2017 339 11/15/2017 599 8/23/2017 609 5/31/2017 926 3/8/2017 447 1/26/2017 368 12/14/2016 363 11/2/2016 473 9/21/2016 364 8/10/2016 312 6/29/2016 454 5/18/2016 977 2/3/2016 381 11/16/2015 140 10/22/2015 756 9/11/2015 175 7/24/2015 266 4/23/2015 126 2/19/2015 37 12/18/2014 57 10/28/2014 24 10/16/2014
Show less