Where-Object не возвращает никакого содержимого

350
Nick Dewitte

Я начинаю с Windows Server 2016 и использую версию только для CLI. Я пытаюсь определить, какие функции установлены на моем компьютере. Я пытался сделать это, просматривая материал с

Get-WindowsFeature 

Очевидно, я не люблю читать все вручную, чтобы увидеть, установлено ли оно. Поэтому я хотел бы перечислить только те вещи, которые на самом деле установлены. Я попытался сделать это с помощью следующей команды:

Get-WindowsFeature | Where-Object {$_."install state" -like "Installed"} 

Это ничего не возвращает вообще (обратите внимание, что, когда я просматриваю все, есть установленные модули). И когда я пытаюсь запустить коммандос ниже, я на самом деле получаю возвращаемый контент:

Get-WindowsFeature | Where-Object {$_."name" -like "dns"} 

Что я делаю неправильно? Это неправильное использование команды, является ли другое имя «состояние установки» чем-то другим?

1

2 ответа на вопрос

0

Отправка вывода команды через Format-Customвсегда помогает вам определить имена свойств, которые вы ищете.

В этом случае:

Get-WindowsFeature | Where-Object {$_.InstallState -like "Installed"} 

... решит вашу проблему.

Это работает. По-видимому, это было имя, которое было другим в базовом коде. Большое спасибо, также приятно, что он сохраняет оригинальное форматирование Nick Dewitte 7 лет назад 0
0
DavidPostill

Я пытаюсь определить, какие функции установлены на моем компьютере.

Используйте следующую команду PowerShell:

Эта однострочная оболочка PowerShell импортирует модуль ServerManager и показывает роли и функции Windows, которые установлены в данный момент.

Import-module servermanager ; Get-WindowsFeature | where-object {$_.Installed -eq $True} | format-list DisplayName 

Чтобы просто вернуть True или False, если установлена ​​определенная роль или функция, вы можете использовать это (в качестве примера используется роль Hyper-V):

Import-module servermanager ; (Get-WindowsFeature -name hyper-v).Installed 

Для получения дополнительной информации см .: http://technet.microsoft.com/en-us/library/cc732757.aspx

Source Show Установленные роли и функции Windows

tl; dr: работает, но имеет обратную сторону: он возвращает правильные данные, но показывает только отображаемое имя, и, следовательно, иерархия больше не видна. Ответ ниже лучше. Но все же, это работает, так что спасибо! Nick Dewitte 7 лет назад 0
@ sniker824 Попробуйте удалить `| format-list DisplayName` из команды DavidPostill 7 лет назад 0

Похожие вопросы