PowerShell(PS)では、コマンドレットパラメーターを公式の構文で定義されている順序で使用することが重要ですか?
-cc
既存のスクリプトでsend-mailMessageにパラメーターを追加しています。-cc
すぐに追加しました-To
が、問題なく動作するので、十分に放っておく傾向があります。ただし、コマンドレットの唯一のパラメーターセットは、ヘルプテキストで次のように定義されています。
Send-MailMessage [-To] <String[]> [-Subject] <String> [[-Body] <String> ] [[-SmtpServer] <String> ] -From <String> [-Attachments <String[]> ] [-Bcc <String[]> ] [-BodyAsHtml] [-Cc <String[]> ] [-Credential <PSCredential> ] [-DeliveryNotificationOption <DeliveryNotificationOptions> ] [-Encoding <Encoding> ] [-Port <Int32> ] [-Priority <MailPriority> ] [-UseSsl] [ <CommonParameters>]
したがって、ベストプラクティスは、次のようなコマンドを実行することだと思います(subject、body、smtpserverの後にcc、ヘルプテキストの後にfrom):
send-mailmessage -to $mailTo -subject $mailSubj -body $msgbody -smtpserver smtp.domain.tld -from $mailFrom -cc $mailCC
...このようにではなく(他の多くのパラメーターの前にcc):
send-mailmessage -to $mailTo -cc $mailCC -subject $mailSubj -body $msgbody -smtpserver smtp.domain.tld -from $mailFrom
一般的に、私はこれについてあまり注意を払っていませんでした、そして、ものはうまくいきます。したがって、これらの行に沿って機能する既存のスクリプトに戻って調整することは、(エラーが発生しやすいことは言うまでもなく)やり過ぎでしょう。しかし、将来のスクリプトでは、今後のパラメーターの順序を尊重する価値があるのではないでしょうか。またはトラブルの価値はありませんか?何て言うの?
もちろん、どのパラメーターがデフォルトであるかについて誤った仮定をしてから、パラメーター名を省略したくはありません。この種のことはカスタム関数などで厄介になることも想像できます。しかし、私の質問は、send-mailMessage
上記の例のように、ボックス内のコマンドレットのパラメーターに明示的に名前が付けられている、より単純なケースについてです。