Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Sampel ini menunjukkan cara menambahkan perintah dan argumen ke alur objek System.Management.Automation.PowerShell dan cara menjalankan perintah secara sinkron.
Persyaratan
Sampel ini memerlukan Windows PowerShell 2.0.
Menunjukkan
Sampel ini menunjukkan hal berikut.
Membuat objek System.Management.Automation.Runspaces.Runspace dengan menggunakan kelas System.Management.Automation.Runspaces.RunspaceFactory.
Membuat objek System.Management.Automation.PowerShell yang menggunakan runspace.
Menambahkan cmdlet ke alur objek System.Management.Automation.PowerShell.
Menjalankan cmdlet secara sinkron.
Mengekstrak properti dari objek System.Management.Automation.PSObject yang dikembalikan oleh perintah .
Contoh
Sampel ini menjalankan cmdlet Get-Process dan Sort-Object dengan menggunakan objek System.Management.Automation.PowerShell.
namespace Microsoft.Samples.PowerShell.Runspaces
{
using System;
using System.Collections.Generic;
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 Runspace08
{
/// <summary>
/// This sample shows how to use a PowerShell object to run commands. The
/// PowerShell object builds a pipeline that include the Get-Process cmdlet,
/// which is then piped to the Sort-Object cmdlet. Parameters are added to the
/// Sort-Object cmdlet to sort the HandleCount property in descending order.
/// </summary>
/// <param name="args">Parameter is not used.</param>
/// <remarks>
/// This sample demonstrates:
/// 1. Creating a PowerShell object
/// 2. Adding individual commands to the PowerShell object.
/// 3. Adding parameters to the commands.
/// 4. Running the pipeline of the PowerShell object synchronously.
/// 5. Working with PSObject objects to extract properties
/// from the objects returned by the commands.
/// </remarks>
private static void Main(string[] args)
{
Collection<PSObject> results; // Holds the result of the pipeline execution.
// Create the PowerShell object. Notice that no runspace is specified so a
// new default runspace is used.
PowerShell powershell = PowerShell.Create();
// Use the using statement so that we can dispose of the PowerShell object
// when we are done.
using (powershell)
{
// Add the Get-Process cmdlet to the pipeline of the PowerShell object.
powershell.AddCommand("Get-Process");
// Add the Sort-Object cmdlet and its parameters to the pipeline of
// the PowerShell object so that we can sort the HandleCount property
// in descending order.
powershell.AddCommand("Sort-Object").AddParameter("Descending").AddParameter("Property", "HandleCount");
// Run the commands of the pipeline synchronously.
results = powershell.Invoke();
}
// Even after disposing of the PowerShell object, we still
// need to set the powershell variable to null so that the
// garbage collector can clean it up.
powershell = null;
Console.WriteLine("Process HandleCount");
Console.WriteLine("--------------------------------");
// Display the results returned by the commands.
foreach (PSObject result in results)
{
Console.WriteLine(
"{0,-20} {1}",
result.Members["ProcessName"].Value,
result.Members["HandleCount"].Value);
}
System.Console.WriteLine("Hit any key to exit...");
System.Console.ReadKey();
}
}
}
Lihat Juga
Menulis Aplikasi Host Windows PowerShell