Skip to content

Set-PSSMSecretVault

SecretManagement: Sets the default secret vault

#Requires -Version 5.1
#Requires -Modules Microsoft.PowerShell.SecretManagement

[CmdletBinding(DefaultParameterSetName = "SetDefault")]
Param(
    [Parameter(Mandatory = $true, ParameterSetName = "SetDefault")]
    [string]$VaultName,

    [Parameter(ParameterSetName = "ClearDefault")]
    [bool]$ClearDefault = $true
)

Process {
    try {
        if ($PSCmdlet.ParameterSetName -eq "SetDefault") {
            $null = Set-SecretVaultDefault -Name $VaultName -Confirm:$false -ErrorAction Stop | Select-Object *
            $result = Get-SecretVault -Name $VaultName -ErrorAction Stop | Select-Object *
        }
        else {
            $result = Get-SecretVault -ErrorAction Stop | Sort-Object Name
            Set-SecretVaultDefault -ClearDefault:$ClearDefault -Confirm:$false -ErrorAction Stop | Out-Null
        }
        if ($null -ne $result) { foreach ($item in $result) { $item | Add-Member -NotePropertyName Timestamp -NotePropertyValue (Get-Date -Format "yyyy-MM-dd HH:mm:ss") -PassThru -Force } }
    }
    catch { throw }
}

Name of the vault to set as default

Clear default status from all registered vaults

An interactive directory of PowerShell scripts.