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.
Cmdlet, PowerShell ortamında kullanılan basit bir komutdur. PowerShell çalışma zamanı, komut satırında sağlanan otomasyon betikleri bağlamında bu cmdlet'leri çağırır. PowerShell çalışma zamanı bunları PowerShell API'leri aracılığıyla program aracılığıyla da çağırır.
Cmdlet'ler
Cmdlet'ler bir eylem gerçekleştirir ve genellikle işlem hattındaki bir sonraki komuta bir Microsoft .NET nesnesi döndürür. Cmdlet, PowerShell'in işlem hattı semantiğine katılan tek bir komuttır. Buna ikili (C#) cmdlet'leri, gelişmiş betik işlevleri, CDXML ve İş Akışları dahildir.
Bu SDK belgelerinde C# dilinde yazılmış ikili cmdlet'lerin nasıl oluşturulacağı açıklanır. Betik tabanlı cmdlet'ler hakkında bilgi için bkz:
- işlevler_hakkında_Gelişmiş
- about_Functions_CmdletBindingAttribute
- İşlevler_Hakkında_Gelişmiş_Yöntemler
İkili cmdlet oluşturmak için, iki özel cmdlet temel sınıfından birinden türetilen bir cmdlet sınıfı uygulamanız gerekir. Türetilmiş sınıfın:
- Türetilmiş sınıfı cmdlet olarak tanımlayan bir öznitelik bildirin.
- Ortak özellikleri cmdlet parametreleri olarak tanımlayan özniteliklerle donatılmış ortak özellikleri tanımlayın.
- Kayıtları işlemek için bir veya daha fazla giriş işleme yöntemini geçersiz kılın.
sınıfını içeren derlemeyi Import-Module cmdlet'ini kullanarak doğrudan yükleyebilir veya System.Management.Automation.Runspaces.InitialSessionState API'sini kullanarak derlemeyi yükleyen bir konak uygulaması oluşturabilirsiniz. Her iki yöntem de cmdlet'in işlevselliğine programlı ve komut satırı erişimi sağlar.
Cmdlet Koşulları
Aşağıdaki terimler PowerShell cmdlet belgelerinde sıklıkla kullanılır:
Cmdlet özniteliği
Cmdlet sınıfını cmdlet olarak bildirmek için kullanılan bir .NET özniteliği. PowerShell isteğe bağlı diğer birkaç özniteliği kullansa da, Cmdlet özniteliği gereklidir. Bu öznitelik hakkında daha fazla bilgi için bkz. Cmdlet Öznitelik Bildirimi.
Cmdlet parametresi
Kullanıcının veya cmdlet'i çalıştıran uygulamanın kullanabileceği parametreleri tanımlayan ortak özellikler. Cmdlet'ler gerekli, adlandırılmış, konumsal ve anahtar parametrelerine sahip olabilir. Anahtar parametreleri, yalnızca parametreler çağrıda belirtildiğinde değerlendirilen parametreleri tanımlamanıza olanak sağlar. Farklı parametre türleri hakkında daha fazla bilgi için bkz. cmdlet parametreleri .
Parametre kümesi
Belirli bir eylemi gerçekleştirmek için aynı komutta kullanılabilecek bir parametre grubu. Cmdlet'in birden çok parametre kümesi olabilir, ancak her parametre kümesinin benzersiz olan en az bir parametresi olmalıdır. İyi cmdlet tasarımı, benzersiz parametrenin de gerekli bir parametre olmasını kesinlikle önerir. Parametre kümeleri hakkında daha fazla bilgi için bkz. Cmdlet Parametre Kümeleri.
Dinamik parametre
Çalışma zamanında cmdlet'ine eklenen parametre. Genellikle, başka bir parametre belirli bir değere ayarlandığında dinamik parametreler cmdlet'ine eklenir. Dinamik parametreler hakkında daha fazla bilgi için bkz. Cmdlet Dinamik Parametreleri.
Giriş işleme yöntemleri
System.Management.Automation.Cmdlet sınıfı, kayıtları işlemek için kullanılan aşağıdaki sanal yöntemleri sağlar. Türetilmiş tüm cmdlet sınıfları ilk üç yöntemden birini veya daha fazlasını geçersiz kılmalıdır:
- System.Management.Automation.Cmdlet.BeginProcessing: Cmdlet için isteğe bağlı tek seferlik, ön işleme işlevselliği sağlamak için kullanılır.
- System.Management.Automation.Cmdlet.ProcessRecord: Cmdlet için kayıt kayıt işleme işlevselliği sağlamak için kullanılır. System.Management.Automation.Cmdlet.ProcessRecord yöntemi, cmdlet'in girişlerine bağlı olarak herhangi bir sayıda çağrılabilir veya hiç çağrılmayabilir.
- System.Management.Automation.Cmdlet.EndProcessing: cmdlet'i için isteğe bağlı tek seferlik, işlem sonrası işlevselliği sağlamak için kullanılır.
- System.Management.Automation.Cmdlet.StopProcessing: Kullanıcı cmdlet'ini zaman uyumsuz olarak durdurduğunda (örneğin, CTRL+C) basarak işlemeyi durdurmak için kullanılır.
Bu yöntemler hakkında daha fazla bilgi için bkz. Cmdlet Giriş İşleme Yöntemleri.
Bir cmdlet uyguladığınızda, bu giriş işleme yöntemlerinden en az birini geçersiz kılmanız gerekir. Genellikle ProcessRecord(), cmdlet'in işlediği her kayıt için çağrıldığından geçersiz kıldığınız yöntemdir. Buna karşılık, BeginProcessing() yöntemi ve EndProcessing() yöntemi, kayıtların ön işlemesini veya son işlemesini gerçekleştirmek için bir kez çağrılır. Bu yöntemler hakkında daha fazla bilgi için bkz. Giriş İşleme Yöntemleri.
ShouldProcess özelliği
PowerShell, cmdlet sistemde değişiklik yapmadan önce kullanıcıdan geri bildirim isteyen cmdlet'ler oluşturmanıza olanak tanır. Bu özelliği kullanmak için Cmdlet özniteliğini bildirdiğinizde cmdlet'in ShouldProcess
özelliğini desteklediğini bildirmesi ve cmdlet'in System.Management.Automation.Cmdlet.ShouldProcess ve System.Management.Automation.Cmdlet.ShouldContinue yöntemlerini giriş işleme yöntemi içinden çağırması gerekir.
ShouldProcess
işlevselliğini destekleme hakkında daha fazla bilgi için bkz. onay isteme .
İşlem
Tek bir görev olarak ele alınan mantıksal komut grubu. Gruptaki herhangi bir komut başarısız olursa görev otomatik olarak başarısız olur ve kullanıcının işlem içinde gerçekleştirilen eylemleri kabul etme veya reddetme seçeneği vardır. Bir işleme katılmak için cmdlet'inin Cmdlet özniteliği bildirildiğinde işlemleri desteklediğini bildirmesi gerekir. İşlemler için destek Windows PowerShell 2.0'da sunulmuştur. İşlemler hakkında daha fazla bilgi için bkz. İşlemleri Destekleme.
Cmdlet'lerin Komutlardan Farkı
Cmdlet'ler, diğer komut kabuğu ortamlarındaki komutlardan aşağıdaki yollarla farklıdır:
- Cmdlet'ler .NET sınıflarının örnekleridir; bunlar tek başına yürütülebilir dosyalar değildir.
- Cmdlet'ler bir düzine kod satırı kadar az sayıda koddan oluşturulabilir.
- Cmdlet'ler genellikle kendi ayrıştırma, hata sunusu veya çıktı biçimlendirmesini yapmaz. Ayrıştırma, hata sunusu ve çıkış biçimlendirmesi PowerShell çalışma zamanı tarafından işlenir.
- Cmdlet'ler metin akışlarından değil işlem hattından giriş nesnelerini işler ve cmdlet'ler genellikle nesneleri işlem hattına çıkış olarak teslim eder.
- Cmdlet'ler tek seferde tek bir nesneyi işlediği için kayıt odaklıdır.
Cmdlet Temel Sınıfları
Windows PowerShell, aşağıdaki iki temel sınıftan türetilen cmdlet'leri destekler.
Cmdlet'lerin çoğu, System.Management.Automation.Cmdlet temel sınıfından türetilen .NET sınıflarını temel alır. Bu sınıftan türetme, bir cmdlet'in Windows PowerShell çalışma zamanındaki en düşük bağımlılık kümesini kullanmasına olanak tanır. Bunun iki avantajı vardır. İlk avantaj, cmdlet nesnelerinin daha küçük olması ve PowerShell çalışma zamanındaki değişikliklerden etkilenme olasılığınız daha düşük olmasıdır. İkinci avantaj, gerekirse cmdlet nesnesinin bir örneğini doğrudan oluşturup PowerShell çalışma zamanı aracılığıyla çağırmak yerine doğrudan çağırabilmenizdir.
Daha karmaşık cmdlet'ler, System.Management.Automation.PSCmdlet temel sınıfından türetilen .NET sınıflarını temel alır. Bu sınıftan türetme, PowerShell çalışma zamanına çok daha fazla erişim sağlar. Bu erişim, cmdlet'inizin betikleri çağırmasına, sağlayıcılara erişmesine ve geçerli oturum durumuna erişmesine olanak tanır. (Geçerli oturum durumuna erişmek için oturum değişkenlerini ve tercihlerini alır ve ayarlarsınız.) Ancak, bu sınıftan türetme cmdlet nesnesinin boyutunu artırır ve cmdlet'inizin PowerShell çalışma zamanının geçerli sürümüne daha sıkı bir şekilde bağlandığı anlamına gelir.
Genel olarak, PowerShell çalışma zamanına genişletilmiş erişime ihtiyacınız yoksa, System.Management.Automation.Cmdlet sınıfından türetmelisiniz. Ancak PowerShell çalışma zamanı, cmdlet'lerin yürütülmesi için kapsamlı günlük özelliklerine sahiptir. Denetim modeliniz bu günlüğe kaydetmeye bağlıysa, System.Management.Automation.PSCmdlet sınıfından türeterek cmdlet'inizin başka bir cmdlet'in içinden yürütülmesini engelleyebilirsiniz.
Cmdlet Öznitelikleri
PowerShell, cmdlet'leri yönetmek ve PowerShell tarafından sağlanan ve cmdlet'i tarafından gerekli olabilecek ortak işlevleri belirtmek için kullanılan çeşitli .NET özniteliklerini tanımlar. Örneğin, öznitelikler bir sınıfı cmdlet olarak belirlemek, cmdlet'in parametrelerini belirtmek ve cmdlet geliştiricilerinin cmdlet kodlarında bu işlevi uygulamak zorunda olmaması için girişin doğrulanması istemek için kullanılır. Öznitelikler hakkında daha fazla bilgi için bkz. PowerShell Öznitelikleri.
Cmdlet Adları
PowerShell, cmdlet'leri adlandırmak için fiil ve isim adı çifti kullanır. Örneğin, PowerShell'de bulunan Get-Command
cmdlet'i, komut kabuğuna kayıtlı tüm cmdlet'leri almak için kullanılır. Fiil, cmdlet'in gerçekleştirdiği eylemi, isim ise cmdlet'in eylemini gerçekleştirdiği kaynağı tanımlar.
.NET sınıfı bir cmdlet olarak bildirildiğinde bu adlar belirtilir. .NET sınıfını cmdlet olarak bildirme hakkında daha fazla bilgi için bkz. Cmdlet Öznitelik Bildirimi.
Cmdlet Kodu Yazma
Bu belge, cmdlet kodunun nasıl yazıldığını keşfetmek için iki yol sağlar. Kodu açıklama yapmadan görmeyi tercih ediyorsanız bkz. Cmdlet Kodu örnekleri. Kod hakkında daha fazla açıklamayı tercih ediyorsanız GetProc Öğreticisi , StopProc Öğreticisi veya SelectStr Öğreticisi konularına bakın.
Cmdlet yazma yönergeleri hakkında daha fazla bilgi için bkz. Cmdlet Geliştirme Yönergeleri.
Ayrıca Bkz.
PowerShell