Private/Get-ArgusSkuName.ps1

function Get-ArgusSkuName {
    <#
    .SYNOPSIS
        Returns readable licence names for skuIds, using subscribedSkus and a small built-in name map.

    .DESCRIPTION
        Graph only exposes skuPartNumber (e.g. SPE_E3). Common SKUs are translated to their commercial
        names (from "Product names and service plan identifiers for licensing" on Microsoft Learn);
        other SKUs fall back to skuPartNumber, and unknown skuIds to the id itself.
    #>

    [CmdletBinding()]
    [OutputType([string[]])]
    param(
        [Parameter(Mandatory)]
        [AllowEmptyCollection()]
        [AllowNull()]
        [object[]] $SkuId,

        [Parameter()]
        [AllowEmptyCollection()]
        [AllowNull()]
        [object[]] $SubscribedSku = @()
    )

    $names = @{
        SPE_E3 = 'Microsoft 365 E3'; SPE_E5 = 'Microsoft 365 E5'; SPE_F1 = 'Microsoft 365 F3'
        ENTERPRISEPACK = 'Office 365 E3'; ENTERPRISEPREMIUM = 'Office 365 E5'; STANDARDPACK = 'Office 365 E1'; DESKLESSPACK = 'Office 365 F3'
        SPB = 'Microsoft 365 Business Premium'; O365_BUSINESS_PREMIUM = 'Microsoft 365 Business Standard'; O365_BUSINESS_ESSENTIALS = 'Microsoft 365 Business Basic'
        O365_BUSINESS = 'Microsoft 365 Apps for business'; OFFICESUBSCRIPTION = 'Microsoft 365 Apps for enterprise'
        EXCHANGESTANDARD = 'Exchange Online (Plan 1)'; EXCHANGEENTERPRISE = 'Exchange Online (Plan 2)'; EXCHANGEARCHIVE_ADDON = 'Exchange Online Archiving'
        EMS = 'Enterprise Mobility + Security E3'; EMSPREMIUM = 'Enterprise Mobility + Security E5'
        AAD_PREMIUM = 'Microsoft Entra ID P1'; AAD_PREMIUM_P2 = 'Microsoft Entra ID P2'
        POWER_BI_PRO = 'Power BI Pro'; POWER_BI_STANDARD = 'Power BI (free)'; PBI_PREMIUM_PER_USER = 'Power BI Premium Per User'
        VISIOCLIENT = 'Visio Plan 2'; PROJECTPREMIUM = 'Project Plan 5'; PROJECTPROFESSIONAL = 'Project Plan 3'
        TEAMS_EXPLORATORY = 'Microsoft Teams Exploratory'; FLOW_FREE = 'Power Automate Free'; Microsoft_Teams_Premium = 'Teams Premium'
        INTUNE_A = 'Microsoft Intune Plan 1'; WIN_DEF_ATP = 'Microsoft Defender for Endpoint P2'; MCOEV = 'Teams Phone Standard'
    }

    $partNumbers = @{}
    foreach ($sku in @($SubscribedSku | Where-Object { $_ })) {
        $id = [string](Get-ArgusProperty $sku 'skuId' '')
        if ($id) { $partNumbers[$id.ToLowerInvariant()] = [string](Get-ArgusProperty $sku 'skuPartNumber' '') }
    }

    [string[]]@(foreach ($value in @($SkuId | Where-Object { $_ })) {
            $id = ([string]$value).ToLowerInvariant()
            $part = $partNumbers[$id]
            if (-not $part) { $id }
            elseif ($names.ContainsKey($part)) { $names[$part] }
            else { $part }
        })
}