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 modul ke objek System.Management.Automation.Runspaces.InitialSessionState sehingga modul dimuat saat runspace dibuka. Modul ini menyediakan cmdlet Get-Proc (ditentukan oleh Sampel GetProcessSample02) yang dijalankan secara sinkron dengan menggunakan objek System.Management.Automation.PowerShell .
Persyaratan
Sampel ini memerlukan Windows PowerShell 2.0.
Menunjukkan
Sampel ini menunjukkan hal berikut.
Membuat objek System.Management.Automation.Runspaces.InitialSessionState.
Menambahkan modul ke objek System.Management.Automation.Runspaces.InitialSessionState .
Membuat objek System.Management.Automation.Runspaces.Runspace yang menggunakan objek System.Management.Automation.Runspaces.InitialSessionState .
Membuat objek System.Management.Automation.PowerShell yang menggunakan runspace.
Menambahkan cmdlet Get-Proc modul ke alur objek System.Management.Automation.PowerShell .
Menjalankan perintah secara sinkron.
Mengekstrak properti dari objek System.Management.Automation.PSObject yang dikembalikan oleh perintah .
Contoh
Sampel ini membuat runspace yang menggunakan objek System.Management.Automation.Runspaces.InitialSessionState untuk menentukan elemen yang tersedia saat runspace dibuka. Dalam sampel ini, modul yang menentukan cmdlet Get-Proc ditambahkan ke status sesi awal.
namespace Microsoft.Samples.PowerShell.Runspaces
{
using System;
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 Runspace06
{
/// <summary>
/// This sample shows how to define an initial session state that is
/// used when creating a runspace. The sample invokes a command from
/// a binary module that is loaded by the initial session state.
/// </summary>
/// <param name="args">Parameter not used.</param>
/// <remarks>
/// This sample assumes that user has copied the GetProcessSample02.dll
/// that is produced by the GetProcessSample02 sample to the current
/// directory.
/// This sample demonstrates the following:
/// 1. Creating a default initial session state.
/// 2. Adding a module to the initial session state.
/// 3. Creating a runspace that uses the initial session state.
/// 4. Creating a PowerShell object that uses the runspace.
/// 5. Adding the module's Get-Proc cmdlet to the PowerShell object.
/// 6. Running the command synchronously.
/// 7. Using PSObject objects to extract and display properties from
/// the objects returned by the cmdlet.
/// </remarks>
private static void Main(string[] args)
{
// Create the default initial session state and add the module.
InitialSessionState iss = InitialSessionState.CreateDefault();
iss.ImportPSModule(new string[] { @".\GetProcessSample02.dll" });
// Create a runspace. Notice that no PSHost object is supplied to the
// CreateRunspace method so the default host is used. See the Host
// samples for more information on creating your own custom host.
using (Runspace myRunSpace = RunspaceFactory.CreateRunspace(iss))
{
myRunSpace.Open();
// Create a PowerShell object.
using (PowerShell powershell = PowerShell.Create())
{
// Add the cmdlet and specify the runspace.
powershell.AddCommand(@"GetProcessSample02\Get-Proc");
powershell.Runspace = myRunSpace;
Collection<PSObject> results = powershell.Invoke();
Console.WriteLine("Process HandleCount");
Console.WriteLine("--------------------------------");
// Display the results.
foreach (PSObject result in results)
{
Console.WriteLine(
"{0,-20} {1}",
result.Members["ProcessName"].Value,
result.Members["HandleCount"].Value);
}
}
// Close the runspace to release any resources.
myRunSpace.Close();
}
System.Console.WriteLine("Hit any key to exit...");
System.Console.ReadKey();
}
}
}
Lihat Juga
Menulis Aplikasi Host Windows PowerShell