Voorbeeld Runspace02
In dit voorbeeld ziet u hoe u de klasse System.Management.Automation.Powershell gebruikt om de cmdlets Get-Process en Sort-Object synchroon uit te voeren. De cmdlet Get-Process retourneert System.Diagnostics.Process-objecten voor elk proces dat wordt uitgevoerd op de lokale computer en de sorteert de objecten op basis van de Sort-Object eigenschap System.Diagnostics.Process.Id*. De resultaten van deze opdrachten worden weergegeven met behulp van een System.Windows. Besturingselement Forms.Datagridview.
Vereisten
Voor dit voorbeeld is Windows PowerShell 2.0 vereist.
Demonstreert
In dit voorbeeld wordt het volgende gedemonstreerd.
Een System.Management.Automation.Powershell-object maken om opdrachten uit te voeren.
Opdrachten toevoegen aan de pijplijn van het System.Management.Automation.Powershell-object.
De opdrachten synchroon uitvoeren.
Met behulp van een System.Windows. Besturingselement Forms.Datagridview om de uitvoer van de opdrachten weer te geven in een Windows Forms-toepassing.
Voorbeeld
In dit voorbeeld worden de cmdlets Get-Process en Sort-Object synchroon uitgevoerd in de standaardrunspace die door Windows PowerShell. De uitvoer wordt weergegeven in een formulier met behulp van een System.Windows. Besturingselement 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();
}
}
}
Zie ook
Feedback
Feedback verzenden en weergeven voor