2016-11-21 8 views
1

これは私がInvoke-RestMethodで問題が発生したさらに別の時期です。あなたの助けを借りて、私は進歩することができます。今回の問題は、オブジェクトのポート値を取得するのに苦労していることです。ipaddress=10.128.64.44invoke-restmethodによって返されたオブジェクトを操作する方法は?

このコードの実行:私はポートを取得するには、このような何かを実行していることについて考えてきました

ActiveJobs   : 
ForbiddenAgentsList : ForbiddenAgentsList 
IPAddress   : 10.128.64.34 
LastMsgTime   : 2016-11-21T00:16:04.2813148+01:00 
Name    : Worker02 
NumOfSlots   : NumOfSlots 
Port    : 52268 
SelectedAgentsList : SelectedAgentsList 
Status    : Active 
Version    : 2.29.3740.0 
Iteration   : 2016/2 SP3 (87) 

ActiveJobs   : 
ForbiddenAgentsList : ForbiddenAgentsList 
IPAddress   : 10.128.64.44 
LastMsgTime   : 2016-11-21T00:16:04.2813148+01:00 
Name    : Worker05 
NumOfSlots   : NumOfSlots 
Port    : 53246 
SelectedAgentsList : SelectedAgentsList 
Status    : Active 
Version    : 2.29.3740.0 
Iteration   : 2016/2 SP3 (87) 

if (($worker_port.WorkersList.Worker.IPaddress) -eq '10.128.64.44'){Write-Output $worker_port.Worker.Port } 
     else {write-host "ouch!""} 

の端末で

$user = "admin" 
$pass = 'Password1' 
$ipdir = '10.128.64.44' 
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $user, $pass))) 
$headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]" 
$headers.Add('Authorization',('Basic {0}' -f $base64AuthInfo)) 


$uri = 'https://myhostname/MAM/wfservice/workers/' 
$rep = Invoke-restmethod -method get -Header $headers -Uri $uri 

Foreach($worker_port in $rep){ 

     write-output $worker_port.WorkersList.Worker 

} 

戻り、これを...これは方法ではないように思える。両方のポートを返します。

53246 
52268 

何が間違っているのですか?どのようにしてそれを解析して、のポート番号を10.128.64.44だけにすることができます。いかなるアドバイスも高く評価されます。

+0

これを試してみてください: '$のrep.WorkersList.Worker |どこIPAddress -eq '10 .128.64.44 '| -expand Port'を選択してください。 –

+0

信じられないほどです。これは正解@MartinBrandlです。さて、多くの、多くの、多くのありがとう!それを回答として投稿しますか?あなたはそれについていくつかのポイントを得ると思いますか? – Okrx

+0

確かに、私は答えとして投稿します。ありがとう。 –

答えて

1

希望IPAddressに基づいてオブジェクトをフィルタリングし、ちょうどPortを選択するようにWhere-Objectコマンドレットを使用します。

$rep.WorkersList.Worker | Where IPAddress -eq '10.128.64.44' | Select -expand Port 
+1

正しい答えを提供してくれた@MartinBrandlにもう一度感謝します。 – Okrx

関連する問題