RunSpace06 コード サンプル
次に示すのは、「カスタム スナップインを使用した Runspace の構成」で説明されている Runspace06サンプルWindows PowerShellコードです。 このサンプル アプリケーションでは、Windows PowerShell スナップインに基づいて実行空間を作成します。このスナップインは、1 つのコマンドでパイプラインを実行するために使用されます。 これを行うには、アプリケーションによって実行空間構成情報が作成され、実行空間が作成され、1 つのコマンドでパイプラインが作成された後、パイプラインが実行されます。
注意
Windows Software Development Kit for Windows Vista および Microsoft .NET Framework .NET Framework 3.0 Runtime Components を使用して、C# ソース ファイル (runspace06.cs) をダウンロードできます。 ダウンロード手順については、「インストール方法」および「Windows PowerShell SDK のダウンロード」をWindows PowerShellしてください。 ダウンロードしたソース ファイルは ディレクトリで使用 <PowerShell Samples> できます。
コード サンプル
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();
}
}
}
参照
フィードバック
フィードバックの送信と表示