modules/deploy/dsc/ext/PsGallery/xExchange.1.6.0.0/Examples/MaintenanceMode/MaintenanceModePrep.ps1
Configuration MaintenanceModePrep { param ( [PSCredential]$ShellCreds ) Import-DscResource -Module xExchange Node $AllNodes.NodeName { LocalConfigurationManager { CertificateId = $Node.Thumbprint ConfigurationMode = "ApplyOnly" #Set to ApplyOnly, as we probably don't want to continuously check our config during Maintenance } xExchMailboxServer SetMbxServerSite1 { Identity = $Node.NodeName #Use a different server Identity for each xExchMailboxServer resource to satisfy the Key requirement. Use HOSTNAME here. Credential = $ShellCreds DatabaseCopyAutoActivationPolicy = "Blocked" DomainController = $Node.Site1DC } xExchMailboxServer SetMbxServerSite2 { Identity = $Node.NodeFqdn #Use a different server Identity for each xExchMailboxServer resource to satisfy the Key requirement. Use FQDN here. Credential = $ShellCreds DatabaseCopyAutoActivationPolicy = "Blocked" DomainController = $Node.Site2DC } } } if ($ShellCreds -eq $null) { $ShellCreds = Get-Credential -Message 'Enter credentials for establishing Remote Powershell sessions to Exchange' } ###Compiles the example MaintenanceModePrep -ConfigurationData $PSScriptRoot\MaintenanceMode-Config.psd1 -ShellCreds $ShellCreds ###Sets up LCM on target computers to decrypt credentials. #Set-DscLocalConfigurationManager -Path .\MaintenanceModePrep -Verbose -ComputerName XXX ###Pushes configuration and waits for execution #Start-DscConfiguration -Path .\MaintenanceModePrep -Verbose -Wait -ComputerName XXX |