Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu örnek, bir runspace oluşturmayı ve ardından bir System.Management.Automation.PowerShell nesnesi kullanarak iki cmdlet'i zaman uyumlu bir şekilde çalıştırmak için bu çalışma alanının nasıl kullanılacağını gösterir.
Gereksinimler
Bu örnek Için Windows PowerShell 2.0 gerekir.
Gösterir
Bu örnekte aşağıdakiler gösterilmektedir.
System.Management.Automation.Runspaces.RunspaceFactory sınıfını kullanarak System.Management.Automation.Runspaces.Runspaces.Runspace nesnesi oluşturma.
Runspace kullanan bir System.Management.Automation.PowerShell nesnesi oluşturma.
System.Management.Automation.PowerShell nesnesinin işlem hattına cmdlet'ler ekleme.
Cmdlet'leri zaman uyumlu olarak çalıştırma.
System.Management.Automation.PSObject komutu tarafından döndürülen nesnelerden özellikleri ayıklama.
Örnek
Bu örnek, System.Management.Automation.PSObject nesnesi tarafından Get-Process ve Measure-Object cmdlet'lerini çalıştırmak için kullanılan bir çalışma alanı oluşturur.
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 Runspace07
{
/// <summary>
/// This sample shows how to create a runspace and how to run commands
/// using a PowerShell object. It builds a pipeline that runs the
/// Get-Process cmdlet, which is piped to the Measure-Object
/// cmdlet to count the number of processes running on the system.
/// </summary>
/// <param name="args">The parameter is not used.</param>
/// <remarks>
/// This sample demonstrates the following:
/// 1. Creating a runspace using the RunspaceFactory class.
/// 2. Creating a PowerShell object that uses the runspace.
/// 3. Adding cmdlets to the pipeline of the PowerShell object.
/// 4. Running the cmdlets synchronously.
/// 5. Working with PSObject objects to extract properties
/// from the objects returned by the cmdlets.
/// </remarks>
private static void Main(string[] args)
{
Collection<PSObject> result; // Will hold the result
// of running the cmdlets.
// Create a runspace. We can't use the RunspaceInvoke class
// because we need to get at the underlying runspace to
// explicitly add the commands. 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())
{
myRunSpace.Open();
// Create a PowerShell object and specify the runspace.
PowerShell powershell = PowerShell.Create();
powershell.Runspace = myRunSpace;
// Use the using statement so we dispose of the PowerShell object
// when we're done.
using (powershell)
{
// Add the Get-Process cmdlet to the PowerShell object. Notice
// we are specify the name of the cmdlet, not a script.
powershell.AddCommand("Get-Process");
// Add the Measure-Object cmdlet to count the number
// of objects being returned. Commands are always added to the end
// of the pipeline.
powershell.AddCommand("Measure-Object");
// Run the cmdlets synchronously and save the objects returned.
result = powershell.Invoke();
}
// Even after disposing of the pipeLine, we still need to set
// the powershell variable to null so that the garbage collector
// can clean it up.
powershell = null;
// Display the results of running the commands (checking that
// everything is ok first.
if (result == null || result.Count != 1)
{
throw new InvalidOperationException(
"pipeline.Invoke() returned the wrong number of objects");
}
PSMemberInfo count = result[0].Properties["Count"];
if (count == null)
{
throw new InvalidOperationException(
"The object returned doesn't have a 'count' property");
}
Console.WriteLine(
"Runspace07: The Get-Process cmdlet returned {0} objects",
count.Value);
// Close the runspace to release any resources.
myRunSpace.Close();
}
System.Console.WriteLine("Hit any key to exit...");
System.Console.ReadKey();
}
}
}
Ayrıca Bkz.
PowerShell