Powershell: 䞍芁なデヌタを衚瀺するTest-Connectionコマンドレット。

䜜成日 2018幎04月28日  Â·  64コメント  Â·  ゜ヌス: PowerShell/PowerShell

再珟する手順

The Test-Connection cmdlet is displaying unwanted data as part of the result.

Code:

Test-Connection www.microsoft.com -Count 1 -Quiet

予想される行動

It should display just the word: True

実際の動䜜

Pinging www.microsoft.com [23.204.153.19] with 32 bytes of data:
Reply from 23.204.153.19: bytes=32 time=17ms TTL=58
Ping complete.
True

環境デヌタ

> $PSVersionTable

Name                           Value
----                           -----
PSVersion                      6.1.0-preview.2
PSEdition                      Core
GitCommitId                    v6.1.0-preview.2
OS                             Microsoft Windows 10.0.16299
Platform                       Win32NT
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1
WSManStackVersion              3.0

Area-Cmdlets-Management Committee-Reviewed Issue-Bug Resolution-Fixed

最も参考になるコメント

@GeeLaw 

良い発芋ですが、この堎合、バグを回避するために必芁なのは-InformationAction Ignoreです。

$InformationActionPreferenceはデフォルトでSilentlyContinueであり、倉曎しないでください。

バグは、 WriteInformation()がリンクを呌び出しお、誀っおPSHOSTタグを䜿甚するこずです。これにより、 $InformationActionPreference倀ず-InformationAction SilentlyContinueが効果的に_バむパス_されたすただし、前述のずおり 、 -InformationAction Ignore _is_出力の抑制に効果的です。

WriteInformation()呌び出しが行うこずは、事実䞊、その出力を蚭蚈により_無条件に_衚瀺するためにWrite-Hostが行うこずです。

@iSazonov プログレスバヌを備えた他のコマンドレットの動䜜は実際には調べおいたせんが、 -Quietを䜿甚するず、むンタラクティブに呌び出した堎合でも、プログレスバヌを期埅できたせん。

党おのコメント64件

これは5.1では正しく機胜したすが、6では機胜しないため、問題をバグずしお再分類したした。

その理由は、珟圚のコヌドがWriteInformation 盲目的に呌び出すためです。

TestConnectionCommand.csの751行目、775行目ず783行目

情報がホストに衚瀺されないようにするための䞀時的な回避策は、 InformationAction共通パラメヌタヌを䜿甚するこずです。 䟋

Test-Connection www.microsoft.com -Count 1 -Quiet -InformationAction Continue

スクリプトの芳点からは、これは問題にはなりたせん。テキスト情報がパむプラむンにこずはなく、テキスト出力は、パむプラむンに送信されるものずしお定矩される結果デヌタの䞀郚ではQuietスむッチは、より単玔な結果を返すように定矩されおいたすレコヌドオブゞェクトの代わりにintたたはbool 。 Quiet InformationRecordを期埅しないかもしれないこずを認めなければなりたせん。 ただし、理由を知っおいるず、 InformationActionずQuiet分離しおおく方がよいず思いたす。

PowerShell 5.1では、 Test-ConnectionはWriteInformationをたったく呌び出さないようです。 ちなみに、PowerShell5.1およびPowerShellCore 6.0.2の$InformationPreferenceのデフォルト倀はSilentlyContinueです。 問題の䜜成者は、問題を再珟したずきに異なる有効倀を持っおいる可胜性がありたす。 おそらくPS 6.1Coreが$InformationPreferenceのデフォルト倀を倉曎したしたかわかりたせん。

PS 6.1 Coreのデフォルトの$InformationPreferenceがSilentlyContinue堎合、ナヌザヌが明瀺的に芁求しない限り、テキスト情報は衚瀺されたせん。

もっずフィヌドバックが必芁です。
問題は、スクリプトモヌドずむンタラクティブモヌドでは、異なる方法で機胜する必芁があるこずです。 むンタラクティブモヌドでは、ナヌザヌはping.exeコマンドで発生する進行状況バヌを確認するこずを奜むでしょう。 これは他のパラメヌタにも圓おはたりたす。

@ mklement0時間があれば、あなたの助けが圹に立ちたす。

@GeeLaw 

良い発芋ですが、この堎合、バグを回避するために必芁なのは-InformationAction Ignoreです。

$InformationActionPreferenceはデフォルトでSilentlyContinueであり、倉曎しないでください。

バグは、 WriteInformation()がリンクを呌び出しお、誀っおPSHOSTタグを䜿甚するこずです。これにより、 $InformationActionPreference倀ず-InformationAction SilentlyContinueが効果的に_バむパス_されたすただし、前述のずおり 、 -InformationAction Ignore _is_出力の抑制に効果的です。

WriteInformation()呌び出しが行うこずは、事実䞊、その出力を蚭蚈により_無条件に_衚瀺するためにWrite-Hostが行うこずです。

@iSazonov プログレスバヌを備えた他のコマンドレットの動䜜は実際には調べおいたせんが、 -Quietを䜿甚するず、むンタラクティブに呌び出した堎合でも、プログレスバヌを期埅できたせん。

@ mklement0 PSHostTagの返信ず修正に感謝したす。 InformationPreference  InformationAction はIgnore受け入れないようです。 これは5.1ず6.0.2に圓おはたりたす。 おそらく6.1で倉曎されたした。 IS InformationActionPreferenceのための新しい゚むリアスInformationPreference 

たた、私の最初のコメントは間違っおいたした。それは、 InformationActionをContinueです。 正しい回避策は、ストリヌム6情報ストリヌムを$nullにリダむレクトしお砎棄するこずです。぀たり、

Test-Connection www.microsoft.com -Count 1 -Quiet 6> $null

次の方法で正しいこずを確認しおください。

Write-Host 'Hello, world' 6> $null

ホストには䜕も曞き蟌たないはずです。

@GeeLaw 

InformationPreferenceInformationActionは無芖を受け入れないように思えたすか

はい、_preferencevariable_はIgnore受け入れたせんが、_commonparameter_は受け入れたす。

぀たり、蚭蚈䞊、特定の呌び出しに察しお情報ストリヌム番号6 を抑制できたすが、スコヌプ党䜓に察しおは_カテゎリ的に_抑制できたせん。

したがっお、次の2぀のステヌトメントは同等です。

Test-Connection www.microsoft.com -Count 1 -Quiet 6> $null
Test-Connection www.microsoft.com -Count 1 -Quiet -InformationAction Ignore

蚀い換えるず、 6> $nullず-InformationAction Ignore䞡方が効果的な回避策です。

あるInformationActionPreferenceのための新しい゚むリアスInformationPreference 

いいえ、名前は垞に$InformationPreference 、 $VerbosePreference 、 $WarningPreference 、および$DebugPreferenceのパタヌンに埓いたす。

私が知る限り、蚭定倉数名がAction郚分を保持しおいるのは、 -ErrorAction / $ErrorActionPreferenceペアだけです。


アクション_蚭定倉数_の倀ずしおのIgnoreの犁止に関する䜙談ずしお

  • 高床な関数内で共通パラメヌタヌ倀を䌝播するために自動的に定矩されたロヌカル蚭定倉数が䜿甚されるため、この制限には基本的な蚭蚈䞊の問題がありたす-1759を参照

  • 制限は_割り圓お時_には適甚されたせん。぀たり、次に蚭定がおそらく暗黙的に適甚されるたで問題は発生したせん。4348を参照しおください。

    • より䞀般的には、グロヌバルスコヌプ以倖のスコヌプでは、怜蚌はたったく実行されたせん。 $ErrorActionPreference = 'bogus'ず& { $ErrorActionPreference = 'bogus' }比范しおください-参照しおください

      3483。

@ mklement0あなたがInformationActionPreferenceず蚀ったので、私ぱむリアスに぀いお尋ねおいたした。

私の知る限り、 -XxxAction および-Verboseず-Debug は、呌び出されたコマンドレット内に察応する蚭定倉数を蚭定するだけです。 about_ヘルプトピックに蚘茉されおいるように、具䜓的には次のずおりです。

The value of the -InformationAction parameter, if used, overrides the current value of the $InformationPreference variable.

Within the command or script in which it is used, the InformationAction common parameter overrides the value of the $InformationPreference preference variable, which by default is set to SilentlyContinue.

次のデモンストレヌションで怜蚌できるように、これをロヌカルプリファレンス倉数の蚭定ずしお解釈したす。

function test-func { [cmdletbinding()]param() process { $InformationPreference } }
test-func # gives SilentlyContinue
test-func -InformationAction Continue # gives Continue
test-func -InformationAction Ignore # gives Ignore

5.1および6.0.2では、次のスニペットで瀺されおいるように、 InformationActionはIgnore受け入れたせん。

function test-func { [cmdletbinding()]param() process { write-information 'writing' } }
test-func -InformationAction Ignore

を生成したす

Write-Information : The value Ignore is not supported for an ActionPreference variable. The provided value should be used only as a value for a preference
parameter, and has been replaced by the default value. For more information, see the Help topic, "about_Preference_Variables."
At line:1 char:57
+ ...  { [cmdletbinding()]param() process { Write-Information 'writing' } }
+                                           ~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Write-Information], NotSupportedException
    + FullyQualifiedErrorId : System.NotSupportedException,Microsoft.PowerShell.Commands.WriteInformationCommand

6.1で倉わったのかな。


もう1぀の興味深い点がありたす。 $VerbosePreferenceず$DebugPreferenceは、察応する共通パラメヌタヌで蚭定できる範囲よりも広い範囲を実際に受け入れたす。 たずえば、明瀺的な割り圓おによっお$VerbosePreferenceをInquireに蚭定するこずは可胜ですが、 -Verboseスむッチを䜿甚するこずはできたせん。これは、結局のずころ、スむッチであり、 $Trueをマップするためです。 $FalseからContinue / SilentlyContinue 。

私の知る限り、これら2぀のスむッチを陀いお、プリファレンス関連の共通パラメヌタヌは、ロヌカルスコヌプ内の察応するプリファレンス倉数に正確にマップされたす。

遊んでみるず、次のコヌドが機胜するこずがわかりたす。

Write-Information 'writing' -InformationAction Ignore

しかし、チェック$InformationAction -eq 'Ignore'でWrite-Informationを保護し、そもそもそれを呌び出さないようにする必芁があるため、開発者にずっおは面倒です。

Function Test-Inf1
{
    [CmdletBinding()] Param ( )
    Process { Write-Information 'Hello, world!' }
}
Function Test-Inf2
{
    [CmdletBinding()] Param ( )
    Process { If ($InformationPreference -ne 'Ignore') { Write-Information 'Hello, world!' } }
}
Test-Inf1 -InformationAction Ignore # writes an error
Test-Inf2 -InformationAction Ignore # okay

同じこずがCでコマンドレットを曞く䜜者にも圓おはたるようです。

@GeeLaw

あなたがInformationActionPreferenceずしおそれを蚀及したので、私ぱむリアスに぀いお尋ねおいたした。

おっず 申し蚳ありたせんが、私自身のタむプミスに気づいおいたせんでした。

呌び出されたコマンドレット内に察応する蚭定倉数を蚭定するだけです。

はい、そしおあなたが瀺す残りの郚分は前述の1759の䞻題です。

぀たり、蚭蚈䞊の欠陥は、蚭定倉数倀ずしおIgnoreを蚱可しないこずは、共通パラメヌタヌ倀を䌝播するために自動的に蚭定されたロヌカル蚭定倉数むンスタンスを䜿甚するこずず衝突するこずです。

すなわち

5.1および6.0.2では、次のスニペットで瀺されおいるように、InformationActionは無芖を受け入れたせん。

問題の解決に関しお重芁なので、 -InformationActionはIgnore受け入れたすが、コンテキストで蚭定が適甚された堎合に問題を匕き起こすのは蚭蚈䞊の欠陥だけであるず指摘しおおきたす。 _高床な関数_の、あなたの堎合はWrite-Informationが関数の_内郚_を呌び出したす。
この問題は、PowerShell Corev6.1.0-preview.2以降も匕き続き発生したす。

察照的に、_コンパむルされたコマンドレット_にはこの問題はありたせん。そのため、たずえば、発芋しおからWrite-Host foo -InformationAction Ignoreが意図したずおりに機胜したす。

芁玄するず、ここでは2぀の無関係な問題に぀いお説明しおきたした。

  • アクションプリファレンス倉数倀ずしおのIgnoreに関する蚭蚈䞊の欠陥。これは、1759ですでに远跡されおいたす。

  • この問題の元のトピック、䞍正な動䜜Test-Connection誀っお䜿甚するコマンドレット、 PSHOSTぞの呌び出しでタグを.WriteInformation 。

埌者の解決策は、次の䟋が瀺すように、単にタグを_省略_するこずです。

# With $InformationAction at its default, 'SilentlyContinue', this invocation is silent.
# If you set it to 'Continue', 'foo' prints.
& { [CmdletBinding()]param() $PSCmdlet.WriteInformation('foo', [string[]] @()) } 

-Quietが尊重されおいないずいう同じ問題が発生しおいるので、これに遭遇したした。 私はコヌドを芋お、それが䜕をしおいるのかを理解するのが少し難しく、非垞に耇雑ですが、出力を抑制するために実際にこれを探しおいる堎所は芋圓たりたせんでしたし、どこから切り替わっおいるのかもわかりたせん文字列をブヌル倀に出力したす。これは、-Quietパラメヌタヌが枡されたずきに出力されるはずです。

昚幎、コヌドにTest-Connectionを远加するためのPR2537を提出したしたが、「@ PowerShell / powershell-committeeは、将来互換性の問題が発生するため、このPRを受け入れない」ため、その時点で拒吊されたした。そのため、このコマンドレットが含たれおいるこずに驚きたしたが、元のPRのコヌドではなく、期埅されるすべおの機胜を提䟛しないたったく新しいコヌドが含たれおいたす。

私が遭遇する最倧の問題は、「ifTest-Connection 8.8.8.8 -Quiet」のようなチェックを実行しおロゞックに分岐するスクリプトですが、-Quietパラメヌタヌが尊重されない堎合、分岐は垞にTrueを返したす。 FalseたたはNullがないためです。 そのため、このコマンドはただ完党に䜿甚できなくなりたす。たた、PowerShellの新しいリリヌスに含たれおいるため、アップグレヌドが非垞に簡単になりたす。 問題が最初に報告されおから数か月が経過しおいるように芋えるので、これを修正しおください。 それ、たたは元のPRを元に戻すこずは、機胜が返される限り重芁ではありたせん。

昚幎、コヌドにTest-Connectionを远加するためのPRを提出したしたが、レガシヌコマンドレットを远加したくないため、その時点で拒吊されたした。そのため、このコマンドレットが含たれおいるのに、コヌドには含たれおいないこずに驚きたした。完党で「レガシヌ」バヌゞョンずたったく同じように機胜した元のPRの

5.1ず6.xにTest-Connectionがある堎合、同じ出力になるず思いたす。 実装が異なるこずは知っおいたすが、ナヌザヌはそれを気にする必芁はありたせん。 6.1の珟圚のTest-Connectionの動䜜は異なり、5.1の堎合ずは異なる出力が埗られたす。 それに加えお、-Quietパラメヌタは実際には圹に立ちたせん。

珟圚PSVersion = 6.2.0の時点で、この問題はただ残っおいるようです。QUIETが存圚する堎合でも、コマンドレットは「ping」情報を衚瀺し続けたす「-InformationActionIgnore」を远加するずうたくいきたすが、モゞュヌル/スクリプトがTest-Connectionコマンドレットは、クヌルではなく曎新する必芁がありたす

これを7.0で修正できれば、本圓に玠晎らしいず思いたす。 コヌドを提䟛できおうれしいですが、これを改善するための以前の詊みに぀いおはほずんど合意がなかったため、埓うべき実装仕様が必芁です。

cc @ SteveL-MSFT @iSazonov

私は時々これに戻りたす。 今では、 -Intercativeスむッチを䜿甚した明瀺的な分離むンタラクティブシナリオず非むンタラクティブシナリオを䜿甚するこずで、これを解決できるず信じおいたす。 このパラメヌタヌを䜿甚するず、ナヌザヌフレンドリヌな豊富なコン゜ヌル出力を実装できたす。 ナヌザヌがこのパラメヌタヌを「-i」ずしお入力するのはそれほど䞍䟿ではないようです。 スむッチがないず、スクリプトシナリオに適した、口頭でのコン゜ヌル出力なしで匷い型の出力を実行できたす。

他のコマンドレットがそのようなパラメヌタヌを䜿甚しおいないこずを考えるず、そのような二重性を持぀こずは意味がないず思いたす。 コマンドレットはそのタスクを実行し、䞀貫しお動䜜する必芁がありたす。 むンタラクティブな振る舞いは、それ以倖の振る舞いから分離されるべきではありたせん。

たずえば、Get-ChildItemを芋おください。 むンタラクティブに、デフォルトのフォヌマッタ衚瀺のおかげで非垞に䟿利です。 自動化の目的にも圹立぀ようにするために倉曎は必芁ありたせん。 むンタラクティブに機胜する同じコマンドは、スクリプトでも機胜したす。

それは䞍必芁な耇雑さだず思いたす。

デフォルトでむンタラクティブ出力を実行し、 Quietパラメヌタヌを拡匵しお、スクリプトでの出力を抑制するこずができたす。

繰り返したすが...むンタラクティブずスクリプトで異なる出力を行う必芁はないず思いたす。

コマンドレットが他のコマンドレットず同じように動䜜し、完党に䞀意でなく、すべおのデヌタをキャプチャたたは解析が困難なテキストストリヌムBashではなく_PowerShell_で出力するのではなく、䜿甚できないデヌタを出力する堎合、動䜜を倉曎する必芁はたったくありたせん。 。

-Quietは、オブゞェクトを出力する代わりに、玔粋なTrue / False応答を提䟛するためにWindowsPowerShellの元のコマンドレットで䜿甚されるスむッチです。 私の意芋では、その慣習を砎るこずは悪い考えです。

このコマンドレットは、既存のコマンドレットず同じように動䜜する必芁がありたす。 それだけで珟圚の動䜜を䜿甚する理由はありたせん。 珟圚の反埩では、他のPowerShellコマンドレットの動䜜方法ずは倧きく異なり、Unixナヌティリティの動䜜を期埅するずおりに動䜜したす。

繰り返したすが...むンタラクティブずスクリプトで異なる出力を行う必芁はないず思いたす。

サポヌトされおいるすべおのシナリオで目的の出力をデモできたすか コマンドレットが出力するメタ情報は非垞に重芁であるこずに泚意しおください。

キャプチャたたは解析が難しいテキストストリヌムにすべおのデヌタを出力する

コマンドレットは、匷い型のオブゞェクト出力を行いたす。 問題は、「メタ」情報があるため、これらのオブゞェクトを䜜成しお同時に衚瀺するこずができないこずです。

-Quietは、オブゞェクトを出力する代わりに、玔粋なTrue / False応答を提䟛するためにWindowsPowerShellの元のコマンドレットで䜿甚されるスむッチです。 私の意芋では、その慣習を砎るこずは悪い考えです。

そのWindowsPowerShellコマンドレットは、接続の抂念が存圚しないpingのみをサポヌトしたす。 これは圓初、物議を醞した蚭蚈でした。 それらの正しい名前はTest-Ping ot Test-ICMPたす。
珟圚のコマンドレットは、IP「接続」をサポヌトしおいたす。 私は「テスト接続性」のようなものが奜きですが。

珟圚の反埩では、他のPowerShellコマンドレットの動䜜方法ずは倧きく異なり、Unixナヌティリティの動䜜を期埅するずおりに動䜜したす。

いいえ、コマンドレットは匷い型のオブゞェクト出力を行いたす。 そしお、コン゜ヌル出力はナヌティリティのように芋えるように䜜られたした。 しかし同時に、実際にはそれがより豊かでより有甚であるこずがわかるかもしれたせん。
問題は、この出力がフォヌマットサブシステムの機胜を䜿甚しお取埗できず、コン゜ヌルに盎接出力する必芁があるこずです。 これは、出力ストリヌム内の出力オブゞェクトず混同されないこずに泚意しおください

デヌタオブゞェクトをより堅牢な方法で構造化するず、フォヌマットシステムを䜿甚しお出力を取埗できたす。 すでに詊䜜品付きのPRを提出したした。 基になるオブゞェクトデヌタを適切に反映しない圢匏でデヌタを衚瀺するコマンドレットたずえば、オブゞェクトクラスを適切に構造化する代わりにサブプロパティからのデヌタを衚瀺するこずによっおは、䞀般に誀解を招く可胜性があり、可胜な限り避ける必芁がありたす。

これをさらに詳しく調べお、望たしい出力であるず私が感じるもののより完党な䟋をたずめたす。 Windows PowerShellでのテスト接続は物議を醞す蚭​​蚈だったかもしれたせんが、非垞に䞍完党なものであったずしおも、それは正しい方向ぞの䞀歩だったず思いたす。

@iSazonov最初に読んだ埌、私はあなたに同意したせんでしたが、テストした埌、私はあなたの芖点を理解しおいたす

$a=Test-Connection www.microsoft.com 
$b=Test-Connection www.microsoft.com -Quiet

$ aず$ bの倀は私が期埅するものですが、䜙分な出力は必芁ありたせん。

Select-StringにはQuietパラメヌタもあり、「むンタラクティブ」な動䜜ずは䜕の関係もありたせん。

このコマンドが動䜜を倉曎するために远加のパラメヌタヌを必芁ずするこずに同意したす静かかどうか。

私はデフォルトではなくパラメヌタ「むンタラクティブ」を奜みたすが、おそらくスむッチパラメヌタ「NoInteractive」はむンタラクティブな䜿甚を優先するためのより良い調敎です。

了解したした。これが、もう少し䟿利な実装だず私が考えるものです。

䞀般的なポむント

  1. 珟圚のすべおのホスト/情報出力は-Verboseストリヌムに远いやられたす。 珟圚、これはたったく䜿甚されおおらず、これは完璧なナヌスケヌスです。
  2. -ShowProgressスむッチで指定しない限り、プログレスバヌはありたせん。
  3. -Pingスむッチを削陀したすこれがデフォルトの動䜜です。

䞀次出力

Test-Connection www.google.com

  • 出力オブゞェクトのRepliesプロパティからの情報は、メむン出力オブゞェクトに含たれおいる必芁があり、プラむマリ出力モヌドは、それぞれが単䞀のpingè©Šè¡Œ/応答オブゞェクトを衚す_multiple_オブゞェクトである必芁がありたす。
  • バッファ_data_は指定できないため、通垞は関係ありたせん。たた、 BufferSizeプロパティのみを公開する必芁がありたす。 Replies.Bufferプロパティはprivateたたにする必芁がありたす。
  • Replies.Optionsプロパティは、デフォルトのフォヌマットから非衚瀺にする必芁がありたす。
  • 結果は、宛先アドレスごずにグルヌプ化されたテヌブルずしお出力されたす耇数の宛先が指定されおいる堎合。

ビゞュアルモックアップを出力

䜿甚したコマンド

$Result = Test-Connection www.google.com
$Data = foreach ($Reply in $Result.Replies) {
    [PSCustomObject]@{
        Source = $Result.Source
        Destination = $Result.Destination
        Address = $Reply.Address
        RoundtripTime = $Reply.RoundtripTime
        BufferSize = $Reply.Buffer.Length
        Options = $Reply.Options
    }
}
$Data | Format-Table -GroupBy Destination -Property Source, Address, RoundtripTime, BufferSize

結果の出力

   Destination: www.google.com
Source  Address       RoundtripTime BufferSize
------  -------       ------------- ----------
WS-JOEL 172.217.2.132            36         32
WS-JOEL 172.217.2.132            21         32
WS-JOEL 172.217.2.132            25         32
WS-JOEL 172.217.2.132            25         32

Test-Connection www.google.com -TraceRoute

  • 各ホップは個別のオブゞェクトずしお出力する必芁があり、各ホップには、フォヌマットから非衚瀺にしおアクセスできるプロパティずしおPingReplyオブゞェクトが含たれおいたす。
  • メむンのTraceRouteResultオブゞェクトには、4぀のPingRepliesからサマリヌデヌタを蚈算するETSたたはクラスプロパティが含たれおいる必芁がありたす。
  • 泚珟圚䜿甚しおいるこのオブゞェクトタむプにはPingReplyオブゞェクトはステヌタスずしおTtlExpiredを報告したす。 .NET Core 3の修正の進捗状況を調査するか、TraceRouteバッキングのカスタム゜リュヌションを蚭蚈しお問題を解決するこずをお勧めしたす。
  • DestinationHostでグルヌプ化されたテヌブルずしお出力したすこのプロパティ名が、暙準のpingに䜿甚される他のオブゞェクトタむプのプロパティ名ず異なるのはなぜですか

ビゞュアルモックアップを出力

䜿甚したコマンド

$Result = Test-Connection www.google.com -TraceRoute
$Data = foreach ($Reply in $a.Replies) {
    [PSCustomObject]@{
        Hop = $Reply.Hop
        Source = $a.Source
        Destination = $a.DestinationHost
        DestinationAddress = $a.DestinationAddress
        Replies = $Reply.PingReplies
        RoundtripTimes = $Reply.PingReplies.RoundtripTime
        HopAddress = $Reply.PingReplies[0].Address
        BufferSize = $Reply.PingReplies.ForEach{$_.Buffer.Length}
        Options = $Reply.PingReplies[0].Options
    }
}

$Data | Format-Table -GroupBy Destination -Property Hop, RoundtripTimes, DestinationAddress, HopAddress, BufferSize

結果の出力

   Destination: www.google.com
Hop RoundtripTimes DestinationAddress HopAddress     BufferSize
--- -------------- ------------------ ----------     ----------
  1 {0, 0, 0}      172.217.2.132      192.168.22.254
  2 {0, 0, 0}      172.217.2.132      75.144.219.238
  3 {0, 0, 0}      172.217.2.132      96.120.37.17
  4 {0, 0, 0}      172.217.2.132      96.110.136.65
  5 {0, 0, 0}      172.217.2.132      69.139.180.170
  6 {0, 0, 0}      172.217.2.132      68.85.127.121
  7 {0, 0, 0}      172.217.2.132      68.86.165.161
  8 {0, 0, 0}      172.217.2.132      68.86.90.205
  9 {0, 0, 0}      172.217.2.132      68.86.82.154
 10 {0, 0, 0}      172.217.2.132      66.208.233.242
 11 {0, 0, 0}      172.217.2.132      0.0.0.0
 12 {0, 0, 0}      172.217.2.132      216.239.59.124
 13 {0, 0, 0}      172.217.2.132      216.239.59.61
 14 {32, 28, 20}   172.217.2.132      172.217.2.132

私は、ナヌザヌにデヌタを提瀺する堎合、画面に衚瀺されおいるものず同様の衚面構造で、プログラム的な方法でデヌタに簡単にアクセスできる必芁があるず確信しおいたす。 プロパティの名前を倉曎したり、出力オブゞェクトのプロパティの1〜2レベル深くデヌタを埋めたりするず、混乱、バグレポヌト、フラストレヌション、および党䜓的なナヌザビリティの倧幅な䜎䞋を招くだけです。

ああ、 @ vexx32あなたはネットワヌクを蚺断したこずがないようです。 あなたの提案は最初のステップで私によっお実装され、その埌、むンタラクティブセッションでの䜿甚に適しおいないずしお华䞋されたした。 たずえば、コマンドTest-Connection www.google.com -TraceRoute実行した埌、非垞に長い間空癜の画面を芋るこずができたす。 そのため、すべおの応答の出力文字列たたはプログレスバヌを衚瀺するように実装が倉曎されたした。

珟圚のすべおのホスト/情報出力は、-Verboseストリヌムに远いやられたす。 珟圚、それはたったく䜿甚されおおらず、これはその完璧なナヌスケヌスです。

䞊蚘の私の提案は、むンタラクティブシナリオずスクリプトシナリオを分割するためのInteractiveスむッチを導入するこずVerboseスむッチでも同じこずをするこずをお勧めしたすが、これはさらに䞍自然な方法です。

-ShowProgressスむッチで指定しない限り、プログレスバヌはありたせん。

文字列出力ずプログレスバヌは、2぀の遞択肢ずしお珟圚実装されおいたす。 必芁なのは1぀だけです。 プログレスバヌは、WindowsPowerShellコマンドレットで䜿甚されたす。 私の奜みは、むンタラクティブセッションでの文字列出力です。 それははるかに䟿利です。
たた、スむッチでプログレスバヌを抑制するこずはありたせん。 スクリプトシナリオ甚の$ ProgressPreferenceがありたす。 䞀郚のコマンドレットには、タむマヌによる長時間の操䜜に察しおのみ進行状況バヌが衚瀺されたす。

-Pingスむッチを削陀したすこれがデフォルトの動䜜です。

ベストプラクティスは、スクリプトで明瀺的なパラメヌタヌを䜿甚するこずです。 コヌドが読みやすくなりたす。 pingのみが実装されおいるWindowsPowerShellコマンドレットでは必芁ありたせんでした。 新しいコマンドレットはより倚くの機胜を実装しおおり、すべおの機胜に新しい明瀺的なパラメヌタヌが必芁です。

あなたの提案は最初のステップで私によっお実装され、その埌、むンタラクティブセッションでの䜿甚に適しおいないずしお华䞋されたした。 たずえば、Test-Connection www.google.com -TraceRouteコマンドを実行した埌、非垞に長い間空癜の画面を芋るこずができたす。 そのため、すべおの応答の出力文字列たたはプログレスバヌを衚瀺するように実装が倉曎されたした。

分割オブゞェクト圢匏では、各オブゞェクトが出力に送信されるずきに進行状況を非垞に簡単に確認できるため、進行状況の衚瀺は必芁ありたせん。 ここで必芁な唯䞀の理由は、他のすべおのPowerShellコマンドレットのようにデヌタが取埗されるため、パむプラむンにデヌタを出力しないためです。 PingReplyごずに出力するか、 -TraceRouteトレヌスホップを実行するず、出力衚瀺に進行状況衚瀺が組み蟌たれたす。

䞊蚘の私の提案は、むンタラクティブスむッチを導入しおむンタラクティブシナリオずスクリプトシナリオを分割するこずでした。 さらに䞍自然な方法であるVerboseスむッチでも同じこずを行うこずをお勧めしたす。

-Verboseは䞀般的なパラメヌタヌであるため、完党に新しいスむッチよりもはるかに自然なコマンドレットの遞択です。 ここで車茪の再発明をする必芁はありたせん。

ベストプラクティスは、スクリプトで明瀺的なパラメヌタヌを䜿甚するこずです。 コヌドが読みやすくなりたす。 pingのみが実装されおいるWindowsPowerShellコマンドレットでは必芁ありたせんでした。 新しいコマンドレットはより倚くの機胜を実装しおおり、すべおの機胜に新しい明瀺的なパラメヌタヌが必芁です。

私はここにもそこにもいたせんが、通垞、コマンドレットのデフォルトの動䜜にはスむッチがありたせん。 たずえば、 -Quiet逆の-Loudスむッチはありたせん。

分割オブゞェクト圢匏では、各オブゞェクトが出力に送信されるずきに進行状況を非垞に簡単に確認できるため、進行状況の衚瀺は必芁ありたせん。

䞊蚘の提案では、「ping」オブゞェクトを「meta」オブゞェクトに収集し、「ping」オブゞェクトをリアルタむムで出力するこずはできたせん。パむプラむンでは「meta」オブゞェクトのみを出力できたす。ナヌザヌには垞に空癜の衚瀺が衚瀺されたす。

-Verboseは䞀般的なパラメヌタヌであるため、完党に新しいスむッチよりもはるかに自然なコマンドレットの遞択です。

詳现なストリヌムに重芁な情報を出力しおいたコマンドレットを認識しおいたせん。 コマンドレットを実行するプロセスを理解できるように、垞にこのストリヌムを䜿甚しお远加の蚺断情報を衚瀺したす。

通垞、コマンドレットのデフォルトの動䜜にはスむッチがありたせん。

単䞀のパラメヌタセットに適しおいたす。 これで倚くのパラメヌタセットができたので、それぞれを明瀺的に指定する必芁がありたす。

䞊蚘の提案では、「ping」オブゞェクトを「meta」オブゞェクトに収集し、「ping」オブゞェクトをリアルタむムで出力するこずはできたせん。パむプラむンでは「meta」オブゞェクトのみを出力できたす。ナヌザヌには垞に空癜の衚瀺が衚瀺されたす。

メタオブゞェクトは䞍芁です。 䞊蚘の提案で述べたように、オブゞェクトは_each_PingReplyたたはトレヌスホップ甚に䜜成および出力されたす。 モックアップは最終的なコヌドではなく、アむデアを説明するための簡単に耇補できる圢匏です。 テヌブルの各゚ントリは1぀ず぀出力されたす。 提案党䜓をお読みください。

詳现なストリヌムに重芁な情報を出力しおいたコマンドレットを認識しおいたせん。 コマンドレットを実行するプロセスを理解できるように、垞にこのストリヌムを䜿甚しお远加の蚺断情報を衚瀺したす。

たた、「重芁な」情報を情報/ホストに定期的に出力し、別のオブゞェクトの数レベル深く埋たっおいる堎合を陀いお出力しない_any_コマンドレットも認識しおいたせん。

単䞀のパラメヌタセットに適しおいたす。 これで倚くのパラメヌタセットができたので、それぞれを明瀺的に指定する必芁がありたす。

そうするこずにはあたり有甚性はないず思いたすが、それは私が思うに倧きな害をもたらすこずはありたせん。 時間の無駄だず思いたす。 倚くの人がデフォルトの動䜜のスむッチを指定するのに倚くの甚途があるかどうかはわかりたせん。

メタオブゞェクトは䞍芁です。

_それは非垞に必芁です。_
このアプロヌチは、コマンドレットを圹に立たないものにしたす。 問題のあるネットワヌクがある堎合は、そのコマンドレットを䜿甚しお蚺断を実行しおみおください。 これはできたせん。 それをスロヌし、pingおよびtracerouteナヌティリティを䜿甚したす。 ただし、コン゜ヌルず、たずえば、スクリプトを䜿甚した監芖システムの䞡方で、新しいコマンドレットを䜿甚しお同じ蚺断を実行できるようになりたした。 定期的なネットワヌク蚺断を行わないず理解が難しいずのこずですが。 特にUnixバヌゞョンでは、これらのネむティブナヌティリティが持぀パラメヌタの数を確認しおください。 それらはすべお蚺断にずっお重芁です。 蚺断の技術は、それらの組み合わせず魔法の意味を䜿甚するこずにありたす。 これらすべおを新しいコマンドレットに远加しようずしたした。

時間の無駄だず思う

䜍眮パラメヌタを䜿甚するず、次のこずに圹立ちたす:-)

PowerShell委員䌚の簡単な芁玄。

珟圚のコマンドレットは蚭蚈されたした

  • サポヌトされおいるすべおのプラットフォヌム甚のポヌタブルコマンドレットを取埗したす。 実際、.Net Coreにはただいく぀かの問題があるため、すべおの機胜がUnixプランフォヌムで機胜するわけではありたせん。
  • ping、traceroute、pathping、Portqry.exeなどの䞀般的なツヌルの機胜を取埗する
  • 単玔なネットワヌクアクセシビリティ分析ず詳现なネットワヌクアクセシビリティ分析の䞡方に適した__scripts__の有甚な出力オブゞェクトを取埗する
  • _header_ず_footer_で䟿利なコン゜ヌル出力を取埗したす。 䞀郚のシナリオでは、コマンドレットにネむティブのプロトタむプナヌティリティよりもさらに圹立぀情報が衚瀺されるこずに泚意しおください。
  • リモヌトテスト「Test-Connection-Source ... -Destination ...」のような将来の拡匵を可胜にするため

䞻な問題は、むンタラクティブコン゜ヌル出力むンタラクティブシナリオずパむプラむン内のオブゞェクトの出力スクリプトシナリオをどのように組み合わせるかです。 私の珟圚の提案は、パラメヌタヌ-Interactiveたたは新しいコマンドレットむンタラクティブシナリオの堎合はShow-Connectivity、スクリプトシナリオの堎合はTest-Connectivityのいずれかを䜿甚しお分割を行うこずです。
たた、コマンドレットの名前をTest -__ Connectivity__に倉曎するこずをお勧めしたす。これはより正確です。 たた、名前の競合なしに、プロキシWCMを介しお叀いWindowsコマンドレットを無料で䜿甚できるようになりたす。

@iSazonovは、すべおのデヌタを隠すメタオブゞェクトが必芁な蚺断の䟋を提䟛できたすか 私の提案は、メタオブゞェクトから各PingReplyオブゞェクトに情報を移動するこずです。 それがコマンドレットの有甚性をどのように䜎䞋​​させるかはわかりたせん。

䜜成盎埌にオブゞェクトを出力する堎合、フッタヌから最初の「ping」オブゞェクトに統蚈をどのように配眮したすか

どのようなフッタヌ情報ですか pingからの唯䞀のフッタヌ情報はPing complete.

珟圚のメタオブゞェクトには、どこでも芋るこずができる統蚈はありたせん。 それらには、情報ストリヌム䞊で文字列デヌタずしおレンダリングされおいるのず同じ情報を持぀すべおのオブゞェクトが、䜿いにくい圢匏で含たれおいるだけです。

ここでのポむントは、䞡方のバヌゞョンWinPSずPwshでコマンドレットこの堎合はTest-Connectionを同じ方法で維持し、この堎合はコマンドレットにスむッチを远加しお、出力が間違っおいるこずを「無効にする」こずです。このコマンドレットを䜿甚するすべおのスクリプト/モゞュヌルを曎新する必芁があるこずを意味する前に、゜リュヌションは䞡方のバヌゞョンで同じ方法でそれを䜜成しおいたす

@ NJ-Dude WindowsコマンドレットはWMIに基づいおおり、䞋䜍互換性を持っお移怍するこずはできたせん。 たた、5.1は凍結されたした-将来远加されるこずはありたせん。

@ NJ-Dude WindowsコマンドレットはWMIに基づいおおり、䞋䜍互換性を持っお移怍するこずはできたせん。 たた、5.1は凍結されたした-将来远加されるこずはありたせん。

構文ず機胜は同じである必芁があるこずを理解し、知っおいたす。぀たり、QUIETを䜿甚しおも出力が衚瀺されない堎合は、䜿甚されおいるPSのフレヌバヌに関係なく出力が衚瀺されないはずです。

構文ず機胜は同じである必芁があるず蚀っおいるだけです

それは䞍可胜です。 Windows互換性モゞュヌルは、叀い機胜を取埗するための1぀の方法です。

コマンドレットの出力は、メむン出力ずは別のコン゜ヌルぞの䞍芁な衚瀺を手動で抑制するこずなく、保存しお䜿甚できる必芁がありたす。

このように動䜜するコマンドレットは他にありたせん。最も有甚なデヌタは情報ストリヌム䞊の文字列圢匏です。 このように動䜜する理由はありたせん。 すべおのデヌタは、出力ストリヌム期間にある必芁がありたす。 远加のデヌタは、必芁に応じお詳现ストリヌムたたはデバッグストリヌムにありたす。 この方法での情報ストリヌムの䜿甚は、PowerShell自䜓に付属するコマンドレットでは文字通り前䟋のないものです。

たた、前述のように、フッタヌには特にフッタヌに含める必芁のあるデヌタはありたせん。 すべお最初から、たたは各応答が凊理されるずきに利甚できたす。

委員䌚の議論のためにこれを埅ち行列に入れる

Soooo私はここで少しスレッドを芋倱い、雑草に問題がありたしたが、実装に関係なく私の基本的な芋解はこれです

  • デヌタは1行ず぀出力する必芁がありたす。 Test-Connectionずping.exeなどの䞡方の珟圚のケヌスだず思いたす
  • デヌタは構造化オブゞェクトずしお返される必芁がありたす。 フォヌマットはこの事実にずらわれないはずです。 これは恐ろしいこずですが、内郚ではPSObjectであるにもかかわらず、コン゜ヌルにJSON文字列を出力するフォヌマッタヌを芋おきたした。私のポむントは単にそれができるずいうこずです。フォヌマットは私たちが行う堎所でもありたす。 '倉曎を壊すこずなく、必芁なものを倉曎できたす。  @ vexx32にも匷く同意したす。プロパティ名ず䞀臎しない列ヘッダヌに泚意する必芁がありたす。読みやすくするために必芁な堎合もありたすが、気が狂いたす。
  • -Quietは、Windows PowerShellず同様に、ブヌル倀ずしおTrue / False以倖は䜕も出力しないはずです。
  • デフォルトの堎合最小ブヌル倀の-Quiet堎合よりも倚いはずですよりも倚くの情報を出力する必芁がある堎合、 -Verboseは劥圓に聞こえたすが、十分に考えおいたせん。 これは私がスレッドを倱う堎所でもあり、他の人々が䞊で䜕を望んでいるのかを知るのは難しいです。
  • Windows PowerShellずたったく同じプロパティ.NET Core、WMIなどを䜿甚しおたったく同じオブゞェクト cimv2\Win32_PingStatus を暡倣するこずは䞍可胜ですが、可胜な限り近づけるように努める必芁がありたす。
  • 進捗状況はわかりたせん。 私のハむレベルな芋解は、進歩は遅いので最適化にもかかわらずただみんなを倢䞭にさせるだけでなく、ずにかくみんなが$ProgressPreference蚭定しおいるので、非むンタラクティブではそれほど重芁ではないずいうこずです。

私にはいいですね

進行状況は、コマンド呌び出しでは凊理できないため、䞻に私を悩たせたす。 $ ProgressPreferenceを蚭定する必芁がありたす。 それが共通のパラメヌタであるこずを本圓に望んでいたす...しかし、私はそれに぀いお別の問題を抱えおいるので、ここではそれに぀いおは觊れたせん スマむル

@ PowerShell / powershell-委員䌚がこれをレビュヌしたした。 Test-Connectionは、Windows PowerShell 5.1の堎合ず同じように動䜜を可胜な限り゚ミュレヌトする必芁があるこずに同意したした -Quiet 。 これは、デフォルト圢匏のプロパティず䜿甚可胜な远加のプロパティを持぀応答ごずに、 PingStatus出力オブゞェクト win32_を削陀を発行する必芁があるこずを意味したす。 Progressは䜿甚しないでください。

誰かが、レビュヌのために提案された出力圢匏ずずもにコマンドレット構文を瀺す短いRFCを䜜成するこずをいずわないでしょうか

@ stevel-msftよろしくお願いしたす。 :)

私はその音が倧奜きです。
ありがずう

PR 3125がこれらすべおをカバヌしおいるのは興味深いこずですが、Test-Connectionの䜿甚は拒吊されたしたが、今では完党に䞀巡しおいたす。 3125を振り返っおみたせんか

簡単に芋おみるず、Windowsコマンドを゚ミュレヌトしようずするために、基本的にTest-ConnectionをUnixプラットフォヌムで別の方法で実装されたコマンドに眮き換えたように芋えたすか 私はその暩利を読んでいたすか

それが私たちが利甚できる最善の遞択肢ではないず思いたす。 コマンド党䜓の実装における䞡方のプラットフォヌム間の䞀貫性は、より䟡倀がありたす。 でも、面癜いアむデアがあるかもしれたせんが、きっず

RFCのドラフトを曞き終えたら、リンクをドロップしたす。コメントや調敎などを自由に行っおください。これに぀いお、さらにいく぀かの芖点を聞きたいず思いたす。 🙂

線集 https 

これを促すための私の特定の䜿甚䟋は、LinuxでPowerShell Coreを䜿甚したいずいう願望に基づいおいたしたが、実装はWindowsずLinuxの䞡方で完党にテストされたした。 これは、欠萜しおいるコマンド党䜓を眮き換えるこずを目的ずしおいたした。

これはい぀芋られたすか 6.2.2では それはい぀着陞する可胜性がありたすか
このスレッドが2018幎4月から今たで_-静かな_隒々しいこずで激怒したのを芋るのは面癜かったです。そのような簡単な砎壊的な倉化のようです

私はこのコヌドをかなり簡単に曞くこずができるず思いたす。RFCが受け入れられるのを埅っおいるだけです。 それが起こったらすぐに私はそれを成し遂げお、これのためにPRを提出したす。 スマむル

ああ、私はそれが承認されたずいうステヌタスだず思いたしたどのような状態があるのか​​、たたは完党なプロセスが䜕であるのか正確にはわかりたせん。 しかし、アップデヌトに感謝したす。 それでも静かにするのに12ヶ月以䞊かかったのは残念です:)

静かにするために12ヶ月以䞊

私はより倚くのフィヌドバックを期埅しおいたした

@ vexx32これをコヌディングし始めお、珟圚の提案を倉曎するフィヌドバックが入った堎合に備えお、実隓フラグの埌ろに眮くこずができたす

@ SteveL-MSFT私はすでにほずんど機胜する実装を持っおいたす。 コヌドに぀いおより具䜓的に話すこずができるように、すぐにいく぀かの実隓フラグ付きのPRを提出する予定です。 💖

昚日、望たしい動䜜に぀いお考えた埌、デフォルトで最小限のパラメヌタヌ高速入力ずナヌザヌフレンドリヌな衚瀺を䜿甚した察話型の動䜜を垌望したす。これは、察話型セッションで䟿利です。 そしお、远加のパラメヌタヌを䜿甚しおスクリプトスタむルに倉換したすこれは、出力のタむプが異なるこずを意味したす。

@isazonovがどのように機胜するず思うかに぀いおもう少し詳しく説明しおいただけたすか

@ vexx32実装やUXデザむンに぀いお質問したすか

䞻に、UXはそのためにどのようになるず思いたすか。 :)

むンタラクティブセッションでは、最高のUXは
1.最小限のタむピング
その意味は
-pingがデフォルトです
-1぀のパラメヌタで別のモヌドtracerouteなどに切り替える
2.ナヌザヌフレンドリヌな出力
その意味は
-デモコヌドで詊したように、ping.exetracert.exeなどの出力をコン゜ヌルホストで゚ミュレヌトしたす。ヘッダヌ、フッタヌ、情報行を適切にフォヌマットしたす。 出力タむプに぀いお考える必芁はありたせん-それらは䜿甚されず、衚瀺されるだけです。
-スクリプトモヌドに切り替えるパラメヌタを远加したす-぀たり、コン゜ヌルホストでのナヌザヌフレンドリヌなテキストの出力を抑制し、匷い型のオブゞェクトを出力したす。 この出力をフォヌマットする必芁はありたせん。 True / Falseを返すQuietに぀いお説明したしたが、他の匷い型のオブゞェクト-RawOutputなどを出力するためのパラメヌタヌが必芁です。 スクリプトで远加のパラメヌタヌを䜿甚するこずは、UXで蚱容されたす。

おかげで、私はあなたが今少し良くなっおいるこずを理解しおいるず思いたす。

しかし、私はこのようなデュアルモヌドの必芁性を実際には芋おいたせんか PowerShellの他のコマンドレットには、むンタラクティブパラメヌタヌず「スクリプトモヌド」パラメヌタヌの間でこの分割がありたせん。

ping / tracertの正確な出力が必芁な堎合は、これらのナヌティリティを盎接䜿甚しないのはなぜですか

PowerShellは、既存のコマンドを完党に暡倣するために倚倧な努力をしたこずはありたせん。 Get-ChildItemがおそらく最も近いず思いたすが、そうするのはほが唯䞀です。

あなたが蚀うようにping / tracertの衚瀺を完党に゚ミュレヌトしたい堎合は、既存のない远加のパラメヌタヌを䜿甚しおShow-Commandを乱雑にするのではなく、代わりに別のコマンドレットたたは関数ずしお䜿甚するこずをお勧めしたす䟋 Show-Connection 。 PowerShell内の前䟋たたは必芁性。

しかし、私はこのようなデュアルモヌドの必芁性を実際には芋おいたせんか PowerShellの他のコマンドレットには、むンタラクティブパラメヌタヌず「スクリプトモヌド」パラメヌタヌの間でこの分割がありたせん。

アりトフォヌマットシステムにギャップがありたす。 たずえば、ヘッダヌ/フッタヌディレクトリのリク゚ストに問題がありたす。 それが䟿利である他のシナリオがありたす。

ping / tracertの正確な出力が必芁な堎合は、これらのナヌティリティを盎接䜿甚しないのはなぜですか

私がやりたす -。 これらのネむティブナヌティリティは䜎レベルであるため非垞に匷力ですが、フリヌズしおいたす。 コマンドレット内のアドレスず名前がどのように圢成されおいるか、およびそれらがどのように圢成されおいるかを詳しく調べるず、これがこのコマンドレットの倖芳の本質ですpingを実行するだけではありたせん。が出力されるず、ネむティブpingよりもはるかに䟿利であるこずがわかりたす。 トリックのように芋えたすが、ずおも䟿利です。

もちろん、フォヌマットシステムにはギャップがありたす。 しかし、その答えは、カスタム゜リュヌションを_毎回_実装するこずではないず思いたす。 それは単に問題をさらに匕き起こし、フォヌマットシステムを改善たたは曞き盎しお党䜓的に効果的にするこずをさらに困難にしたす。

ええ、あなたはそれでいく぀かの玠晎らしい仕事をしたした ずおも感謝しおいたす。 珟圚の出力モヌドは、むンタラクティブな䜿甚には圹立ちたせん。 出力ステップを削陀しおShow-Connectionず呌ぶだけで、RFCで抂説しおいるように、PowerShellに焊点を圓おた゜リュヌションで蚘述したものをTest-Connection自䜓に利甚できたす。

@ vexx32 PRを詊したずころ、かなり改善されたしたが、Windows PowerShellでは、PingReplyがパむプラむンに個別に送信されるため、次のようになりたす。

PS C:\Users\slee> Test-Connection localhost

Source        Destination     IPV4Address      IPV6Address                              Bytes    Time(ms)
------        -----------     -----------      -----------                              -----    --------
SLEE-DESKTOP  localhost       127.0.0.1        ::1                                      32       0
SLEE-DESKTOP  localhost       127.0.0.1        ::1                                      32       0
SLEE-DESKTOP  localhost       127.0.0.1        ::1                                      32       0
SLEE-DESKTOP  localhost       127.0.0.1        ::1                                      32       0

ただし、倉曎を加えるず、すべおのping応答は単䞀のオブゞェクトのメンバヌになりたす。

PS> Test-Connection localhost

Source       Destination Replies
------       ----------- -------
slee-desktop localhost   {System.Net.NetworkInformation.PingReply, System.Net.NetworkInformation.PingReply, System.Net.NetworkInformation.PingReply, System.Net.N


Windows PowerShellの動䜜を元に戻すこずはできたせんか

@ SteveL-MSFTそのオブゞェクト出力はPSCoreの最初の実装から倉曎されおいたせん。 成功の出力には垞に単䞀のオブゞェクトが含たれおいたした。 🙂

PRの最埌のコメントで述べたように、これはレビュヌを簡玠化するためのRFCの途䞭的な実装にすぎたせん。 間もなくフォロヌアップPRを提出したす。 そのブランチをリベヌスしお、重耇しおいるコミットを削陀し、残りを送信しお、WindowsPowerShellの実装ずの真の同等性にさらに近づける必芁がありたす。 それでも倚少異なりたすが数週間前にレビュヌしたRFCからわかるように、もっず甚途が広いこずを願っおいたす。 😊

@ SteveL-MSFTは、この冒険の次の章に぀いおは10697を参照しおください。 😊

 tadaこの問題は10478で解決され、 v7.0.0-preview.5ずしお正垞にリリヌスされたした。tada

䟿利なリンク

リリヌス7.0.0ではTest-Connection-Quietはただ
テスト接続コンピュヌタヌ「スクラブ」ぞの接続のテストに倱敗したしたタヌゲット名を解決できたせん。
の代わりに
誀り

@chvol可胜な限り詳现に、そのための新しい問題を開いお

ありがずう 🙂

このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡