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 örnekte varsayılan bir ilk oturum durumunun nasıl oluşturulacağı, System.Management.Automation.Runspaces.InitialSessionStatecmdlet'in nasıl ekleneceği, ilk oturum durumunu kullanan bir çalışma alanı oluşturma ve System.Management.Automation.PowerShell nesnesi kullanılarak komutun nasıl çalıştırıldığı gösterilmektedir.
Gereksinimler
Bu örnek Için Windows PowerShell 2.0 gerekir.
Gösterir
Bu örnekte aşağıdakiler gösterilmektedir.
System.Management.Automation.Runspaces.InitialSessionState nesnesi oluşturma.
System.Management.Automation.Runspaces.InitialSessionState nesnesine cmdlet ekleme (Konak uygulaması tarafından tanımlanır).
Nesnesini kullanan bir System.Management.Automation.Runspaces.Runspace nesnesi oluşturma.
System.Management.Automation.Runspaces.Runspaces.Runspace nesnesini kullanan bir System.Management.Automation.PowerShell nesnesi oluşturma.
komutunu System.Management.Automation.PowerShell nesnesinin işlem hattına ekleme.
System.Management.Automation.PSObject komutu tarafından döndürülen nesnelerden özellikleri ayıklama.
Örnek
Bu örnek, runspace açıldığında kullanılabilen öğeleri tanımlamak için System.Management.Automation.Runspaces.InitialSessionState nesnesi kullanan bir çalışma alanı oluşturur. Bu örnekte, Get-Proc cmdlet'i (Konak uygulaması tarafından tanımlanır) ilk oturum durumuna eklenir ve cmdlet System.Management.Automation.PowerShell nesnesi kullanılarak zaman uyumlu olarak çalıştırılır.
namespace Microsoft.Samples.PowerShell.Runspaces
{
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Diagnostics;
using System.Management.Automation;
using System.Management.Automation.Runspaces;
using PowerShell = System.Management.Automation.PowerShell;
#region GetProcCommand
/// <summary>
/// Class that implements the GetProcCommand.
/// </summary>
[Cmdlet(VerbsCommon.Get, "Proc")]
public class GetProcCommand : Cmdlet
{
#region Cmdlet Overrides
/// <summary>
/// For each of the requested process names, retrieve and write
/// the associated processes.
/// </summary>
protected override void ProcessRecord()
{
// Get the current processes.
Process[] processes = Process.GetProcesses();
// Write the processes to the pipeline making them available
// to the next cmdlet. The second argument (true) tells the
// system to enumerate the array, and send one process object
// at a time to the pipeline.
WriteObject(processes, true);
}
#endregion Overrides
} // End GetProcCommand class.
#endregion GetProcCommand
/// <summary>
/// This class contains the Main entry point for this host application.
/// </summary>
internal class Runspace10
{
/// <summary>
/// This sample shows how to create a default initial session state, how to add
/// add a cmdlet to the InitialSessionState object, and then how to create
/// a Runspace object.
/// </summary>
/// <param name="args">Parameter is not used.</param>
/// This sample demonstrates:
/// 1. Creating an InitialSessionState object.
/// 2. Adding a cmdlet to the InitialSessionState object.
/// 3. Creating a runspace that uses the InitialSessionState object.
/// 4. Creating a PowerShell object that uses the Runspace object.
/// 5. Running the added command synchronously.
/// 6. Working with PSObject objects to extract properties
/// from the objects returned by the pipeline.
private static void Main(string[] args)
{
// Create a default InitialSessionState object. The default
// InitialSessionState object contains all the elements provided
// by Windows PowerShell.
InitialSessionState iss = InitialSessionState.CreateDefault();
// Add the Get-Proc cmdlet to the InitialSessionState object.
SessionStateCmdletEntry ssce = new SessionStateCmdletEntry("Get-Proc", typeof(GetProcCommand), null);
iss.Commands.Add(ssce);
// Create a Runspace object that uses the InitialSessionState object.
// Notice that no PSHost object is specified, so the default host is used.
// See the Hosting samples for information on creating your own custom host.
using (Runspace myRunSpace = RunspaceFactory.CreateRunspace(iss))
{
myRunSpace.Open();
using (PowerShell powershell = PowerShell.Create())
{
powershell.Runspace = myRunSpace;
// Add the Get-Proc cmdlet to the pipeline of the PowerShell object.
powershell.AddCommand("Get-Proc");
Collection<PSObject> results = powershell.Invoke();
Console.WriteLine("Process HandleCount");
Console.WriteLine("--------------------------------");
// Display the output of the pipeline.
foreach (PSObject result in results)
{
Console.WriteLine(
"{0,-20} {1}",
result.Members["ProcessName"].Value,
result.Members["HandleCount"].Value);
}
}
// Close the runspace to release resources.
myRunSpace.Close();
}
System.Console.WriteLine("Hit any key to exit...");
System.Console.ReadKey();
}
}
}
Ayrıca Bkz.
PowerShell