私はpowershellコマンドレットを持っており、動作するようにパラメータセットを取得できないようです。 このコマンドレットには31個の可能なパラメーターがあり、2つの可能な処理パスに進むことができます。 31個のパラメータはすべてオプションです.18個は両方のパスで共通です.9個は「正しい」パスに固有で、4個は「左側」のパスに固有のものです。私が達成しようとしているのは、PowerShellのParameterSet属性を使用して、いつどのパラメータを使用できるかを指定することです。しかし、それは動作していません。PowerShell ParameterSetsが認識されません。
以下は私の試みのモックアップです。名前は無実を守るために変更されました。
[Parameter]
public string SomeString1 { get; set; }
[Parameter]
public string SomeString2 { get; set; }
[Parameter(ParameterSetName = "left")]
public string LeftName { get; set; }
[Parameter(ParameterSetName = "left")]
public string LeftDomain { get; set; }
[Parameter(ParameterSetName = "right")]
public string RightID { get; set; }
[Parameter(ParameterSetName = "right")]
public string RightIP { get; set; }
だから私はこれを実行すると、私は、get-ヘルプを使用して、私のパラメータリストをチェックしてみてください、そして、それは二つのリストにそれらを分割すべきときに私が見るすべては」、2を含む1のパラメータの一つの大きな塊であります2つの名前が付けられていないものと、「正しい」パラメータと名前のないものとを含む別のものとを含む。
陽気な部分は私たちがこれをうまくやってくれて、完璧な結果を出すことができる別のコマンドレットがあるということです。しかし何らかの理由でこれは私を放棄していません。同じもの、同じ構文、異なる名前だけが含まれます。だから私はセットアップが正しいことを知っています。なぜなら時々動作するからです。しかし、それはすべての時間で動作しないので、私は困惑しています。
パラメータの一部またはすべてを必須に変更しようとしましたが、ヘッダーでDefaultParameterSetNameを使用しようとしました。私は "both"という名前のセットとそのセットのすべてのパラメータを作るなど、セットを倍増させようとしました。私はパラメータセットに関するMSDNの記事を読んだことがあります。私はgoogleが返す最初の40の記事を読んだことがありますが、それを動作させることはできません。私のチームの半分が私の机の後ろに立っていて、私はそれをやっているのを見ている。
私がために何ができるか:
- フィギュアアウト、それは私のパラメータを認識していない理由は、それがないことを
- は将来
このような場合、問題のパラメータが見つかるか、PowerShellのバグを引き起こす特定の数のパラメータがあることがわかるまで、パラメータのコメントアウトを開始します。特定のパラメータが原因で問題が発生している場合は、そのパラメータのコードを投稿してください。 –
私はこれらの異なる変数すべてを追跡するためにカスタムオブジェクトを作成することを検討します – Gisli
私の仲間の1人は、選択セットの大きなセットでパラメータセット機能を再考することを提案しました。確かに最速の解決策になるでしょう。おそらく私はそれを試して、それが動作するかどうかをお知らせします。 – jnwebster