我對PowerShell的3個命令:清除PowerShell的流在C#
shell.AddScript("Exit-PSSession");
shell.AddScript("Invoke-Command -ComputerName something -ScriptBlock {some command}");
shell.AddScript("Invoke-Command -ComputerName something -ScriptBlock {another command}");
現在我不需要從頭兩任何迴應,但我需要從第三個錯誤日誌。由於我無法預見可能發生多少錯誤,因此我希望至少清除所有錯誤消息中的shell
,最好是完全空的shell
。
我的解決辦法是這樣的:
shell.AddScript("Exit-PSSession");
shell.AddScript("Invoke-Command -ComputerName something -ScriptBlock {some command}");
shell.Invoke();
shell.Streams.ClearStreams();
shell.AddScript("Invoke-Command -ComputerName something -ScriptBlock {another command}");
但不知何故ClearStreams
做什麼都沒有,shell
仍然知道所有舊的錯誤和兩個以前的命令。
微軟方面沒有提供更多的信息,比這種方法存在,應該清除shell
。 (Microsoft Help for ClearStreams)或Microsoft Help for streams in general
我錯過了什麼,還是我誤解他們
(PowerShell是5.0版)什麼和C#4.6中運行.NET框架
感謝提前的幫助。
'ClearStreams'只爲給定的'PowerShell'實例清澈的溪流。它對連接的PowerShell「Runspace」('shell.Runspace')沒有任何作用。特別是,它對'Runspace'中的'$ Error'變量或歷史記錄沒有任何作用。 – PetSerAl