Przykładowy kod RunSpace06RunSpace06 Code Sample

Poniżej znajduje się kod źródłowy dla przykładu Runspace06 opisany w temacie Konfigurowanie obszaru działania przy użyciu przystawki programu Windows PowerShell.Here is the source code for the Runspace06 sample described in Configuring a Runspace Using a Windows PowerShell Snap-in. Ta przykładowa aplikacja tworzy obszar działania oparty na przystawce programu Windows PowerShell, który jest następnie używany do uruchamiania potoku za pomocą jednego polecenia.This sample application creates a runspace based on a Windows PowerShell snap-in, which is then used to run a pipeline with a single command. W tym celu aplikacja tworzy informacje o konfiguracji obszaru działania, tworzy obszar działania, tworzy potok za pomocą jednego polecenia, a następnie wykonuje potok.To do this, the application creates the runspace configuration information, creates a runspace, creates a pipeline with a single command, and then executes the pipeline.

Uwaga

Plik źródłowy C# (runspace06.cs) można pobrać przy użyciu zestawu Windows Software Development Kit dla systemów Windows Vista i Microsoft .NET Framework 3,0 Runtime.You can download the C# source file (runspace06.cs) by using the Windows Software Development Kit for Windows Vista and Microsoft .NET Framework 3.0 Runtime Components. Aby uzyskać instrukcje dotyczące pobierania, zobacz jak zainstalować program Windows PowerShell i pobrać zestaw SDK programu Windows PowerShell.For download instructions, see How to Install Windows PowerShell and Download the Windows PowerShell SDK. Pobrane pliki źródłowe są dostępne w <PowerShell Samples> katalogu.The downloaded source files are available in the <PowerShell Samples> directory.

Przykładowy kodCode Sample

namespace Microsoft.Samples.PowerShell.Runspaces
{
  using System;
  using System.Collections.ObjectModel;
  using System.Management.Automation;
  using System.Management.Automation.Runspaces;
  using PowerShell = System.Management.Automation.PowerShell;
  
  /// <summary>
  /// This class contains the Main entry point for this host application.
  /// </summary>
  internal class Runspace06
  {
    /// <summary>
    /// This sample uses an initial session state to create a runspace. 
    /// The sample invokes a command from binary module that is loaded by the 
    /// initial session state.
    /// </summary>
    /// <param name="args">Parameter not used.</param>
    /// <remarks>
    /// This sample assumes that user has the GetProcessSample02.dll that is 
    /// produced by the GetProcessSample02 sample copied to the current directory. 
    /// This sample demonstrates the following:
    /// 1. Creating a default initial session state.
    /// 2. Creating a runspace using the initial session state.
    /// 3. Creating a PowerShell object that uses the runspace.
    /// 4. Adding the get-proc cmdlet to the PowerShell object from a 
    ///    module.
    /// 5. Using PSObject objects to extract and display properties from 
    ///    the objects returned by the cmdlet.
    /// </remarks>
    private static void Main(string[] args)
    {
      // Create an initial session state.
      InitialSessionState iss = InitialSessionState.CreateDefault();
      iss.ImportPSModule(new string[] { @".\GetProcessSample02.dll" });

      // Create a runspace. Notice that no PSHost object is supplied to the 
      // CreateRunspace method so the default host is used. See the Host 
      // samples for more information on creating your own custom host.
      using (Runspace myRunSpace = RunspaceFactory.CreateRunspace(iss))
      {
        myRunSpace.Open();

        // Create a PowerShell object. 
        using (PowerShell powershell = PowerShell.Create())
        {
          // Add the cmdlet and specify the runspace.
          powershell.AddCommand(@"GetProcessSample02\get-proc");
          powershell.Runspace = myRunSpace;

          Collection<PSObject> results = powershell.Invoke();

          Console.WriteLine("Process              HandleCount");
          Console.WriteLine("--------------------------------");

          // Display the results.
          foreach (PSObject result in results)
          {
            Console.WriteLine(
                              "{0,-20} {1}",
                              result.Members["ProcessName"].Value,
                              result.Members["HandleCount"].Value);
          }
        }
        
        // Close the runspace to release any resources.
        myRunSpace.Close();
      }

      System.Console.WriteLine("Hit any key to exit...");
      System.Console.ReadKey();
    }
  }
}

Zobacz teżSee Also

Windows PowerShell — przewodnik programistyWindows PowerShell Programmer's Guide

Windows PowerShell SDKWindows PowerShell SDK