Runspace Class

Represents the runspace that is the operating environment for command pipelines. This class provides methods for opening the runspace, creating single and nested pipelines for the runspace, and closing the runspace.

Namespace: System.Management.Automation.Runspaces
Assembly: System.Management.Automation (in System.Management.Automation.dll)

Dim instance As Runspace

public ref class Runspace abstract : IDisposable
public abstract class Runspace implements IDisposable
public abstract class Runspace implements IDisposable

The following code example, pulled from the ps_runspace10 sample in the Windows SDK, uses a RunspaceFactory to create a runspace.

private static void Main(string[] args)    {      InitialSessionState iss = InitialSessionState.CreateDefault();      SessionStateCmdletEntry ssce = new SessionStateCmdletEntry("get-proc", typeof(GetProcCommand), null);      iss.Commands.Add(ssce);                 using (Runspace myRunSpace = RunspaceFactory.CreateRunspace(iss))      {        myRunSpace.Open();        using (PowerShell powershell = PowerShell.Create())        {          powershell.Runspace = myRunSpace;          powershell.AddCommand("get-proc");          Collection<PSObject> results = powershell.Invoke();          Console.WriteLine("Process              HandleCount");          Console.WriteLine("--------------------------------");           foreach (PSObject result in results)          {             Console.WriteLine(                               "{0,-20} {1}",                               result.Members["ProcessName"].Value,                               result.Members["HandleCount"].Value);          }        }        myRunSpace.Close();      }      System.Console.WriteLine("Hit any key to exit...");      System.Console.ReadKey();    }  }}

For more information about runspaces and runspace pools, see Host Application Runspaces.

The user at the command line may not necessarily realize that the commands that Windows PowerShell runs are being processed within a runspace. From the command-line user’s point of view, commands are run in a Windows PowerShell session. From a host application’s point of view, commands are run within a runspace.

After a runspace is opened, Windows PowerShell host applications can run startup scripts that include the profiles and initialization scripts in the runspace configuration. For more information about runspace configuration, see the RunspaceConfiguration class.

The runspace does not provide output. Data is returned to the host application through the pipelines executing within the runspace. For more information about pipeline output, see the Pipeline class.

It is permitted to derive from this class. However, there is no established scenario for doing this, nor has deriving from this class been tested.


Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.


Target Platforms

© 2015 Microsoft