Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Det här exemplet visar hur du använder klassen System.Management.Automation.PowerShell för att köra cmdletarna Get-Process och Sort-Object synkront. Cmdleten Get-Process returnerar System.Diagnostics.Process objekt för varje process som körs på den lokala datorn och Sort-Object sorterar objekten baserat på deras System.Diagnostics.Process.Id* egenskap. Resultatet av dessa kommandon visas med hjälp av en System.Windows.Forms.DataGridView kontroll.
Krav
Det här exemplet kräver Windows PowerShell 2.0.
Demonstrerar
Det här exemplet visar följande.
Skapa ett System.Management.Automation.PowerShell objekt för att köra kommandon.
Lägga till kommandon i pipelinen för System.Management.Automation.PowerShell objekt.
Köra kommandona synkront.
Med hjälp av en System.Windows.Forms.DataGridView kontroll för att visa utdata från kommandona i ett Windows Forms-program.
Exempel
Det här exemplet kör cmdletarna Get-Process och Sort-Object synkront i standardkörningsutrymmet som tillhandahålls av Windows PowerShell. Utdata visas i ett formulär med hjälp av kontrollen System.Windows.Forms.DataGridView.
namespace Microsoft.Samples.PowerShell.Runspaces
{
using System;
using System.Collections;
using System.Collections.ObjectModel;
using System.Management.Automation;
using System.Management.Automation.Runspaces;
using System.Windows.Forms;
using PowerShell = System.Management.Automation.PowerShell;
/// <summary>
/// This class contains the Main entry point for this host application.
/// </summary>
internal class Runspace02
{
/// <summary>
/// This method creates the form where the output is displayed.
/// </summary>
private static void CreateForm()
{
Form form = new Form();
DataGridView grid = new DataGridView();
form.Controls.Add(grid);
grid.Dock = DockStyle.Fill;
// Create a PowerShell object. Creating this object takes care of
// building all of the other data structures needed to run the command.
using (PowerShell powershell = PowerShell.Create())
{
powershell.AddCommand("Get-Process").AddCommand("Sort-Object").AddArgument("ID");
if (Runspace.DefaultRunspace == null)
{
Runspace.DefaultRunspace = powershell.Runspace;
}
Collection<PSObject> results = powershell.Invoke();
// The generic collection needs to be re-wrapped in an ArrayList
// for data-binding to work.
ArrayList objects = new ArrayList();
objects.AddRange(results);
// The DataGridView will use the PSObjectTypeDescriptor type
// to retrieve the properties.
grid.DataSource = objects;
}
form.ShowDialog();
}
/// <summary>
/// This sample uses a PowerShell object to run the Get-Process
/// and Sort-Object cmdlets synchronously. Windows Forms and
/// data binding are then used to display the results in a
/// DataGridView control.
/// </summary>
/// <param name="args">The parameter is not used.</param>
/// <remarks>
/// This sample demonstrates the following:
/// 1. Creating a PowerShell object.
/// 2. Adding commands and arguments to the pipeline of
/// the PowerShell object.
/// 3. Running the commands synchronously.
/// 4. Using a DataGridView control to display the output
/// of the commands in a Windows Forms application.
/// </remarks>
private static void Main(string[] args)
{
Runspace02.CreateForm();
}
}
}