Bundle DSC Waves for Pull Server Distribution
This assumes you have WinRar installed to the default path, this will also delete the source files after it creates the zip files.
After running this script copy the resulting files to the DSC server in the following location: "C:\Program Files\WindowsPowerShell\DscService\Modules"
$modpath = "-path to dsc wave-" $output = "-path to save wave to-" [regex]$reg = "([0-9\.]{3,12})" if((Test-Path $output) -ne $true){ New-Item -Path $output -ItemType Directory -Force } foreach($module in (Get-ChildItem -Path $modpath)) { $psd1 = ($module.FullName+"\"+$module+".psd1") $content = Get-Content $psd1 foreach($line in $content) { if($line.Contains("ModuleVersion")) { $outpath = $output+"\"+$module.Name+"_"+($reg.Match($line).Captures) Write-Host "" if(Test-Path -Path $outpath) { Copy-Item -Path $module.FullName -Destination $outpath -Recurse }else{ New-Item -Path $outpath -ItemType Directory -Force Copy-Item -Path $module.FullName -Destination $outpath -Recurse } & "C:\Program Files\WinRar\winrar.exe" a -afzip -df -ep1 ($outpath+".zip") $outpath } } } Start-Sleep -Seconds 1 New-DscCheckSum -Path $output