Runspace01 (VB.NET) Code Sample
Here are the code samples for the runspace described in Creating a Console Application That Runs a Specified Command. To do this, the application invokes a runspace, and then invokes a command. (Note that this application does not specify runspace configuration information, nor does it explicitly create a pipeline.) The command that is invoked is the Get-Process
cmdlet.
Code Sample
Imports System
Imports System.Collections.Generic
Imports System.Text
Imports System.Management.Automation
Imports System.Management.Automation.Host
Imports System.Management.Automation.Runspaces
Namespace Microsoft.Samples.PowerShell.Runspaces
Module Runspace01
' <summary>
' This sample uses the RunspaceInvoke class to execute
' the get-process cmdlet synchronously. The name and
' handlecount are then extracted from the PSObjects
' returned and displayed.
' </summary>
' <param name="args">Unused</param>
' <remarks>
' This sample demonstrates the following:
' 1. Creating an instance of the RunspaceInvoke class.
' 2. Using this instance to invoke a PowerShell command.
' 3. Using PSObject to extract properties from the objects
' returned by this command.
' </remarks>
Sub Main()
' Create an instance of the RunspaceInvoke class.
' This takes care of all building all of the other
' data structures needed...
Dim invoker As RunspaceInvoke = New RunspaceInvoke()
Console.WriteLine("Process HandleCount")
Console.WriteLine("--------------------------------")
' Now invoke the runspace and display the objects that are
' returned...
For Each result As PSObject In invoker.Invoke("get-process")
Console.WriteLine("{0,-20} {1}", _
result.Members("ProcessName").Value, _
result.Members("HandleCount").Value)
Next
System.Console.WriteLine("Hit any key to exit...")
System.Console.ReadKey()
End Sub
End Module
End Namespace