64 lines
2.5 KiB
C#
64 lines
2.5 KiB
C#
// <copyright file="Runspace01.cs" company="Microsoft Corporation">
|
|
// Copyright (c) 2009 Microsoft Corporation. All rights reserved.
|
|
// </copyright>
|
|
// DISCLAIMER OF WARRANTY: The software is licensed “as-is.” You
|
|
// bear the risk of using it. Microsoft gives no express warranties,
|
|
// guarantees or conditions. You may have additional consumer rights
|
|
// under your local laws which this agreement cannot change. To the extent
|
|
// permitted under your local laws, Microsoft excludes the implied warranties
|
|
// of merchantability, fitness for a particular purpose and non-infringement.
|
|
|
|
namespace Microsoft.Samples.PowerShell.Runspaces
|
|
{
|
|
using System;
|
|
using System.Management.Automation;
|
|
using PowerShell = System.Management.Automation.PowerShell;
|
|
|
|
/// <summary>
|
|
/// This class contains the Main entry point for this host application.
|
|
/// </summary>
|
|
internal class Runspace01
|
|
{
|
|
/// <summary>
|
|
/// 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.
|
|
/// </summary>
|
|
/// <param name="args">Parameter not used.</param>
|
|
/// <remarks>
|
|
/// This sample demonstrates the following:
|
|
/// 1. Creating a PowerShell object to run a command.
|
|
/// 2. Adding a command to the pipeline of the PowerShell object.
|
|
/// 3. Running the command synchronously.
|
|
/// 4. Using PSObject objects to extract properties from the objects
|
|
/// returned by the command.
|
|
/// </remarks>
|
|
private static void Main(string[] args)
|
|
{
|
|
// Create a PowerShell object. Creating this object takes care of
|
|
// building all of the other data structures needed to run the command.
|
|
using (PowerShell powershell = PowerShell.Create().AddCommand("get-process"))
|
|
{
|
|
Console.WriteLine("Process HandleCount");
|
|
Console.WriteLine("--------------------------------");
|
|
|
|
// Invoke the command synchronously and display the
|
|
// ProcessName and HandleCount properties of 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();
|
|
}
|
|
}
|
|
}
|
|
|