SecretManagement.NetwrixPasswordSecure.Extension/functions.sharedinternal/Set-NetwrixPSFConfigValue.ps1
function Set-NetwrixPSFConfigValue { <# .SYNOPSIS A helper to simplify the setting of PSFConfig values. .DESCRIPTION A helper to simplify the setting of PSFConfig values. .PARAMETER AdditionalParameters Additional parameters which where configured while creating the vault. .PARAMETER SubPath The Sub-Path/-Key to be set. .PARAMETER Value The value to be initialized .PARAMETER Initialize If used only uninitialized settings will be saved (aka no overwrite) .PARAMETER VaultName The name of the secret vault. .PARAMETER Scope Does the setting belong to the Server/Database combo or to the configured vault? Defaults to 'Vault' .EXAMPLE Set-NetwrixPSFConfigValue -VaultName $VaultName -AdditionalParameters $AdditionalParameters -SubPath FormMapping -Value $mapping Sets the formmapping config to $mapping .NOTES The used configname is built by "SecretManagement.NetwrixPasswordSecure.Extension.$($AdditionalParameters.server -replace '\.','_').$($AdditionalParameters.Database).$SubPath" #> [CmdletBinding()] param ( [string]$VaultName, [hashtable]$AdditionalParameters, [String]$SubPath, $Value, [ValidateSet('ServerDB', 'Vault')] $Scope = 'Vault', [switch]$Initialize ) $confParam=@{ Module = "SecretManagement.NetwrixPasswordSecure.Extension" AllowDelete=$true Initialize=$Initialize Value=$Value } switch ($Scope) { 'ServerDB' { if ($null -eq $AdditionalParameters) { throw "`$AdditionalParameters param missing" } $AdditionalParameters = @{} + $AdditionalParameters $confParam.name = "$($AdditionalParameters.server -replace '\.','_').$($AdditionalParameters.Database).$SubPath" } 'Vault' { $confParam.name = "Vaults.$VaultName.$SubPath" } } Write-PSFMessage "Saving PSFConfig: $($confParam|ConvertTo-Json -Compress -Depth 2)" Set-PSFConfig @confParam } |