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'ler, Windows PowerShell ortamının dışındaki sistemde değişiklik yapmak üzere olduklarında onay istemelidir. Örneğin, bir cmdlet kullanıcı hesabı eklemek veya işlemi durdurmak üzereyse, cmdlet devam etmeden önce kullanıcının onayını gerektirmelidir. Buna karşılık, bir cmdlet bir Windows PowerShell değişkenini değiştirmek üzereyse, cmdlet'in onay gerektirmesi gerekmez.
Onay isteğinde bulunmak için cmdlet'in onay isteklerini desteklediğini belirtmesi ve bir onay isteği iletisi görüntülemek için System.Management.Automation.Cmdlet.ShouldProcess ve System.Management.Automation.Cmdlet.ShouldContinue (isteğe bağlı) yöntemlerini çağırması gerekir.
Onay İsteklerini Destekleme
Onay isteklerini desteklemek için cmdlet'in Cmdlet özniteliğinin SupportsShouldProcess
parametresini true
olarak ayarlaması gerekir. Bu, Windows PowerShell tarafından sağlanan Confirm
ve WhatIf
cmdlet parametrelerini etkinleştirir.
Confirm
parametresi, kullanıcının onay isteğinin görüntülenip görüntülenmeyeceğini denetlemesine olanak tanır.
WhatIf
parametresi, kullanıcının cmdlet'in bir ileti görüntülemesi mi yoksa eylemini mi gerçekleştirmesi gerektiğini belirlemesine olanak tanır.
Confirm
ve WhatIf
parametrelerini bir cmdlet'e el ile eklemeyin.
Aşağıdaki örnekte, onay isteklerini destekleyen bir Cmdlet öznitelik bildirimi gösterilmektedir.
[Cmdlet(VerbsDiagnostic.Test, "RequestConfirmationTemplate1",
SupportsShouldProcess = true)]
Onay isteği yöntemlerini çağırma
Cmdlet kodunda, sistemi değiştiren işlem gerçekleştirilmeden önce System.Management.Automation.Cmdlet.ShouldProcess yöntemini çağırın. Cmdlet'ini, çağrı false
değerini döndürürse işlemin gerçekleştirilmemesi ve cmdlet'in sonraki işlemi işlemesi için tasarlar.
ShouldContinue Yöntemini Çağırma
Cmdlet'lerin çoğu yalnızca System.Management.Automation.Cmdlet.ShouldProcess yöntemini kullanarak onay isteğinde bulunur. Ancak bazı durumlarda ek onay gerekebilir. Bu durumlarda, System.Management.Automation.Cmdlet.ShouldProcess çağrısına System.Management.Automation.Cmdlet.ShouldContinue yöntemine bir çağrı ekleyin. Bu, cmdlet veya sağlayıcının onay istemine verilen tüm yanıt için Evet kapsamını daha ayrıntılı bir şekilde denetlemesine olanak tanır.
Bir cmdlet System.Management.Automation.Cmdlet.ShouldContinue yöntemini çağırırsa, cmdlet'in Force
anahtar parametresi de sağlaması gerekir. Kullanıcı cmdlet'i çağırdığında Force
belirtirse, cmdlet yine de System.Management.Automation.Cmdlet.ShouldProcessçağrısı yapmalıdır, ancak System.Management.Automation.Cmdlet.ShouldContinueçağrısını atlamalıdır.
System.Management.Automation.Cmdlet.ShouldContinue, kullanıcıdan istenemediği etkileşimli olmayan bir ortamdan çağrıldığında bir özel durum oluşturur.
Force
parametresi eklemek, komutun etkileşimli olmayan bir ortamda çağrıldığında hala gerçekleştirilebilmesini sağlar.
Aşağıdaki örnekte System.Management.Automation.Cmdlet.ShouldProcess ve System.Management.Automation.Cmdlet.ShouldContinuenasıl çağrılması gösterilmektedir.
if (ShouldProcess (...) )
{
if (Force || ShouldContinue(...))
{
// Add code that performs the operation.
}
}
System.Management.Automation.Cmdlet.ShouldProcess çağrısının davranışı, cmdlet'in çağrıldığı ortama bağlı olarak değişebilir. Önceki yönergelerin kullanılması, cmdlet'in konak ortamından bağımsız olarak diğer cmdlet'lerle tutarlı bir şekilde davranmasını sağlamaya yardımcı olur.
System.Management.Automation.Cmdlet.ShouldProcess yöntemini çağırma örneği için bkz. Onay İsteme.
Etki Düzeyini Belirtin
cmdlet'ini oluştururken, değişikliğin etki düzeyini (önem derecesi) belirtin. Bunu yapmak için Cmdlet özniteliğinin ConfirmImpact
parametresinin değerini Yüksek, Orta veya Düşük olarak ayarlayın.
ConfirmImpact
için yalnızca cmdlet için SupportsShouldProcess
parametresini de belirttiğinizde bir değer belirtebilirsiniz.
Çoğu cmdlet için açıkça ConfirmImpact
belirtmeniz gerekmez. Bunun yerine, parametrenin varsayılan ayarını (Orta) kullanın.
ConfirmImpact
Yüksek olarak ayarlarsanız, işlem varsayılan olarak onaylanır. Sabit disk birimini yeniden biçimlendirme gibi yüksek oranda kesintiye neden olan eylemler için bu ayarı ayırın.
Onay Dışı Yöntemleri Çağırma
Cmdlet veya sağlayıcının bir ileti göndermesi gerekiyorsa ancak onay istememesi gerekiyorsa, aşağıdaki üç yöntemi çağırabilir. System.Management.Automation.Cmdlet.WriteObject çıktısı cmdlet'inizin veya sağlayıcınızın normal çıkışıyla kesiştiğinden, bu tür iletileri göndermek için System.Management.Automation.Cmdlet.WriteObject yöntemini kullanmaktan kaçının.
Kullanıcıyı uyarıp işleme devam etmek için, cmdlet veya sağlayıcı System.Management.Automation.Cmdlet.WriteWarning yöntemini çağırabilir.
Kullanıcının
Verbose
parametresini kullanarak alabildiği ek bilgiler sağlamak için, cmdlet veya sağlayıcı System.Management.Automation.Cmdlet.WriteVerbose yöntemini çağırabilir.Cmdlet veya sağlayıcı, diğer geliştiriciler veya ürün desteği için hata ayıklama düzeyinde ayrıntı sağlamak için System.Management.Automation.Cmdlet.WriteDebug yöntemini çağırabilir. Kullanıcı
Debug
parametresini kullanarak bu bilgileri alabilir.
Cmdlet'ler ve sağlayıcılar, Windows PowerShell dışındaki bir sistemi değiştiren bir işlem gerçekleştirmeye çalışmadan önce onay istemek için aşağıdaki yöntemleri çağırır:
Bunu, kullanıcının komutu nasıl çağırdığı temelinde işlemi onaylamasını isteyen System.Management.Automation.Cmdlet.ShouldProcess yöntemini çağırarak yapar.
Ayrıca Bkz.
PowerShell