I have successfully used this in Windows 10, and it reports the font family name as expected.
$fontFile = '\\px\Rollouts\Misc\Fonts\Arial Narrow\ARIALN.TTF'
$fontCol = [System.Drawing.Text.PrivateFontCollection]::new()
$fontCol.AddFontFile($fontFile)
Write-Host "$($fontCol.Families.Name)"
However, when I switch to using New-Object, to support Windows 7/PS2, like so
$fontFile = '\\px\Rollouts\Misc\Fonts\Arial Narrow\ARIALN.TTF'
$fontCol = New-Object System.Drawing.Text.PrivateFontCollection
$fontCol.AddFontFile($fontFile)
Write-Host "$($fontCol.Families.Name)"
It only works in Windows 10. In Windows 7 I don't get an error, but I also don't get a font family name.
But the Microsoft documentation suggest that the class is available all the way back to .NET Framework 1.1. And the Families property is documented as going back that far too. So, am I doing something incorrectly, or missing some evidence somewhere that this isn't workable in Ps2.0, or...?
Interestingly '$fontCol.Families' shows the Name property is there, and properly populated. So, it seems I need to access it differently for Windows 7?