2017-08-01 1 views
0

"Get-VersionInfo"コマンドで使用されているポートをテーブルに配置しようとしています。 PowerShellを使用して、このプレースホルダを計算されたプロパティに出力する方法がわかりません。私はそれを停止し、デバッグすると、マウスを "$ _。Port"に置くことができ、 "Port = 50003"と表示されるので、それはどのポートであるかわかりますが、テーブルに出力されると空白になります。 スクリプト:

Get-Content "C:\Users\textfile" | Foreach ` { 
Get-VersionInfo -Device 10.247.46.123 -Port $_ | 
Select-Object IPAddress, Category, Prompt, Hostname, MACAddress, VersionOS, @{l="Port";e={ $_.Port}} | Format-table -autosize 
} 

出力:

IPAddress Category  Prompt Hostname  MACAddress  VersionOS  Port 
    --------- --------  ------ --------  ----------  ---------  ---- 
169.254.40.2 Control System DMB-I-S DMB-I-S--548190 00.10.7F.54.81.90 1.501.2964.38161 

ありがとう!

+0

選択オブジェクトのプロパティとしてのポートの書式設定が変わっています。以前は見たことがありません。あなたは何を達成しようとしていますか?具体的にはこのコードを使っていますか? –

+0

デバイスはオーディオ/ビデオ機器であり、コマンドはメーカーがカスタムモジュールで提供します。テキストファイルから使用されたテキスト(ポート)をその特定のfor-eachコマンドに入れてテーブルに出力する方法を理解する必要があります。 –

+1

@MaximeFranchotそれは[計算されたプロパティ]です(https:// technetです。 microsoft.com/en-us/library/ff730948.aspx)。 'l'はLabelの略で、Expressionは' e'です。これは、 'foreach-object {$ _}の代わりにパイプラインから値を取って、選択オブジェクトリストにプロパティを動的に追加する短い方法です。 | add-member ...} 'を実行します。 – TessellatingHeckler

答えて

0

私はforeachオブジェクトを渡す方法を考え出しました。

$Ver = Foreach ($Port in Get-Content C:\Script\Port.txt) 
{ Get-VersionInfo -Device 10.10.10.10 -Port $Port | 
Where-Object {$_.Ping -eq 'True'} | 
Select-Object IPAddress, Category, Prompt, Hostname, Serial, MACAddress, VersionOS, @{l="Port";e={$Port}}, Build, Ping, TSID 
} 

これが他の人に役立つことを望みます。ありがとうございました

関連する問題