パラメータ群が複数ある場合の調べ方(3)

パラメータ群が複数ある場合の調べ方(2) - PowerShell Memoの続きです。

Cmdletのパラメータを調べる

今回は「new-object」の「Com」パラメータ群について調べてみましょう。

ParameterSetInfo(Com)
MSH C:\> $((gcm new-object).ParameterSets)[1].Name
Com
MSH C:\> $((gcm new-object).ParameterSets)[1].Parameters


Name                            : ComObject
Type                            : System.String
IsMandatory                     : True
Position                        : 0
ValueFromPipeline               : False
ValueFromPipelineByPropertyName : False
ValueFromRemainingArguments     : False
HelpMessage                     :
Aliases                         : {}
Attributes                      : {Com,
 System.Management.Automation.ValidateNotNullOrEmptyAttribute}

Name                            : Verbose
Type                            : System.Boolean
IsMandatory                     : False
Position                        : -2147483648
ValueFromPipeline               : False
ValueFromPipelineByPropertyName : False
ValueFromRemainingArguments     : False
HelpMessage                     :
Aliases                         : {vb}
Attributes                      :
 {System.Management.Automation.AliasAttribute, __AllParameterSets}

Name                            : Debug
Type                            : System.Boolean
IsMandatory                     : False
Position                        : -2147483648
ValueFromPipeline               : False
ValueFromPipelineByPropertyName : False
ValueFromRemainingArguments     : False
HelpMessage                     :
Aliases                         : {db}
Attributes                      :
 {__AllParameterSets, System.Management.Automation.AliasAttribute}

Name                            : ErrorAction
Type                            : System.Management.Automation.ActionPreference
IsMandatory                     : False
Position                        : -2147483648
ValueFromPipeline               : False
ValueFromPipelineByPropertyName : False
ValueFromRemainingArguments     : False
HelpMessage                     :
Aliases                         : {ea}
Attributes                      :
 {System.Management.Automation.AliasAttribute, __AllParameterSets}

Name                            : ErrorVariable
Type                            : System.String
IsMandatory                     : False
Position                        : -2147483648
ValueFromPipeline               : False
ValueFromPipelineByPropertyName : False
ValueFromRemainingArguments     : False
HelpMessage                     :
Aliases                         : {ev}
Attributes                      :
 {__AllParameterSets, System.Management.Automation.AliasAttribute}

Name                            : OutVariable
Type                            : System.String
IsMandatory                     : False
Position                        : -2147483648
ValueFromPipeline               : False
ValueFromPipelineByPropertyName : False
ValueFromRemainingArguments     : False
HelpMessage                     :
Aliases                         : {ov}
Attributes                      :
 {System.Management.Automation.AliasAttribute, __AllParameterSets}

Name                            : OutBuffer
Type                            : System.Int32
IsMandatory                     : False
Position                        : -2147483648
ValueFromPipeline               : False
ValueFromPipelineByPropertyName : False
ValueFromRemainingArguments     : False
HelpMessage                     :
Aliases                         : {ob}
Attributes                      :
 {System.Management.Automation.ValidateRangeAttribute,
 System.Management.Automation.AliasAttribute, __AllParameterSets}

各パラメータに「IsMandatory」プロパティがありますが、これはそのパラメータが必須かどうかを表します。
例えば、「ComObject」パラメータは「IsMandatory」がTrueですから必須パラメータということになります。


以下はIEのCOMオブジェクトを取得するサンプルです。

$ie = new-object -Com InternetExplorer.Application

「-Com」でパラメータ群を「Com」を指定し、その後に「必須パラメータ」である「ComObject」として「InternetExplorer.Application」を渡しています。

参考記事

この辺のパラメータ周りの仕組みと実装は以下の記事が参考になります。