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. Confirm
Parametresi, kullanıcının onay isteğinin görüntülenip görüntülenmediğini kontrol etmesine izin verir. WhatIf
Parametresi, 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. ConfirmImpact
Yalnı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. ConfirmImpact
Yü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.
Kullanıcıya dikkat etmek ve işleme devam etmek için cmdlet veya sağlayıcı System. Management. Automation. cmdlet. WriteWarning metodunu çağırabilir.
Kullanıcının parametresini kullanarak alabileceği ek bilgiler sağlamak için
Verbose
, cmdlet veya sağlayıcı System. Management. Automation. cmdlet. WriteVerbose metodunu çağırabilir.Diğer geliştiriciler veya ürün desteği için hata ayıklama düzeyi ayrıntısı sağlamak üzere, cmdlet veya sağlayıcı System. Management. Automation. cmdlet. WriteDebug metodunu çağırabilir. Kullanıcı bu bilgileri parametresini kullanarak alabilir
Debug
.
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.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin