Public/Install-Configurations.ps1
|
Function Install-Configurations { <# .Synopsis Installs all needed configurations .Description Installs all needed configurations #> [CmdletBinding()] param() begin { $ModuleConfig = Get-ItemProperty -Path 'HKLM:\SOFTWARE\PSWCMA' $ConfigurationPath = "$($ModuleConfig.FilePath)\Configuration" $Groups = Get-ConfigurationGroups -Filter $ModuleConfig.AdFilter -ADServer $ModuleConfig.ActiveDirectory -Path $ModuleConfig.FilePath -Baseline $ModuleConfig.BaseLineConfig } process { $ConfigCount = Get-Configurations -ConfigurationNames $Groups -GitServer $ModuleConfig.Git -Path $ModuleConfig.FilePath Update-LocalConfigManager -ConfigCount $ConfigCount -ConfigNames $Groups -Path $ModuleConfig.FilePath if($ConfigCount -eq 1) { $Group = $Groups[0].Name Write-Verbose "Only one Configuration to install. Install from $ConfigurationPath\$Group" Start-DscConfiguration -Path "$ConfigurationPath\$Group" -ComputerName localhost -Wait } else { Write-Verbose "Going to install $ConfigCount Configurations" foreach($Group in $Groups) { Publish-DscConfiguration -Path "$ConfigurationPath\$($Group.Name)" -ComputerName localhost } Start-DscConfiguration -UseExisting -ComputerName localhost -Wait } } end { Write-Verbose "Finished installing Configurations" } } |