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.
Cmdlet dapat menulis beberapa jenis pesan yang dapat ditampilkan kepada pengguna oleh runtime Windows PowerShell. Pesan-pesan ini mencakup jenis berikut:
Pesan verbose yang berisi informasi pengguna umum.
Men-debug pesan yang berisi informasi pemecahan masalah.
Pesan peringatan yang berisi pemberitahuan bahwa cmdlet akan melakukan operasi yang dapat memiliki hasil yang tidak terduga.
Pesan laporan kemajuan yang berisi informasi tentang berapa banyak pekerjaan yang telah diselesaikan cmdlet saat melakukan operasi yang membutuhkan waktu lama.
Tidak ada batasan jumlah pesan yang dapat ditulis cmdlet Anda atau jenis pesan yang ditulis cmdlet Anda. Setiap pesan ditulis dengan melakukan panggilan tertentu dari dalam metode pemrosesan input cmdlet Anda.
Menentukan Cmdlet
Langkah pertama dalam pembuatan cmdlet adalah selalu menamai cmdlet dan mendeklarasikan kelas .NET yang mengimplementasikan cmdlet. Setiap jenis cmdlet dapat menulis pemberitahuan pengguna dari metode pemrosesan inputnya; jadi, secara umum, Anda dapat memberi nama cmdlet ini menggunakan kata kerja apa pun yang menunjukkan modifikasi sistem apa yang dilakukan cmdlet. Untuk informasi selengkapnya tentang kata kerja cmdlet yang disetujui, lihat Nama Kata Kerja Cmdlet.
Cmdlet Stop-Proc dirancang untuk memodifikasi sistem; oleh karena itu, System.Management.Automation.CmdletAttribute deklarasi untuk kelas .NET harus menyertakan kata kunci atribut SupportsShouldProcess dan diatur ke true.
Kode berikut adalah definisi untuk kelas cmdlet Stop-Proc ini. Untuk informasi selengkapnya tentang definisi ini, lihat Membuat Cmdlet yang Memodifikasi Sistem.
[Cmdlet(VerbsLifecycle.Stop, "proc",
SupportsShouldProcess = true)]
public class StopProcCommand : Cmdlet
Menentukan Parameter untuk Modifikasi Sistem
Cmdlet Stop-Proc mendefinisikan tiga parameter: Name, Force, dan PassThru. Untuk informasi selengkapnya tentang menentukan parameter ini, lihat Membuat Cmdlet yang Memodifikasi Sistem.
Berikut adalah deklarasi parameter untuk cmdlet Stop-Proc.
[Parameter(
Position = 0,
Mandatory = true,
ValueFromPipeline = true,
ValueFromPipelineByPropertyName = true
)]
public string[] Name
{
get { return processNames; }
set { processNames = value; }
}
private string[] processNames;
/// <summary>
/// Specify the Force parameter that allows the user to override
/// the ShouldContinue call to force the stop operation. This
/// parameter should always be used with caution.
/// </summary>
[Parameter]
public SwitchParameter Force
{
get { return force; }
set { force = value; }
}
private bool force;
/// <summary>
/// Specify the PassThru parameter that allows the user to specify
/// that the cmdlet should pass the process object down the pipeline
/// after the process has been stopped.
/// </summary>
[Parameter]
public SwitchParameter PassThru
{
get { return passThru; }
set { passThru = value; }
}
private bool passThru;
Mengesampingkan Metode Pemrosesan Input
Cmdlet Anda harus mengambil alih metode pemrosesan input, paling sering akan System.Management.Automation.Cmdlet.ProcessRecord. Cmdlet Stop-Proc ini mengambil alih metode pemrosesan input System.Management.Automation.Cmdlet.ProcessRecord. Dalam implementasi cmdlet Stop-Proc ini, panggilan dilakukan untuk menulis pesan verbose, pesan debug, dan pesan peringatan.
Nota
Untuk informasi selengkapnya tentang cara metode ini memanggil metode System.Management.Automation.Cmdlet.ShouldProcess dan System.Management.Automation.Cmdlet.ShouldContinue metode, lihat Membuat Cmdlet yang Memodifikasi Sistem.
Menulis Pesan Verbose
Metode System.Management.Automation.Cmdlet.WriteVerbose digunakan untuk menulis informasi tingkat pengguna umum yang tidak terkait dengan kondisi kesalahan tertentu. Administrator sistem kemudian dapat menggunakan informasi tersebut untuk terus memproses perintah lain. Selain itu, informasi apa pun yang ditulis menggunakan metode ini harus dilokalkan sesuai kebutuhan.
Kode berikut dari cmdlet Stop-Proc ini menunjukkan dua panggilan ke metode System.Management.Automation.Cmdlet.WriteVerbose dari penggantian metode System.Management.Automation.Cmdlet.ProcessRecord.
message = String.Format("Attempting to stop process \"{0}\".", name);
WriteVerbose(message);
message = String.Format("Stopped process \"{0}\", pid {1}.",
processName, process.Id);
WriteVerbose(message);
Menulis Pesan Debug
Metode System.Management.Automation.Cmdlet.WriteDebug digunakan untuk menulis pesan debug yang dapat digunakan untuk memecahkan masalah pengoperasian cmdlet. Panggilan dilakukan dari metode pemrosesan input.
Nota
Windows PowerShell juga menentukan parameter Debug yang menyajikan informasi verbose dan debug. Jika cmdlet Anda mendukung parameter ini, cmdlet tidak perlu memanggil System.Management.Automation.Cmdlet.WriteDebug dalam kode yang sama yang memanggil System.Management.Automation.Cmdlet.WriteVerbose.
Dua bagian kode berikut dari cmdlet Stop-Proc sampel menunjukkan panggilan ke metode System.Management.Automation.Cmdlet.WriteDebug dari penggantian metode System.Management.Automation.Cmdlet.ProcessRecord.
Pesan debug ini ditulis segera sebelum System.Management.Automation.Cmdlet.ShouldProcess dipanggil.
message =
String.Format("Acquired name for pid {0} : \"{1}\"",
process.Id, processName);
WriteDebug(message);
Pesan debug ini ditulis segera sebelum System.Management.Automation.Cmdlet.WriteObject dipanggil.
message =
String.Format("Writing process \"{0}\" to pipeline",
processName);
WriteDebug(message);
WriteObject(process);
Windows PowerShell secara otomatis merutekan panggilan System.Management.Automation.Cmdlet.WriteDebug ke infrastruktur pelacakan dan cmdlet. Ini memungkinkan panggilan metode untuk dilacak ke aplikasi hosting, file, atau debugger tanpa Anda harus melakukan pekerjaan pengembangan tambahan dalam cmdlet. Entri baris perintah berikut mengimplementasikan operasi pelacakan.
notepad PS> Trace-Expression Stop-Proc -File proc.log -Command Stop-Proc
Menulis Pesan Peringatan
Metode System.Management.Automation.Cmdlet.WriteWarning digunakan untuk menulis peringatan ketika cmdlet akan melakukan operasi yang mungkin memiliki hasil yang tidak terduga, misalnya, menimpa file baca-saja.
Kode berikut dari cmdlet Stop-Proc sampel menunjukkan panggilan ke metode System.Management.Automation.Cmdlet.WriteWarning dari penggantian metode System.Management.Automation.Cmdlet.ProcessRecord.
if (criticalProcess)
{
message =
String.Format("Stopping the critical process \"{0}\".",
processName);
WriteWarning(message);
} // if (criticalProcess...
Menulis Pesan Kemajuan
System.Management.Automation.Cmdlet.WriteProgress digunakan untuk menulis pesan kemajuan ketika operasi cmdlet membutuhkan waktu yang lama untuk diselesaikan. Panggilan ke System.Management.Automation.Cmdlet.WriteProgress meneruskan objek System.Management.Automation.Progressrecord yang dikirim ke aplikasi hosting untuk penyajian kepada pengguna.
Nota
Cmdlet Stop-Proc ini tidak menyertakan panggilan ke metode System.Management.Automation.Cmdlet.WriteProgress.
Kode berikut adalah contoh pesan kemajuan yang ditulis oleh cmdlet yang mencoba menyalin item.
int myId = 0;
string myActivity = "Copy-item: Copying *.* to C:\abc";
string myStatus = "Copying file bar.txt";
ProgressRecord pr = new ProgressRecord(myId, myActivity, myStatus);
WriteProgress(pr);
pr.RecordType = ProgressRecordType.Completed;
WriteProgress(pr);
Sampel Kode
Untuk kode sampel C# lengkap, lihat sampel StopProcessSample02.
Tentukan Tipe dan Pemformatan Objek
Windows PowerShell meneruskan informasi antar cmdlet menggunakan objek .NET. Akibatnya, cmdlet mungkin perlu menentukan jenisnya sendiri, atau cmdlet mungkin perlu memperluas jenis yang ada yang disediakan oleh cmdlet lain. Untuk informasi selengkapnya tentang menentukan jenis baru atau memperluas jenis yang sudah ada, lihat Memperluas Tipe Objek dan Pemformatan.
Membangun Cmdlet
Setelah menerapkan cmdlet, cmdlet harus didaftarkan ke Windows PowerShell melalui snap-in Windows PowerShell. Untuk informasi selengkapnya tentang mendaftarkan cmdlet, lihat Cara Mendaftarkan Cmdlet, Penyedia, dan Aplikasi Host.
Menguji Cmdlet
Ketika cmdlet Anda telah terdaftar di Windows PowerShell, Anda dapat mengujinya dengan menjalankannya di baris perintah. Mari kita uji sampel Stop-Proc cmdlet. Untuk informasi selengkapnya tentang menggunakan cmdlet dari baris perintah, lihat Memulai Windows PowerShell.
Entri baris perintah berikut menggunakan Stop-Proc untuk menghentikan proses bernama "NOTEPAD", memberikan pemberitahuan verbose, dan mencetak informasi debug.
PS> Stop-Proc -Name notepad -Verbose -DebugOutput berikut muncul.
VERBOSE: Attempting to stop process " notepad ". DEBUG: Acquired name for pid 5584 : "notepad" Confirm Continue with this operation? [Y] Yes [A] Yes to All [H] Halt Command [S] Suspend [?] Help (default is "Y"): Y Confirm Are you sure you want to perform this action? Performing operation "Stop-Proc" on Target "notepad (5584)". [Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "Y"): Y VERBOSE: Stopped process "notepad", pid 5584.
Lihat Juga
Membuat Cmdlet yang Memodifikasi Sistem
Cara Membuat Cmdlet Windows PowerShell
Memperluas Tipe Objek dan Pemformatan