Examples/InstallExchange/InstallExchange.ps1
<#
.EXAMPLE This example shows how to install Exchange Server. #> $ConfigurationData = @{ AllNodes = @( @{ NodeName = '*' <# NOTE! THIS IS NOT RECOMMENDED IN PRODUCTION. This is added so that AppVeyor automatic tests can pass, otherwise the tests will fail on passwords being in plain text and not being encrypted. Because it is not possible to have a certificate in AppVeyor to encrypt the passwords we need to add the parameter 'PSDscAllowPlainTextPassword'. NOTE! THIS IS NOT RECOMMENDED IN PRODUCTION. See: http://blogs.msdn.com/b/powershell/archive/2014/01/31/want-to-secure-credentials-in-windows-powershell-desired-state-configuration.aspx #> PSDscAllowPlainTextPassword = $true }, @{ NodeName = 'DSCPULL-1' } ) } Configuration Example { param ( [Parameter(Mandatory = $true)] [System.Management.Automation.PSCredential] $ExchangeAdminCredential ) Import-DscResource -Module xExchange Import-DscResource -Module xPendingReboot Node $AllNodes.NodeName { #Copy the Exchange setup files locally File ExchangeBinaries { Ensure = 'Present' Type = 'Directory' Recurse = $true SourcePath = '\\rras-1\Binaries\E15CU6' DestinationPath = 'C:\Binaries\E15CU6' } #Check if a reboot is needed before installing Exchange xPendingReboot BeforeExchangeInstall { Name = 'BeforeExchangeInstall' DependsOn = '[File]ExchangeBinaries' } #Do the Exchange install xExchInstall InstallExchange { Path = 'C:\Binaries\E15CU6\Setup.exe' Arguments = '/mode:Install /role:Mailbox,ClientAccess /Iacceptexchangeserverlicenseterms' Credential = $ExchangeAdminCredential DependsOn = '[xPendingReboot]BeforeExchangeInstall' } #See if a reboot is required after installing Exchange xPendingReboot AfterExchangeInstall { Name = 'AfterExchangeInstall' DependsOn = '[xExchInstall]InstallExchange' } } } |