Фильтровать по буквальному имени столбца - PullRequest
0 голосов
/ 03 января 2019

Используя команду для моего локального IIS gci "IIS:\Sites\My Website", он получает вывод, где есть столбец с именем Type:

enter image description here

НоЯ не могу отфильтровать по этому столбцу, например

| Where-Object {$_.Type -eq 'application'}

, поскольку Type является ключевым словом (?), Может быть.

Как сказать фильтру использовать буквенное имя столбца?


Исходный вывод, сгенерированный из команды gci в модуле Webadministration:

Import-Module Webadministration

gci "IIS:\Sites\My Website" 

Обратите внимание, что фактическое имя веб-сайта IIS должно входить в«Мой сайт» , показанный выше.

Полная команда, которая не отфильтровывает строки данных directory и сохраняет только application:

gci "IIS:\Sites\My Website" | Where-Object {$_.Type -eq 'application'}

Ответы [ 2 ]

0 голосов
/ 03 января 2019

редактирование: Свойство Type можно найти с помощью $_.nodetype. Так что остальная часть этого ответа не нужна


Создайте собственное имя столбца. Таким образом, вы можете фильтровать объекты по новому:

| Select-Object YourDesiredColumns,@{Name='NewColumn';Expression={$_.Type}}

Может быть так:

gci "IIS:\Sites\My Website" | Select-Object *,@{Name='Bob';Expression={$_.NodeType}} | Where-Object {$_.Bob -eq 'application'} | ft
0 голосов
/ 03 января 2019

Имитация с данными из строки здесь и ConvertFrom-Csv, которая не создает проблемы:

$Data = @"
Type,Application
application,ArchiveServices
directory,aspnet_client
"@ | ConvertFrom-Csv

$Data | Where-Object {$_.Type -eq 'application'}
$Data | Where-Object Type -eq 'application'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...