ARM-wvd-templates/DSC/Configuration.ps1 (98 lines of code) (raw):

configuration AddSessionHost { param ( [Parameter(Mandatory = $true)] [string]$HostPoolName, [Parameter(Mandatory = $true)] [string]$RegistrationInfoToken, [Parameter(Mandatory = $false)] [bool]$AadJoin = $false, [Parameter(Mandatory = $false)] [string]$SessionHostConfigurationLastUpdateTime = "", [Parameter(Mandatory = $false)] [bool]$EnableVerboseMsiLogging = $false ) $ErrorActionPreference = 'Stop' $ScriptPath = [system.io.path]::GetDirectoryName($PSCommandPath) . (Join-Path $ScriptPath "Functions.ps1") $rdshIsServer = isRdshServer Node localhost { LocalConfigurationManager { RebootNodeIfNeeded = $true ConfigurationMode = "ApplyOnly" } if ($rdshIsServer) { "$(get-date) - rdshIsServer = true: $rdshIsServer" | out-file c:\windows\temp\rdshIsServerResult.txt -Append WindowsFeature RDS-RD-Server { Ensure = "Present" Name = "RDS-RD-Server" } Script ExecuteRdAgentInstallServer { DependsOn = "[WindowsFeature]RDS-RD-Server" GetScript = { return @{'Result' = ''} } SetScript = { . (Join-Path $using:ScriptPath "Functions.ps1") try { & "$using:ScriptPath\Script-SetupSessionHost.ps1" -HostPoolName $using:HostPoolName -RegistrationInfoToken $using:RegistrationInfoToken -AadJoin $using:AadJoin -SessionHostConfigurationLastUpdateTime $using:SessionHostConfigurationLastUpdateTime -EnableVerboseMsiLogging:($using:EnableVerboseMsiLogging) } catch { $ErrMsg = $PSItem | Format-List -Force | Out-String Write-Log -Err $ErrMsg throw [System.Exception]::new("Some error occurred in DSC ExecuteRdAgentInstallServer SetScript: $ErrMsg", $PSItem.Exception) } } TestScript = { . (Join-Path $using:ScriptPath "Functions.ps1") try { return (& "$using:ScriptPath\Script-TestSetupSessionHost.ps1" -HostPoolName $using:HostPoolName) } catch { $ErrMsg = $PSItem | Format-List -Force | Out-String Write-Log -Err $ErrMsg throw [System.Exception]::new("Some error occurred in DSC ExecuteRdAgentInstallServer TestScript: $ErrMsg", $PSItem.Exception) } } } } else { "$(get-date) - rdshIsServer = false: $rdshIsServer" | out-file c:\windows\temp\rdshIsServerResult.txt -Append Script ExecuteRdAgentInstallClient { GetScript = { return @{'Result' = ''} } SetScript = { . (Join-Path $using:ScriptPath "Functions.ps1") try { & "$using:ScriptPath\Script-SetupSessionHost.ps1" -HostPoolName $using:HostPoolName -RegistrationInfoToken $using:RegistrationInfoToken -AadJoin $using:AadJoin -SessionHostConfigurationLastUpdateTime $using:SessionHostConfigurationLastUpdateTime -EnableVerboseMsiLogging:($using:EnableVerboseMsiLogging) } catch { $ErrMsg = $PSItem | Format-List -Force | Out-String Write-Log -Err $ErrMsg throw [System.Exception]::new("Some error occurred in DSC ExecuteRdAgentInstallClient SetScript: $ErrMsg", $PSItem.Exception) } } TestScript = { . (Join-Path $using:ScriptPath "Functions.ps1") try { return (& "$using:ScriptPath\Script-TestSetupSessionHost.ps1" -HostPoolName $using:HostPoolName) } catch { $ErrMsg = $PSItem | Format-List -Force | Out-String Write-Log -Err $ErrMsg throw [System.Exception]::new("Some error occurred in DSC ExecuteRdAgentInstallClient TestScript: $ErrMsg", $PSItem.Exception) } } } } } }