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 menggunakan kelas System.Management.Automation.PowerShell untuk menjalankan perintah, dan cara menangkap kesalahan penghentian yang dilemparkan saat menjalankan perintah. Dua perintah dijalankan, dan perintah terakhir diteruskan argumen parameter yang tidak valid. Akibatnya, tidak ada objek yang dikembalikan dan kesalahan penghentian dilemparkan.
Persyaratan
Sampel ini memerlukan Windows PowerShell 2.0.
Menunjukkan
Sampel ini menunjukkan hal berikut.
Menambahkan perintah ke alur objek System.Management.Automation.PowerShell.
Menambahkan argumen parameter ke alur.
Memanggil perintah secara sinkron.
Menggunakan System.Management.Automation.PSObject objek untuk mengekstrak dan menampilkan properti dari objek yang dikembalikan oleh perintah.
Mengambil dan menampilkan rekaman kesalahan yang dihasilkan selama menjalankan perintah.
Menangkap dan menampilkan pengecualian yang mengakhiri yang dilemparkan oleh perintah.
Contoh
Sampel ini menjalankan perintah secara sinkron di runspace default yang disediakan oleh Windows PowerShell. Perintah terakhir memunculkan kesalahan penghentian karena argumen parameter yang tidak valid diteruskan ke perintah . Kesalahan penghentian terperangkap dan ditampilkan.
namespace Microsoft.Samples.PowerShell.Runspaces
{
using System;
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 Runspace04
{
/// <summary>
/// This sample shows how to use a PowerShell object to run commands.
/// The commands generate a terminating exception that the caller
/// should catch and process.
/// </summary>
/// <param name="args">The parameter is not used.</param>
/// <remarks>
/// This sample demonstrates the following:
/// 1. Creating a PowerShell object to run commands.
/// 2. Adding commands to the pipeline of the PowerShell object.
/// 3. Passing input objects to the commands from the calling program.
/// 4. Using PSObject objects to extract and display properties from the
/// objects returned by the commands.
/// 5. Retrieving and displaying error records that were generated
/// while running the commands.
/// 6. Catching and displaying terminating exceptions generated
/// while running the commands.
/// </remarks>
private static void Main(string[] args)
{
// Create a PowerShell object.
using (PowerShell powershell = PowerShell.Create())
{
// Add the commands to the PowerShell object.
powershell.AddCommand("Get-ChildItem").AddCommand("Select-String").AddArgument("*");
// Run the commands synchronously. Because of the bad regular expression,
// no objects will be returned. Instead, an exception will be thrown.
try
{
foreach (PSObject result in powershell.Invoke())
{
Console.WriteLine("'{0}'", result.ToString());
}
// Process any error records that were generated while running the commands.
Console.WriteLine("\nThe following non-terminating errors occurred:\n");
PSDataCollection<ErrorRecord> errors = powershell.Streams.Error;
if (errors != null && errors.Count > 0)
{
foreach (ErrorRecord err in errors)
{
System.Console.WriteLine(" error: {0}", err.ToString());
}
}
}
catch (RuntimeException runtimeException)
{
// Trap any exception generated by the commands. These exceptions
// will all be derived from the RuntimeException exception.
System.Console.WriteLine(
"Runtime exception: {0}: {1}\n{2}",
runtimeException.ErrorRecord.InvocationInfo.InvocationName,
runtimeException.Message,
runtimeException.ErrorRecord.InvocationInfo.PositionMessage);
}
}
System.Console.WriteLine("\nHit any key to exit...");
System.Console.ReadKey();
}
}
}
Lihat Juga
Menulis Aplikasi Host Windows PowerShell