powershell에 대한 세 가지 명령이 있습니다.
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
여전히 모든 이전 오류와 이전의 두 명령을 알고 있습니다.
Microsoft 측은이 방법이 존재하고 shell
. ( ClearStreams에 대한 Microsoft 도움말 ) 또는 일반 스트림에 대한 Microsoft 도움말
내가 뭔가를 놓쳤습니까, 아니면 그들이 무엇을 오해하고 있습니까?
(Powershell은 버전 5.0) 및 C #은 4.6 NET Framework를 실행합니다.
미리 도움을 주셔서 감사합니다.
이것을 사용할 수 있습니다.
powershell.Streams.Error ();
견본:
PowerShell powershell = PowerShell.Create();
powershell.Runspace = CreateRunSpace.runspace;
var exec = "Set-Mailbox -Identity John -DeliverToMailboxAndForward $true -ForwardingSMTPAddress '[email protected]'";
powershell.AddScript(exec);
powershell.Streams.Error.Clear();
powershell.Streams.Warning.Clear();
var result = powershell.Invoke();
MessageBox.Show(powershell.Streams.Error.Count().ToString()+" error counts");
foreach (var errorRecord in powershell.Streams.Error)
{
MessageBox.Show(errorRecord.ToString()+"first - error");
}
전체 스크립트 게시를 요청합니다. 어떤 종류의 개체 셸입니다. 나는 그것이 .Clear () 와 같은 메소드를 가질 것이라고 생각합니다.
NOte : 나는 이것을 얻었다 :
sh.Commands.AddScript ( "Add-PSSnapin Microsoft.SystemCenter.VirtualMachineManager"); sh.Invoke (); sh.Commands.Clear ();
확인해 주시겠습니까?
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다