2015-12-21 18 views
0

我正在使用ASP.Net MVC中的Powershell運行空間,並且很難獲得有關如何檢查現有Powershell運行空間狀態的文檔。 真的很感謝任何見解!如何在c#中獲取powershell運行空間狀態#

控制器

public class DemoController : ApiController 
{ 
    PowerShell psInstance = PowerShell.Create(); 
    static Runspace rSpace = RunspaceFactory.CreateRunspace(); 

... 

private void Initialise() 
    { 
     try 
     { 
      psInstance.Runspace = rSpace; 
      if (HOW TO CHECK IF RUNSPACE IS ALREADY OPEN?) <<-- 
      { 
       DO NOTHING 
      } 
       else 
      { 
       rSpace.Open(); 
       LoadModules(); 
      } 
     } 
     catch (CmdletInvocationException e) 
     { 
      rSpace.Close(); 
      rSpace.Dispose(); 
      psInstance.Dispose(); 
      throw e; 
     } 
    } 
+1

你找不到[文件](https://msdn.microsoft.com/en-us/library/system.management .automation.runspaces.runspace.runspacestateinfo(v = vs.85).aspx)呢?另外,爲什麼不創建一個靜態/類構造函數,只是一次「打開」它? –

+0

好點....我可能就這樣做! – ma11achy

回答

2

檢查RunspaceStateInfo財產

if(rSpace.RunspaceStateInfo.State == RunspaceState.Opened) 
{ 
    // runspace is open, do stuff 
} 
else if(rSpace.RunspaceStateInfo.State == RunspaceState.BeforeOpen) 
{ 
    // call rSpace.Open() before invocation 
} 
else 
{ 
    // runspace state is either broken, already in use or closed 
} 
+0

你先生,是個紳士和學者。工作過一次,謝謝! – ma11achy

相關問題