自作の関数にて、「confirm」と「whtif」をサポートするためには以下の属性をつければ良さそうだ。
CmdletBinding(SupportsShouldProcess=$true) |
001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 | function CommandWithConfirm { [CmdletBinding(SupportsShouldProcess=$true)] param() $mailAddr = "test1@hoge.co.jp","test2@hoge.co.jp" foreach($addr in $mailAddr) { if ($PSCmdlet.ShouldProcess($addr, "メールを送信")) { "$($addr)にメールを送信しました。" } else { "$($addr)へのメール送信をバイパスしました。" } } } CommandWithConfirm -confirm |
ここで、confirmを付け忘れるといきなり大量のメールを送信してしまうおそれがある。これを防ぐには必ず確認メッセージを表示するようにしておけば良い。
予めCmdletBindingにそういった機能が用意されていて、以下のようにすれば良い。
[CmdletBinding(SupportsShouldProcess=$true,ConfirmImpact="high")] |
要はこの処理は非常に危険だよということで、”high”を指定するという事なのだろう。
0 件のコメント:
コメントを投稿