public/Get-LibraryVersions.ps1

function Get-LibraryVersions {
    <#
    .SYNOPSIS
        Gets versions of common system libraries.
    .DESCRIPTION
        Returns installed versions for common runtime libraries such as libc and OpenSSL-related packages.
    .EXAMPLE
        Get-LibraryVersions
        Returns common system library versions.
    .LINK
        https://github.com/Skatterbrainz/linuxtools/blob/master/docs/Get-LibraryVersions.md
    #>

    [CmdletBinding()]
    param()
    try {
        $targets = @('libc6','libssl3','libssl1.1','libcrypto3','libstdc++6','zlib1g')
        if (Get-Command -Name dpkg-query -ErrorAction SilentlyContinue) {
            foreach ($pkg in $targets) {
                $version = dpkg-query -W -f='${Version}' $pkg 2>$null
                if (-not [string]::IsNullOrWhiteSpace($version)) {
                    [pscustomobject]@{
                        Name    = $pkg
                        Version = $version.Trim()
                        Source  = 'dpkg'
                    }
                }
            }
        } elseif (Get-Command -Name rpm -ErrorAction SilentlyContinue) {
            $rpmTargets = @('glibc','openssl-libs','libstdc++','zlib')
            foreach ($pkg in $rpmTargets) {
                $version = rpm -q --queryformat '%{VERSION}-%{RELEASE}' $pkg 2>$null
                if ($LASTEXITCODE -eq 0 -and -not [string]::IsNullOrWhiteSpace($version)) {
                    [pscustomobject]@{
                        Name    = $pkg
                        Version = $version.Trim()
                        Source  = 'rpm'
                    }
                }
            }
        } else {
            Write-Warning 'No supported package query tool found (dpkg-query or rpm)'
        }
    } catch {
        Write-Error $($_.Exception.Message -join(';'))
    }
}