2017-02-03 11 views
2

Я извлекаю некоторые детали о провайдерах из моего приложения через GET Invoke-RestMethod. В настоящее время он возвращает всю информацию о поставщиках. Я хочу только вернуть код провайдеров, где для активного статуса установлено значение Истина.Результаты поиска фильтра Invoke-RestMethod

$acctname = 'user1' 
$password = 'secret' 

$params = @{uri = 'http://localhost:8080/tryout/settings/provider/providerDetails'; 
        Method = 'Get'; 
        Headers = @{Authorization = 'Basic ' + [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes("$($acctname):$($password)")) 
      } #end headers hash table 
    } #end $params hash table 


# This gets all the basic info ok 
$var = invoke-restmethod @params 

#show the values in the console 
echo $var 

В настоящее время он возвращает все эти детали. Все, что мне нужно, это просто код, если он активен.

id   : 90 
name   : Test 1 
active  : True 
code   : NOT_STATED 
system  : False 
objectVersion : 2 

id   : 91 
name   : Test 2 
active  : True 
code   : MAIN 
system  : False 
objectVersion : 3 

id   : 20372 
name   : Test 3 
active  : True 
code   : NOT_STATED 
system  : True 
objectVersion : 2 

id   : 30382 
name   : Test 4 
active  : True 
code   : OP 
system  : False 
objectVersion : 1 

ответ

5

Просто труба$var к Where-Object командлета и фильтровать их:

$var | Where-Object active -eq 'True' 
+0

уверен, что вам нужно '" '' вокруг true' – 4c74356b41

+0

@ 4c74356b41 уверен, что вы не ;-) –

+0

@ 4c74356b41 Просто попробуйте: '[PSCustomObject] @ {name =" True "}, [PSCustomObject] @ {name =" False "} | Where-Object name -eq True' –