Private/Resolve-DNSFilterConfigPath.ps1

function Resolve-DNSFilterConfigPath {
    <#
    .SYNOPSIS
        Internal helper. Locates the DNSFilter roaming client's appsettings.json.
    .DESCRIPTION
        DNSFilter's Windows roaming client is deployed under a few different
        folder names depending on branding/whitelabel and installer version.
        This checks each known location and returns the first one that exists.
    #>

    [CmdletBinding()]
    param()

    process {
        $candidates = @(
            (Join-Path $env:ProgramData 'DNS Agent\Settings\appsettings.json')
            (Join-Path $env:ProgramData 'DNSFilter, Inc\Settings\appsettings.json')
            (Join-Path $env:ProgramData 'DNSAgent\Settings\appsettings.json')
            (Join-Path $env:ProgramData 'DNSFilter, Inc\Settings\appsettings.overrides.json')
        )

        foreach ($path in $candidates) {
            if (Test-Path -LiteralPath $path -PathType Leaf) {
                return $path
            }
        }

        return $null
    }
}