Проще один раз всё загнать в один вызов.
Так и работать будет в разы быстрее и запустить можно одновременно на несколько компов, только в вывод надо имя компа включить
invoke-command -comp $comp {
# а здесь все красоты
# причём циклом
$source @(
@{ key name= '''; valuename=''},
@{ key name= '''; valuename=''}
)
foreach ($src in $source) {
get-itemproperty -path $src.keyname | select -expandproperty $src.valuename
}
}
test опустил...
Проблема у вас в select-object
стандартный вызов, если он со свойствами, пытается подстроить последующий вывод под предыдущие возвращённые свойства. если вы вначале просите свойство "ProductID", то и в последующем вызове PS ждёт свойство ProductID, которого нет, вы подсовываете ему "SerialNumber"
Для этого в моём варианте используется параметр ExpandProperty, который превращает объект в строку