Обратите внимание на встроенную справку:
Get-Help Where
В доступном синтаксисе вы найдете
Where-Object [-Property] <string> [[-Value] <Object>] -Like [-InputObject <psobject>] [<CommonParameters>]
В третьем примере: «Microsoft Office S *» -или «Microsoft Office P *» оценивается как true, он не работает, потому что он такой же, как:
Where Name -like $True
Что всегда ложно (кроме случаев, когда значение имени равно $ True)
Для вашего четвертого примера get-help показывает, что у объекта where нет параметра 'или'.Так что это может не сработать.
При чтении справки помните, что параметр inputObject содержит конвейерный psObject.
Решения с предложениями хороши, но я предложу эту другую форму, которая соответствуетhelp:
Where-Object -Property Name -Value '^Microsoft Office S|^Microsoft Office P' -match
Если вам нужен компактный однострочник, он эквивалентен:
? Name -match '^Microsoft Office (S|P)'
(? это псевдоним where-object)