//
// Copyright (c) 2006 Microsoft Corporation. All rights reserved.
//
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
// PARTICULAR PURPOSE.
//
using System;
using System.Collections.Generic;
using System.Text;
using System.Management.Automation;
using System.Management.Automation.Host;
using System.Management.Automation.Runspaces;
namespace Microsoft.Samples.PowerShell.Runspaces
{
using PowerShell = System.Management.Automation.PowerShell;
class Runspace01
{
///
/// This sample uses the PowerShell class to execute
/// the get-process cmdlet synchronously. The name and
/// handlecount are then extracted from the PSObjects
/// returned and displayed.
///
/// Unused
///
/// This sample demonstrates the following:
/// 1. Creating an instance of the PowerShell class.
/// 2. Using this instance to invoke a PowerShell command.
/// 3. Using PSObject to extract properties from the objects
/// returned by this command.
///
static void Main(string[] args)
{
// Create an instance of the PowerShell class.
// This takes care of all building all of the other
// data structures needed...
PowerShell powershell = PowerShell.Create().AddCommand("get-process");
Console.WriteLine("Process HandleCount");
Console.WriteLine("--------------------------------");
// Now invoke the runspace and display the objects that are
// returned...
foreach (PSObject result in powershell.Invoke())
{
Console.WriteLine("{0,-20} {1}",
result.Members["ProcessName"].Value,
result.Members["HandleCount"].Value);
}
System.Console.WriteLine("Hit any key to exit...");
System.Console.ReadKey();
}
}
}