Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Beispiel wird gezeigt, wie Sie die System.Management.Automation.PowerShell Klasse verwenden, um die Get-Process- auszuführen und Cmdlets-Cmdlets synchron auszuführen. Das Cmdlet Get-Process- gibt System.Diagnostics.Process- Objekte für jeden auf dem lokalen Computer ausgeführten Prozess zurück, und die Sort-Object sortiert die Objekte basierend auf ihrer System.Diagnostics.Process.Id*-Eigenschaft. Die Ergebnisse dieser Befehle werden mithilfe eines System.Windows.Forms.DataGridView--Steuerelements angezeigt.
Anforderungen
In diesem Beispiel ist Windows PowerShell 2.0 erforderlich.
Veranschaulichung
In diesem Beispiel wird Folgendes veranschaulicht.
Erstellen eines System.Management.Automation.PowerShell- Objekts zum Ausführen von Befehlen.
Hinzufügen von Befehlen zur Pipeline von System.Management.Automation.PowerShell-Objekt.
Synchrones Ausführen der Befehle.
Verwenden eines System.Windows.Forms.DataGridView Steuerelement zum Anzeigen der Ausgabe der Befehle in einer Windows Forms-Anwendung.
Beispiel
In diesem Beispiel werden die Get-Process- und Sort-Object Cmdlets synchron im standardlaufbereich ausgeführt, der von Windows PowerShell bereitgestellt wird. Die Ausgabe wird in einem Formular mithilfe eines System.Windows.Forms.DataGridView--Steuerelements angezeigt.
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();
}
}
}