scripts/misc/Set-OsParamValues.ps1


Function Set-OsParamValues {
    Param(
        [Parameter(Mandatory = $true)]
        [string] $ParameterFile,
        [string] $Parameter = 'DeploymentInfo'
    )

        $ParameterFileJson = Get-Content $ParameterFile -Raw | ConvertFrom-Json

        $ParameterFileJson.parameters.$Parameter.value | Get-Member -MemberType NoteProperty | Select-Object -ExpandProperty Name | ForEach-Object {
            $ParameterFileJson.parameters | Add-Member -MemberType NoteProperty -Name $_ -Value (New-Object -TypeName pscustomobject) -Force
            $ParameterFileJson.parameters.$_ | Add-Member -MemberType NoteProperty -Name value -Value $ParameterFileJson.parameters.$parameter.value.$_ -Force
        }

        $ParameterFileJson.parameters = $ParameterFileJson.parameters | Select-Object -ExcludeProperty $Parameter
        $ParameterFileJson | ConvertTo-Json -Depth 100 | Out-File $ParameterFile -Force
}