Functions/GenXdev.Data.Preferences/Get-GenXdevPreferenceNames.ps1
################################################################################ <# .SYNOPSIS Gets all preference names from both local and default stores. .DESCRIPTION Retrieves a unique list of preference names by combining keys from both the local and default preference stores. The function merges the keys from both stores and ensures uniqueness in the returned collection. .EXAMPLE Get-GenXdevPreferenceNames Returns a unique list of all preference names from both stores. #> function Get-GenXdevPreferenceNames { [CmdletBinding()] [Alias("getPreferenceNames")] param() begin { Write-Verbose "Starting retrieval of preference names from all stores" } process { # get all preference names from the local store Write-Verbose "Retrieving keys from local store" $localKeys = Get-StoreKeys ` -StoreName "GenXdev.PowerShell.Preferences" ` -SynchronizationKey "Local" # get all preference names from the default store Write-Verbose "Retrieving keys from default store" $defaultKeys = Get-StoreKeys ` -StoreName "GenXdev.PowerShell.Preferences" ` -SynchronizationKey "Defaults" # combine local and default keys, remove duplicates, and sort Write-Verbose "Merging and deduplicating keys from both stores" $allKeys = @($localKeys + $defaultKeys) | Select-Object -Unique | Sort-Object Write-Verbose "Found $($allKeys.Count) unique preference names" return $allKeys } end { } } |