Cmdlet’lerden Onay İsteme

cmdlet 'ler, Windows PowerShell ortamının dışında bir sistemde değişiklik yapmak üzere olduklarında onay istemelidir. Örneğin, bir cmdlet Kullanıcı hesabı eklemek veya bir işlemi durdurmak üzere ise, cmdlet 'e devam etmeden önce kullanıcıdan onay gerekir. buna karşılık, bir cmdlet Windows PowerShell değişkenini değiştirmek üzere ise, cmdlet 'inin onay gerektirmesini gerektirmez.

Bir onay isteği yapmak için cmdlet 'in onay isteklerini desteklediğini belirtmesi gerekir ve bir onay isteği iletisi göstermek için System. Management. Automation. cmdlet. ShouldProcess ve System. Management. Automation. cmdlet. shouldcontinue (isteğe bağlı) yöntemlerini çağırmalıdır.

Onaylama Isteklerini destekleme

Onay isteklerini desteklemek için cmdlet SupportsShouldProcess cmdlet özniteliğinin parametresini olarak ayarlamanız gerekir true . Bu, Confirm WhatIf Windows PowerShell tarafından sağlanmış ve cmdlet parametrelerini sunar. ConfirmParametresi, kullanıcının onay isteğinin görüntülenip görüntülenmediğini kontrol etmesine izin verir. WhatIfParametresi, kullanıcının cmdlet 'in bir ileti görüntüleyip görüntülemeyeceği veya eylemini gerçekleştirmesini isteyip istemediğinizi belirlemesine izin verir. Confirm WhatIf Bir cmdlet 'e ve parametrelerini el ile eklemeyin.

Aşağıdaki örnek, onay isteklerini destekleyen bir cmdlet öznitelik bildirimini gösterir.

[Cmdlet(VerbsDiagnostic.Test, "RequestConfirmationTemplate1",
        SupportsShouldProcess = true)]

Onaylama isteği yöntemlerini çağırma

Cmdlet kodunda, sistemi değiştiren işlemden önce System. Management. Automation. cmdlet. ShouldProcess yöntemini çağırın. Cmdlet 'i, çağrı bir değeri döndürürse false , işlemin gerçekleştirilmemesi ve cmdlet 'in bir sonraki işlemi işlediği şekilde tasarlayın.

ShouldContinue metodunu çağırma

Çoğu cmdlet yalnızca System. Management. Automation. cmdlet. ShouldProcess metodunu kullanarak onay ister. Ancak, bazı durumlarda ek onay gerekebilir. Bu durumlarda System. Management. Automation. cmdlet. ShouldProcess çağrısını System. Management. Automation. cmdlet. shouldcontinue yöntemine yönelik bir çağrıda kullanın. Bu, cmdlet 'in veya sağlayıcının, onay istemine her yanıt için Evet kapsamını daha ayrıntılı bir şekilde denetlemesine olanak tanır.

Bir cmdlet System. Management. Automation. cmdlet. ShouldContinue metodunu çağırırsa, cmdlet 'in de bir switch parametresi sağlaması gerekir Force . Kullanıcı, Force cmdlet 'i kullanıcının ne zaman çağırabileceğini belirtirse, cmdlet hala System. Management. Automation. cmdlet. ShouldProcessöğesini çağırmalıdır, ancak System. Management. Automation. cmdlet. shouldcontinueçağrısını atmalıdır.

System. Management. Automation. cmdlet. ShouldContinue , kullanıcının istenebileceği etkileşimli olmayan bir ortamdan çağrıldığında bir özel durum oluşturur. Bir Force parametre eklemek, komutun etkileşimli olmayan bir ortamda çağrıldığında çalışmaya devam edilmesini sağlar.

Aşağıdaki örnek, System. Management. Automation. cmdlet. ShouldProcess ve System. Management. Automation. cmdlet. shouldcontinueçağrısının nasıl çağrılacağını gösterir.

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ı, ana bilgisayar ortamından bağımsız olarak, cmdlet 'in diğer cmdlet 'lerle tutarlı bir şekilde davrandığından emin olmanıza yardımcı olur.

System. Management. Automation. cmdlet. ShouldProcess metodunu çağırma örneği için bkz. onayları isteme.

Etki düzeyini belirtin

Cmdlet 'ini oluşturduğunuzda, değişikliğin etki düzeyini (önem derecesi) belirtin. Bunu yapmak için ConfirmImpact cmdlet özniteliği parametresinin değerini yüksek, orta veya düşük olarak ayarlayın. ConfirmImpactYalnızca cmdlet için parametresini de belirttiğinizde bir değer belirtebilirsiniz SupportsShouldProcess .

Çoğu cmdlet için açıkça belirtmeniz gerekmez ConfirmImpact . Bunun yerine, varsayılan olarak orta olan parametre ayarını kullanın. ConfirmImpactYüksek olarak ayarlarsanız, işlem varsayılan olarak onaylanır. Sabit disk birimini yeniden biçimlendirme gibi yüksek ölçüde kesintiye uğramayan eylemler için bu ayarı ayırın.

Onaylama olmayan yöntemler çağırma

Cmdlet veya sağlayıcının bir ileti gönderebilmesi ancak istek onayını istememelidir, bu, aşağıdaki üç yöntemi çağırabilir. Bu türlerin iletilerini göndermek için System. Management. Automation. cmdlet. WriteObject metodunu kullanmaktan kaçının çünkü System. Management. Automation. cmdlet. WriteObject çıktısı, cmdlet 'inin veya sağlayıcınızın normal çıkışıyla birlikte komut dosyası yazmayı zorlaştırır.

Cmdlet 'ler ve sağlayıcılar, Windows PowerShell dışında bir sistemi değiştiren bir işlem gerçekleştirmeyi denemeden önce onay istemek için aşağıdaki yöntemleri çağırır:

Bunu, kullanıcının kullanıcının komutu çağırma şeklini temel alarak işlemi onaylamasını isteyen System. Management. Automation. cmdlet. ShouldProcess yöntemini çağırarak yapılır.

Ayrıca Bkz.

Windows PowerShell Cmdlet’ini Yazma