Private/Get-DSCLabConfiguration.ps1

function Get-DSCLabConfiguration {
        [CmdletBinding()]
        Param()
@'
configuration Sample_xDscWebService
{
    param
    (
            [string[]]$NodeName = 'localhost',
 
            [Parameter(HelpMessage='Use AllowUnencryptedTraffic for setting up a non SSL based endpoint (Recommended only for test purpose)')]
            [ValidateNotNullOrEmpty()]
            [string] $certificateThumbPrint,
 
            [Parameter(HelpMessage='This should be a string with enough entropy (randomness) to protect the registration of clients to the pull server. We will use new GUID by default.')]
            [ValidateNotNullOrEmpty()]
            [string] $RegistrationKey = "3cf98503-779a-4b9d-8853-2e49fe5a2c99" #([guid]::NewGuid()).Guid
     )
     Import-DSCResource -ModuleName xPSDesiredStateConfiguration -ModuleVersion 3.13.0.0
     Import-DSCResource -ModuleName PSDesiredStateConfiguration
     Node $NodeName
     {
         WindowsFeature DSCServiceFeature
         {
             Ensure = "Present"
             Name = "DSC-Service"
         }
         xDscWebService PSDSCPullServer
         {
             Ensure = "Present"
             EndpointName = "PSDSCPullServer"
             Port = 8086
             PhysicalPath = "$env:SystemDrive\inetpub\PSDSCPullServer"
             CertificateThumbPrint = $certificateThumbPrint
             ModulePath = "$env:PROGRAMFILES\WindowsPowerShell\DscService\Modules"
             ConfigurationPath = "$env:PROGRAMFILES\WindowsPowerShell\DscService\Configuration"
             State = "Started"
             DependsOn = "[WindowsFeature]DSCServiceFeature"
         }
        File RegistrationKeyFile
        {
            Ensure ='Present'
            Type = 'File'
            DestinationPath = "$env:ProgramFiles\WindowsPowerShell\DscService\RegistrationKeys.txt"
            Contents = $RegistrationKey
        }
    }
}
'@

}