次の行を検討してください。
Write-Warning "test" -wv +t
これを実行して$t
後で内容を確認すると、次のようになります。
Message InvocationInfo PipelineIterationInfo
------- -------------- ---------------------
test System.Management.Automation.Invocation... {0, 0, 0}
これは私が実際に期待することです。
さて、このコード行をスクリプトにすると、次のようになります。
function WarnTest {
[CmdletBinding()]
param()
Write-Warning "test"
}
次に、次のような単純な関数呼び出しを行います。
WarnTest -wv +q
$q
$q
空のままです。私はこれに少し困惑しています.[CmdletBinding()]
関数内の書き込み警告が警告ストリームに送信されるため、-WarningVariable
パラメーターでキャッチされる可能性があるという印象を受けました.
誰でもこれに光を当てることができますか?
これが必要な目的は、どのサーバーがオンラインであるかをテストする (そしてこれらを標準出力に送信する) 機能であり、オフラインのサーバーの警告も取得できます。