Public/Get-RpConnectionProfile.ps1

function Get-RpConnectionProfile {
    <#
    .SYNOPSIS
    Retrieves and displays RemotePro connection profiles or the credentials XML.
 
    .DESCRIPTION
    The Get-RpConnectionProfile function retrieves connection profiles based on
    the provided parameters. It can either show all profiles, a specific profile
    by name, or open the credentials XML file for direct viewing.
 
    .COMPONENT
    ConnectionProfiles
 
    .PARAMETER Name
    The name of the connection profile to retrieve. Used when the user wants to
    view a specific profile. Only valid in the 'ViewProfiles' parameter set.
 
    .PARAMETER All
    A switch that when specified, retrieves and displays all connection profiles.
    Only valid in the 'ViewProfiles' parameter set.
 
    .PARAMETER ViewXml
    A switch to open the credentials XML file directly. This is the only option
    in the 'ViewXml' parameter set.
 
    .EXAMPLE
    Get-RpConnectionProfile -All
 
    Displays all available RemotePro connection profiles.
 
    .EXAMPLE
    Get-RpConnectionProfile -Name "ProfileName"
 
    Retrieves and displays the connection profile named "ProfileName".
 
    .EXAMPLE
    Get-RpConnectionProfile -ViewXml
 
    Opens the credentials XML file associated with RemotePro connection
    profiles for direct viewing.
 
    .NOTES
    - This function is part of the RemotePro PowerShell module and interacts
    with video management systems.
    - The credentials.xml file contains sensitive information; handle with care.
 
    .LINK
    https://www.remotepro.dev/en-US/Get-RpConnectionProfile
    #>

    [CmdletBinding(DefaultParameterSetName = 'ViewProfiles')]
    param (
        [Parameter(ParameterSetName = 'ViewProfiles')]
        [string]$Name,

        [Parameter(ParameterSetName = 'ViewProfiles')]
        [switch]$All,

        [Parameter(ParameterSetName = 'ViewXml')]
        [switch]$ViewXml
    )

    switch ($PSCmdlet.ParameterSetName) {
        'ViewXml' {
            $credentialsPath = Join-Path $env:LOCALAPPDATA "MilestonePSTools\credentials.xml"
            if (-not (Test-Path -Path $credentialsPath)) {
                Write-Error "The credentials.xml file does not exist at $credentialsPath."
                return
            }
            Start-Process $credentialsPath
            return
        }

        'ViewProfiles' {
            if ($Name) {
                # Retrieve and display the specific profile using Get-VmsConnectionProfile
                Get-VmsConnectionProfile  -Name $Name
            } elseif ($All) {
                # Retrieve and display all profiles using Get-VmsConnectionProfile
                Get-VmsConnectionProfile -All
            } else {
                Write-Error "Please specify either -Name or -All to view the profiles."
            }
        }
    }
}

# Example usage
# To view all connection profiles
# Get-RpConnectionProfile -All

# To view a specific profile
# Get-RpConnectionProfile -Name "ProfileName"

# To open the XML file only
# Get-RpConnectionProfile -ViewXml