Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu bölümde, Stop-Proc cmdlet'inin parametrelerine diğer adların, joker karakterlerin genişletilmesi ve Yardım iletilerinin nasıl ekleneceği açıklanmaktadır (SystemDeğiştiren Bir Cmdlet Oluşturma bölümünde açıklanmaktadır).
Bu Stop-Proc cmdlet'i Get-Proc cmdlet'i kullanılarak alınan işlemleri durdurmaya çalışır (İlk Cmdlet'inizi Oluşturma).
Cmdlet'i tanımlama
Cmdlet oluşturmanın ilk adımı her zaman cmdlet'ini adlandırmak ve cmdlet'i uygulayan .NET sınıfını bildirmektir. Sistemi değiştirmek için bir cmdlet yazdığınızdan, buna uygun şekilde adlandırılmalıdır. Bu cmdlet sistem işlemlerini durdurduğundan, işlemi belirtmek için System.Management.Automation.VerbsLifecycle sınıfı tarafından tanımlanan Stop fiilini ve Proc adını kullanır. Onaylanan cmdlet fiilleri hakkında daha fazla bilgi için bkz. Cmdlet Fiil Adları.
Aşağıdaki kod, bu Stop-Proc cmdlet'i için sınıf tanımıdır.
[Cmdlet(VerbsLifecycle.Stop, "proc",
SupportsShouldProcess = true)]
public class StopProcCommand : Cmdlet
Sistem Değişikliği için Parametreleri Tanımlama
Cmdlet'inizin sistem değişikliklerini ve kullanıcı geri bildirimini destekleyen parametreler tanımlaması gerekir. Cmdlet'in sistemi bir tür tanımlayıcıyla değiştirebilmesi için cmdlet bir Adı parametresi veya eşdeğeri tanımlamalıdır. Ayrıca, cmdlet Force ve PassThru parametrelerini tanımlamalıdır. Bu parametreler hakkında daha fazla bilgi için bkz. SystemDeğiştiren Bir Cmdlet Oluşturma .
Parametre Diğer Adı Tanımlama
Parametre diğer adı, cmdlet parametresi için alternatif bir ad veya iyi tanımlanmış 1 harfli veya 2 harfli kısa ad olabilir. Her iki durumda da diğer adları kullanmanın amacı, komut satırından kullanıcı girişini basitleştirmektir. Windows PowerShell, [Alias()]bildirim söz dizimini kullanan System.Management.Automation.AliasAttribute özniteliği aracılığıyla parametre diğer adlarını destekler.
Aşağıdaki kod, Name parametresine bir diğer adın nasıl eklendiğini gösterir.
/// <summary>
/// Specify the mandatory Name parameter used to identify the
/// processes to be stopped.
/// </summary>
[Parameter(
Position = 0,
Mandatory = true,
ValueFromPipeline = true,
ValueFromPipelineByPropertyName = true,
HelpMessage = "The name of one or more processes to stop. Wildcards are permitted."
)]
[Alias("ProcessName")]
public string[] Name
{
get { return processNames; }
set { processNames = value; }
}
private string[] processNames;
System.Management.Automation.AliasAttribute özniteliğini kullanmaya ek olarak, Windows PowerShell çalışma zamanı hiçbir diğer ad belirtilmemiş olsa bile kısmi ad eşleştirme gerçekleştirir. Örneğin, cmdlet'inizde FileName parametresi varsa ve File başlayan tek parametre buysa, kullanıcı Filename, Filenam, File, Fiveya F girebilir ve girdiyi FileName parametresi olarak tanımaya devam edebilir.
Parametreler için Yardım Oluşturma
Windows PowerShell, cmdlet parametreleri için Yardım oluşturmanıza olanak tanır. Sistem değişikliği ve kullanıcı geri bildirimi için kullanılan herhangi bir parametre için bunu yapın. Yardım'ı destekleyen her parametre için, System.Management.Automation.ParameterAttribute öznitelik bildiriminde HelpMessage özniteliği anahtar sözcüğünü ayarlayabilirsiniz. Bu anahtar sözcük, parametresini kullanmayla ilgili yardım için kullanıcıya görüntülenecek metni tanımlar. ayrıca, ileti için kullanılacak kaynağın temel adını belirlemek için HelpMessageBaseName anahtar sözcüğünü ayarlayabilirsiniz. Bu anahtar sözcüğü ayarlarsanız, kaynak tanımlayıcısını belirtmek için HelpMessageResourceId anahtar sözcüğünü de ayarlamanız gerekir.
Bu Stop-Proc cmdlet'indeki aşağıdaki kod, Name parametresi için HelpMessage özniteliği anahtar sözcüğünü tanımlar.
/// <summary>
/// Specify the mandatory Name parameter used to identify the
/// processes to be stopped.
/// </summary>
[Parameter(
Position = 0,
Mandatory = true,
ValueFromPipeline = true,
ValueFromPipelineByPropertyName = true,
HelpMessage = "The name of one or more processes to stop. Wildcards are permitted."
)]
Giriş İşleme Yöntemini Geçersiz Kılma
Cmdlet'inizin bir giriş işleme yöntemini geçersiz kılması gerekir; bu çoğunlukla System.Management.Automation.Cmdlet.ProcessRecord olur. Sistemi değiştirirken, cmdlet'in System.Management.Automation.Cmdlet.ShouldProcess ve System.Management.Automation.Cmdlet.ShouldContinue yöntemlerini çağırarak kullanıcının değişiklik yapılmadan önce geri bildirim sağlamasına izin vermesi gerekir. Bu yöntemler hakkında daha fazla bilgi için bkz. SystemDeğiştiren Bir Cmdlet Oluşturma .
Joker Karakter Genişletmeyi Destekleme
Birden çok nesnenin seçilmesine izin vermek için cmdlet'iniz, parametre girişi için joker karakter genişletme desteği sağlamak üzere System.Management.Automation.WildcardPattern ve System.Management.Automation.WildcardOptions sınıflarını kullanabilir. Joker karakter desenlerine örnek olarak lsa*, *.txtve [a-c]*verilebilir. Desen tam anlamıyla kullanılması gereken bir karakter içerdiğinde kaçış karakteri olarak geri tırnak karakterini (`) kullanın.
Dosya ve yol adlarının joker karakter genişletmeleri, cmdlet'in birden çok nesnenin seçilmesi gerektiğinde yol girişleri için destek sağlamak isteyebileceği yaygın senaryolara örnektir. Yaygın bir durum, kullanıcının geçerli klasörde bulunan tüm dosyaları görmek istediği dosya sistemindedir.
Özel bir joker karakter desen eşleştirme uygulamasına yalnızca nadiren ihtiyacınız olmalıdır. Bu durumda, cmdlet'iniz joker karakter genişletme için tam POSIX 1003.2, 3.13 belirtimini veya aşağıdaki basitleştirilmiş alt kümeyi desteklemelidir:
- Soru işareti (
?). Belirtilen konumdaki herhangi bir karakterle eşleşir. - Yıldız işareti (
*). Belirtilen konumdan başlayarak sıfır veya daha fazla karakterle eşleşir. - Köşeli ayraç (
[). Karakter veya karakter aralığı içerebilen bir desen köşeli ayraç ifadesi sunar. Aralık gerekiyorsa, aralığı belirtmek için kısa çizgi (-) kullanılır. - Köşeli ayraç (
]). Desen köşeli ayraç ifadesini sona erdirir. - Arka tırnak kaçış karakteri (
`). Bir sonraki karakterin tam anlamıyla alınması gerektiğini gösterir. Komut satırından geri tırnak karakterini belirtirken (bunu program aracılığıyla belirtmenin aksine), arka tırnak kaçış karakterinin iki kez belirtilmesi gerektiğini unutmayın.
Uyarı
Joker karakter desenleri hakkında daha fazla bilgi için bkz. Cmdlet Parametrelerinde Joker Karakterleri Destekleme.
Aşağıdaki kodda, bu cmdlet'in Name parametresini çözümlemek için kullanılan joker karakter deseninin nasıl ayarlanacağı ve joker karakter deseninin nasıl tanımlanacağı gösterilmektedir.
WildcardOptions options = WildcardOptions.IgnoreCase |
WildcardOptions.Compiled;
WildcardPattern wildcard = new WildcardPattern(name,options);
Aşağıdaki kod, işlem adının tanımlı joker karakter deseni ile eşleşip eşleşmediğini test etme işlemini gösterir. Bu durumda, işlem adı desenle eşleşmiyorsa cmdlet'in sonraki işlem adını almak için devam ettiğini fark edin.
if (!wildcard.IsMatch(processName))
{
continue;
}
Kod Örneği
C# örnek kodunun tamamı için bkz. StopProcessSample03 Örnek.
Nesne Türlerini ve Biçimlendirmeyi Tanımlama
Windows PowerShell, .NET nesnelerini kullanarak cmdlet'ler arasında bilgi geçirir. Sonuç olarak, bir cmdlet'in kendi türünü tanımlaması veya cmdlet'in başka bir cmdlet tarafından sağlanan mevcut bir türü genişletmesi gerekebilir. Yeni türleri tanımlama veya var olan türleri genişletme hakkında daha fazla bilgi için bkz. Nesne Türlerini Genişletme ve Biçimlendirme.
Cmdlet'i oluşturma
Bir cmdlet uygulandıktan sonra, bir Windows PowerShell ek bileşeni aracılığıyla Windows PowerShell'e kaydedilmesi gerekir. Cmdlet'leri kaydetme hakkında daha fazla bilgi için bkz. Cmdlet'leri, Sağlayıcıları ve Konak Uygulamalarını Kaydetme.
Cmdlet'i test etme
Cmdlet'iniz Windows PowerShell'e kaydedildiğinde, komut satırında çalıştırarak bunu test edebilirsiniz. Şimdi örnek Stop-Proc cmdlet'ini test edelim. Komut satırından cmdlet'leri kullanma hakkında daha fazla bilgi için bkz. Windows PowerShell ile Çalışmaya Başlama .
Windows PowerShell'i başlatın ve Name parametresinin ProcessName diğer adını kullanarak işlemi durdurmak için
Stop-Prockullanın.PS> Stop-Proc -ProcessName notepadAşağıdaki çıkış görüntülenir.
Confirm Are you sure you want to perform this action? Performing operation "Stop-Proc" on Target "notepad (3496)". [Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "Y"): YKomut satırında aşağıdaki girdiyi yapın. Name parametresi zorunlu olduğundan sizden istenir.
!?girildiğinde parametresiyle ilişkili yardım metni açılır.PS> Stop-ProcAşağıdaki çıkış görüntülenir.
Cmdlet Stop-Proc at command pipeline position 1 Supply values for the following parameters: (Type !? for Help.) Name[0]: !? The name of one or more processes to stop. Wildcards are permitted. Name[0]: notepadŞimdi
*note*joker karakter deseni ile eşleşen tüm işlemleri durdurmak için aşağıdaki girişi yapın. Desenle eşleşen her işlemi durdurmadan önce size sorulur.PS> Stop-Proc -Name *note*Aşağıdaki çıkış görüntülenir.
Confirm Are you sure you want to perform this action? Performing operation "Stop-Proc" on Target "notepad (1112)". [Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "Y"): YAşağıdaki çıkış görüntülenir.
Confirm Are you sure you want to perform this action? Performing operation "Stop-Proc" on Target "ONENOTEM (3712)". [Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "Y"): NAşağıdaki çıkış görüntülenir.
Confirm Are you sure you want to perform this action? Performing operation "Stop-Proc" on Target "ONENOTE (3592)". [Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "Y"): N
Ayrıca Bkz.
- Sistem Değiştiren Bir Cmdlet Oluşturma
- Windows PowerShell Cmdlet Oluşturma
- Nesne Türlerini ve Biçimlendirme Genişletmeyi
- Cmdlet'leri, Sağlayıcıları ve Konak Uygulamalarını Kaydetme
- Cmdlet Parametrelerinde Joker Karakterleri Destekleme
- Windows PowerShell SDK
PowerShell