Почему для извлечения WMI-свойств пришлось создавать remote-сессию на каждом компе?
WmiExplorer'ом пошукал?
А если $programs.GetEnumerator() | Export-Csv -Path 'C:\BOX\programs.csv' -NoTypeInformation?