Functions/GenXdev.Data.Preferences/Remove-GenXdevPreference.ps1
################################################################################ <# .SYNOPSIS Removes a preference value from the GenXdev preferences store. .DESCRIPTION This function removes a preference value from the local store and optionally from the default store. It supports removing both local and default preferences through parameter sets. .PARAMETER Name The name of the preference to remove. .PARAMETER RemoveDefault Switch to also remove the preference from the default store. .EXAMPLE Remove-GenXdevPreference -Name "Theme" .EXAMPLE Remove-GenXdevPreference "Theme" -RemoveDefault #> function Remove-GenXdevPreference { [CmdletBinding(DefaultParameterSetName = 'Local')] [Alias("removePreference")] param( ######################################################################## [Parameter( Mandatory = $true, Position = 0, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, HelpMessage = "The name of the preference to remove" )] [ValidateNotNullOrEmpty()] [string]$Name, ######################################################################## [Parameter( Mandatory = $false, Position = 1, ParameterSetName = 'All', HelpMessage = "Switch to also remove the preference from defaults" )] [switch]$RemoveDefault ######################################################################## ) begin { Write-Verbose "Starting preference removal for: $Name" } process { # remove the preference from local store Write-Verbose "Removing preference from local store" Remove-KeyFromStore ` -StoreName "GenXdev.PowerShell.Preferences" ` -KeyName $Name ` -SynchronizationKey "Local" # if removedefault is specified, remove from defaults and sync if ($RemoveDefault) { Write-Verbose "Removing preference from default store" Remove-KeyFromStore ` -StoreName "GenXdev.PowerShell.Preferences" ` -KeyName $Name ` -SynchronizationKey "Defaults" Write-Verbose "Synchronizing default store changes" $null = Sync-KeyValueStore -SynchronizationKey "Defaults" } Write-Verbose "Preference removal completed" } end { } } |