コマンドレットのパラメータを列挙してみる。|Tweet小ネタですが。ダイナミックパラメータについてはぎたぱそ先生の記事を参照してください。要は、その名の通り動的に定義されるパラメータのことです。ダイナミックパラメータは他の(静的な)パラメータの指定状態によってリアルタイムに定義されます。ValidateSet(値の候補リスト)だけではなく、パラメータの有無、パラメータ値の型やパラメータ名ですら変わり得ます。Get-Commandコマンドレットを使うとコマンドのパラメータや構文等の情報を取得する事ができます。ダイナミックパラメータは前述のような特性があるため、パラメータの有無、パラメータ名、パラメータ値の型が一意に定まりません。この問題を解決するため、Get-Commandコマンドレットには-ArgumentListパラメータが用意されています。指定コマンドに与えるパラメータ値を-ArgumentListパラメータに指定すると、指定コマンド実行時にそのパラメータ値を指定した場合に定義されるダイナミックパラメータに関する情報が、出力結果に含まれるようになります。Get-Contentコマンドレットの-Pathパラメータは「位置パラメータ」、つまりパラメータ名を省略できるパラメータであり、パラメータ名なしで指定された一つめの値がバインドされます。するとC:\(FileSystemプロバイダのパス)が-Pathパラメータにバインドされるわけです。同じ意味となる)ところでGet-Contentコマンドレットは、FileSystemプロバイダでのみ有効となる-Encodingというダイナミックパラメータを持っています。「FileSystemプロバイダでのみ」というのはつまり、「カレントディレクトリがFileSystemプロバイダのパスであるか、-PathパラメータにFileSystemプロバイダのパスが指定されたとき」ということになります。入力した瞬間、-Encodingダイナミックパラメータが定義されて利用できるようになります。Get-CommandコマンドレットでGet-Contentコマンドレットの-Encodingダイナミックパラメータの情報を得るにはどうすればよいか。答えは、このダイナミックパラメータが定義されるトリガーとなるパラメータ値である「C:\」を-ArgumentListパラメータに指定してやればいいわけです。C:\を実行するときに定義される-Encodingダイナミックパラメータも含まれていることがわかります。[<commonparameters>]のように表示され、ダイナミックパラメータが表示されないことが分かるかと思います。-ArgumentListは配列指定もでき、複数パラメータ値を指定した時の構文を調べることもできます。位置パラメータ以外の場合、つまりダイナミックパラメータ定義のトリガーとなるパラメータにパラメータ名を指定する必要があるコマンドの場合はどうやら無理のようです。ダイナミックパラメータのリストを表示します。-ArgumentListは指定してないので、カレントディレクトリのプロバイダの種類でのみ結果が変わります。}}まあ本題とあんまり関係なくなってしまったんですが、せっかく作ったのでということで。いうのを見ると、PowerShellはコマンドもオブジェクトなんだ、ということが分かると思います。@mutaguchiBooks書籍版。