パラメータ群が複数ある場合の調べ方(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」を渡しています。
参考記事
この辺のパラメータ周りの仕組みと実装は以下の記事が参考になります。