get-wmiobject win32_service | select-object name, pathname | more
Это также powershell 2.0 и близок к комментарию выше.
Вы просто пытались использовать foreach, когда вам это не нужно.
Даже с foreach вы были близки к получению выходных данных, с которыми могли бы работать.
Запятая в вашем foreach сгенерировала бы вывод в виде списка, и вы могли бы использовать команду more вместо less.
$services = get-WmiObject -query 'select * from win32_service'
foreach($service in $services){$service.Name $service.Pathname} | more
Вот еще один способ написать то же утверждение.
get-WmiObject win32_service | foreach {$ .Name, $ .Pathname} | более
Это не то же самое, что мой первый пример, но я хотел показать вам, насколько вы были близки.