Private/New-CustomAzKeyVault.ps1
function Global:New-CustomAzKeyVault { [CmdletBinding()] param( [Parameter(Mandatory = $true)] [string] $ResourceGroupName, [Parameter(Mandatory = $true)] [string] $ResourceLocation, [Parameter(Mandatory = $true)] [string] $KeyVaultName, $ValueTable ) process { Write-CustomHost -Message "Checking if KeyVault $KeyVaultName already exists..." $keyVault = Get-AzKeyVault -ResourceGroupName $ResourceGroupName -VaultName $KeyVaultName -ErrorAction SilentlyContinue if (-not($keyVault)) { Write-CustomHost -Message "Creating KeyVault $KeyVaultName ..." $keyVault = New-AzKeyVault -ResourceGroupName $ResourceGroupName -Location $ResourceLocation -Name $KeyVaultName Write-CustomHost -Message "Done." } if ($ValueTable){ foreach ($ValuePair in $ValueTable.GetEnumerator()){ Write-CustomHost -Message "Adding entry $($ValuePair.Key)" Set-AzKeyVaultSecret -VaultName $KeyVaultName -Name $ValuePair.Key -SecretValue (ConvertTo-SecureString -String $ValuePair.Value -AsPlainText -Force) | Out-Null } } $keyVault } } |