{"id":9411,"date":"2012-05-16T00:01:00","date_gmt":"2012-05-16T00:01:00","guid":{"rendered":"https:\/\/blogs.technet.microsoft.com\/heyscriptingguy\/2012\/05\/16\/use-the-get-command-powershell-cmdlet-to-find-parameter-set-information\/"},"modified":"2012-05-16T00:01:00","modified_gmt":"2012-05-16T00:01:00","slug":"use-the-get-command-powershell-cmdlet-to-find-parameter-set-information","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/scripting\/use-the-get-command-powershell-cmdlet-to-find-parameter-set-information\/","title":{"rendered":"Use the Get-Command PowerShell Cmdlet to Find Parameter Set Information"},"content":{"rendered":"<p><b>Summary<\/b>: Microsoft Scripting Guy, Ed Wilson, shows how to use the Windows PowerShell Get-Command cmdlet to discover information about parameter sets.<\/p>\n<p><img decoding=\"async\" alt=\"Hey, Scripting Guy! Question\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/29\/2019\/02\/q-for-powertip.jpg\" \/>&nbsp;Hey, Scripting Guy! One thing I don&rsquo;t understand is parameter sets. I have heard about them, but I do not really find a good source of documentation about them. What is up with these things?<\/p>\n<p>&mdash;BB<\/p>\n<p><img decoding=\"async\" alt=\"Hey, Scripting Guy! Answer\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/29\/2019\/02\/a-for-powertip.jpg\" \/>&nbsp;Hello BB,<\/p>\n<p>Microsoft Scripting Guy, Ed Wilson, is here. Tonight is the night. At 9:30 PM Eastern Standard Time (-5 GMT) the <a href=\"http:\/\/blogs.technet.com\/b\/heyscriptingguy\/archive\/2012\/05\/01\/winners-of-the-2012-powershell-scripting-games-announced.aspx\" target=\"_blank\">two winners of the 2012 Scripting Games<\/a> (Lido Paglia and Rohn Edwards), Jeffrey Snover, and myself appear with Jonathan Walz and Hal Rottenberg on the <a href=\"http:\/\/powerscripting.wordpress.com\/\" target=\"_blank\">PowerScripting Podcast<\/a>. This event is recorded live, and there is a chat room set up so you can talk to your fellow listeners and&nbsp;ask questions of the guests. Last year it was a lot of fun, and it should be a lot of fun this year too. Jeffrey Snover is always very interesting to listen to, and he is a great guy to talk to.<\/p>\n<h2>Understanding parameter sets<\/h2>\n<p>BB, parameter sets are different ways of using a Windows PowerShell command. For example, there are three ways to use the <b>Get-Process<\/b> cmdlet. The one most everyone knows about is using <b>Get-Process<\/b> to obtain information about a process by passing it a name. In fact, this is the default parameter set, and you do not need to do anything special to use this parameter set.<\/p>\n<p style=\"padding-left: 30px\">Get-Process notepad<\/p>\n<p>You can use the <b>Get-Command<\/b> cmdlet to provide information about the default parameter set for a cmdlet. The following commands retrieve the default parameter set for the <b>Get-Process<\/b> cmdlet.<\/p>\n<p style=\"padding-left: 30px\">PS C:\\&gt; $a = gcm Get-Process<\/p>\n<p style=\"padding-left: 30px\">PS C:\\&gt; $a.DefaultParameterSet<\/p>\n<p style=\"padding-left: 30px\">Name<\/p>\n<p>To view the other parameter sets, you can query the <b>ParameterSets<\/b><i> <\/i>property. As illustrated here, the <b>Get-Process<\/b> cmdlet has three different parameter sets.<\/p>\n<p style=\"padding-left: 30px\">PS C:\\&gt; $a = gcm Get-Process<\/p>\n<p style=\"padding-left: 30px\">PS C:\\&gt; $a.ParameterSets | select name<\/p>\n<p style=\"padding-left: 30px\">&nbsp;<\/p>\n<p style=\"padding-left: 30px\">Name<\/p>\n<p style=\"padding-left: 30px\">&#8212;-<\/p>\n<p style=\"padding-left: 30px\">Name<\/p>\n<p style=\"padding-left: 30px\">Id<\/p>\n<p style=\"padding-left: 30px\">InputObject<\/p>\n<p>Now BB, you may ask, &ldquo;What is the big deal with a parameter set?&rdquo; For one thing, it provides different ways of working with the same command. In addition, it prevents potential errors. Refer back to the <b>Get-Process<\/b> cmdlet. An error would potentially arise if you specified that you wanted to see processes that had the name of calc.exe, but you specified a process ID that related to the notepad.exe process. Therefore, the <i>name <\/i>parameter set permits the <i>name <\/i>parameter, but excludes the <i>id <\/i>parameter. This is why, at times, you might see the following error message:<i> Parameter set cannot be resolved<\/i>&hellip;<\/p>\n<p>As shown here, the message returns when you use parameters that when taken together, do not map to one specific parameter set.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/29\/2019\/02\/2818.hsg-5-16-12-01.png\"><img decoding=\"async\" title=\"Image of error message\" alt=\"Image of error message\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/29\/2019\/02\/2818.hsg-5-16-12-01.png\" \/><\/a><\/p>\n<p>One of the best ways to see the different parameter sets is to examine the output from the <b>Get-Help<\/b> cmdlet. Each parameter details separately. This is shown in the image that follows.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/29\/2019\/02\/1057.hsg-5-16-12-02.png\"><img decoding=\"async\" title=\"Image of command output\" alt=\"Image of command output\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/29\/2019\/02\/1057.hsg-5-16-12-02.png\" \/><\/a><\/p>\n<h2>Working with Get-Command<\/h2>\n<p>One of the problems with the <b>Get-Command<\/b> cmdlet is that the command definition returns as &ldquo;unstructured&rdquo; text. But because you are working with Windows PowerShell, it is rather easy to correct this situation. The string data is shown here.<\/p>\n<p style=\"padding-left: 30px\">PS C:\\&gt; $a = gcm get-process<\/p>\n<p style=\"padding-left: 30px\">PS C:\\&gt; $a.Definition<\/p>\n<p style=\"padding-left: 30px\">Get-Process [[-Name] &lt;String[]&gt;] [-ComputerName &lt;String[]&gt;] [-Module] [-FileVersionI<\/p>\n<p style=\"padding-left: 30px\">nfo] [-Verbose] [-Debug] [-ErrorAction &lt;ActionPreference&gt;] [-WarningAction &lt;ActionPr<\/p>\n<p style=\"padding-left: 30px\">eference&gt;] [-ErrorVariable &lt;String&gt;] [-WarningVariable &lt;String&gt;] [-OutVariable &lt;Stri<\/p>\n<p style=\"padding-left: 30px\">ng&gt;] [-OutBuffer &lt;Int32&gt;]<\/p>\n<p style=\"padding-left: 30px\">Get-Process -Id &lt;Int32[]&gt; [-ComputerName &lt;String[]&gt;] [-Module] [-FileVersionInfo] [-<\/p>\n<p style=\"padding-left: 30px\">Verbose] [-Debug] [-ErrorAction &lt;ActionPreference&gt;] [-WarningAction &lt;ActionPreferenc<\/p>\n<p style=\"padding-left: 30px\">e&gt;] [-ErrorVariable &lt;String&gt;] [-WarningVariable &lt;String&gt;] [-OutVariable &lt;String&gt;] [-<\/p>\n<p style=\"padding-left: 30px\">OutBuffer &lt;Int32&gt;]<\/p>\n<p style=\"padding-left: 30px\">Get-Process [-ComputerName &lt;String[]&gt;] [-Module] [-FileVersionInfo] -InputObject &lt;Pr<\/p>\n<p style=\"padding-left: 30px\">ocess[]&gt; [-Verbose] [-Debug] [-ErrorAction &lt;ActionPreference&gt;] [-WarningAction &lt;Acti<\/p>\n<p style=\"padding-left: 30px\">onPreference&gt;] [-ErrorVariable &lt;String&gt;] [-WarningVariable &lt;String&gt;] [-OutVariable &lt;<\/p>\n<p style=\"padding-left: 30px\">String&gt;] [-OutBuffer &lt;Int32&gt;]<\/p>\n<\/p>\n<p>When attempting to index into the parameter set, individual letters return. This problem appears here.<\/p>\n<p style=\"padding-left: 30px\">PS C:\\&gt; $a.Definition[0]<\/p>\n<p style=\"padding-left: 30px\">G<\/p>\n<p>But using the <b>Split<\/b><i> <\/i>operator turns the output into an array. The <b>`r<\/b> character is a special character that represents a carriage return. By splitting on these carriage returns, an array with three elements returns to the Windows PowerShell command prompt as shown here.<\/p>\n<p style=\"padding-left: 30px\">PS C:\\&gt; $a.Definition -split &#8220;`r&#8221;<\/p>\n<p style=\"padding-left: 30px\">Get-Process [[-Name] &lt;String[]&gt;] [-ComputerName &lt;String[]&gt;] [-Module] [-FileVersionI<\/p>\n<p style=\"padding-left: 30px\">nfo] [-Verbose] [-Debug] [-ErrorAction &lt;ActionPreference&gt;] [-WarningAction &lt;ActionPr<\/p>\n<p style=\"padding-left: 30px\">eference&gt;] [-ErrorVariable &lt;String&gt;] [-WarningVariable &lt;String&gt;] [-OutVariable &lt;Stri<\/p>\n<p style=\"padding-left: 30px\">ng&gt;] [-OutBuffer &lt;Int32&gt;]<\/p>\n<p style=\"padding-left: 30px\">&nbsp;<\/p>\n<p style=\"padding-left: 30px\">Get-Process -Id &lt;Int32[]&gt; [-ComputerName &lt;String[]&gt;] [-Module] [-FileVersionInfo] [-<\/p>\n<p style=\"padding-left: 30px\">Verbose] [-Debug] [-ErrorAction &lt;ActionPreference&gt;] [-WarningAction &lt;ActionPreferenc<\/p>\n<p style=\"padding-left: 30px\">e&gt;] [-ErrorVariable &lt;String&gt;] [-WarningVariable &lt;String&gt;] [-OutVariable &lt;String&gt;] [-<\/p>\n<p style=\"padding-left: 30px\">OutBuffer &lt;Int32&gt;]<\/p>\n<p style=\"padding-left: 30px\">&nbsp;<\/p>\n<p style=\"padding-left: 30px\">Get-Process [-ComputerName &lt;String[]&gt;] [-Module] [-FileVersionInfo] -InputObject &lt;Pr<\/p>\n<p style=\"padding-left: 30px\">ocess[]&gt; [-Verbose] [-Debug] [-ErrorAction &lt;ActionPreference&gt;] [-WarningAction &lt;Acti<\/p>\n<p style=\"padding-left: 30px\">onPreference&gt;] [-ErrorVariable &lt;String&gt;] [-WarningVariable &lt;String&gt;] [-OutVariable &lt;<\/p>\n<p style=\"padding-left: 30px\">String&gt;] [-OutBuffer &lt;Int32&gt;]<\/p>\n<\/p>\n<p>Storing the output in a variable makes it easy to index into the array and retrieve a specific parameter set. This technique appears here.<\/p>\n<p style=\"padding-left: 30px\">PS C:\\&gt; $gps = $a.Definition -split &#8220;`r&#8221;<\/p>\n<p style=\"padding-left: 30px\">PS C:\\&gt; $gps[0]<\/p>\n<p style=\"padding-left: 30px\">Get-Process [[-Name] &lt;String[]&gt;] [-ComputerName &lt;String[]&gt;] [-Module] [-FileVersionI<\/p>\n<p style=\"padding-left: 30px\">nfo] [-Verbose] [-Debug] [-ErrorAction &lt;ActionPreference&gt;] [-WarningAction &lt;ActionPr<\/p>\n<p style=\"padding-left: 30px\">eference&gt;] [-ErrorVariable &lt;String&gt;] [-WarningVariable &lt;String&gt;] [-OutVariable &lt;Stri<\/p>\n<p style=\"padding-left: 30px\">ng&gt;] [-OutBuffer &lt;Int32&gt;]<\/p>\n<p style=\"padding-left: 30px\">PS C:\\&gt; $gps[1]<\/p>\n<p style=\"padding-left: 30px\">&nbsp;<\/p>\n<p style=\"padding-left: 30px\">Get-Process -Id &lt;Int32[]&gt; [-ComputerName &lt;String[]&gt;] [-Module] [-FileVersionInfo] [-<\/p>\n<p style=\"padding-left: 30px\">Verbose] [-Debug] [-ErrorAction &lt;ActionPreference&gt;] [-WarningAction &lt;ActionPreferenc<\/p>\n<p style=\"padding-left: 30px\">e&gt;] [-ErrorVariable &lt;String&gt;] [-WarningVariable &lt;String&gt;] [-OutVariable &lt;String&gt;] [-<\/p>\n<p style=\"padding-left: 30px\">OutBuffer &lt;Int32&gt;]<\/p>\n<p style=\"padding-left: 30px\">PS C:\\&gt; $gps[2]<\/p>\n<p style=\"padding-left: 30px\">&nbsp;<\/p>\n<p style=\"padding-left: 30px\">Get-Process [-ComputerName &lt;String[]&gt;] [-Module] [-FileVersionInfo] -InputObject &lt;Pr<\/p>\n<p style=\"padding-left: 30px\">ocess[]&gt; [-Verbose] [-Debug] [-ErrorAction &lt;ActionPreference&gt;] [-WarningAction &lt;Acti<\/p>\n<p style=\"padding-left: 30px\">onPreference&gt;] [-ErrorVariable &lt;String&gt;] [-WarningVariable &lt;String&gt;] [-OutVariable &lt;<\/p>\n<p style=\"padding-left: 30px\">String&gt;] [-OutBuffer &lt;Int32&gt;]<\/p>\n<h2>The ParameterSetInfo object<\/h2>\n<p>In addition to working with the definition of a Windows PowerShell cmdlet, the <b>ParameterSets<\/b><i> <\/i>property contains an array of <b>CommandParameterSetInfo<\/b> objects. The following command stores the object in a temporary variable, and then displays the members of the <b>CommandParameterSetInfo<\/b> object.<\/p>\n<p style=\"padding-left: 30px\">PS C:\\&gt; $a = get-command get-process<\/p>\n<p style=\"padding-left: 30px\">PS C:\\&gt; $a.ParameterSets | gm<\/p>\n<p style=\"padding-left: 30px\">&nbsp;&nbsp; TypeName: System.Management.Automation.CommandParameterSetInfo<\/p>\n<p style=\"padding-left: 30px\">&nbsp;<\/p>\n<p style=\"padding-left: 30px\">Name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MemberType Definition<\/p>\n<p style=\"padding-left: 30px\">&#8212;-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;-<\/p>\n<p style=\"padding-left: 30px\">Equals&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Method&nbsp;&nbsp;&nbsp;&nbsp; bool Equals(System.Object obj)<\/p>\n<p style=\"padding-left: 30px\">GetHashCode Method&nbsp;&nbsp;&nbsp;&nbsp; int GetHashCode()<\/p>\n<p style=\"padding-left: 30px\">GetType&nbsp;&nbsp;&nbsp;&nbsp; Method&nbsp;&nbsp;&nbsp;&nbsp; type GetType()<\/p>\n<p style=\"padding-left: 30px\">ToString&nbsp;&nbsp;&nbsp; Method&nbsp;&nbsp;&nbsp;&nbsp; string ToString()<\/p>\n<p style=\"padding-left: 30px\">IsDefault&nbsp;&nbsp; Property&nbsp;&nbsp; System.Boolean IsDefault {get;}<\/p>\n<p style=\"padding-left: 30px\">Name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Property&nbsp;&nbsp; System.String Name {get;}<\/p>\n<p style=\"padding-left: 30px\">Parameters&nbsp; Property&nbsp;&nbsp; System.Collections.ObjectModel.ReadOnlyCollection`1[[Syste&#8230;<\/p>\n<p>Because the <b>ParameterSets<\/b><i> <\/i>property returns a collection, it is possible to index directly into the collection and return information from it. However, indexing into the collection produces an output that seems a bit strange. This output is shown in the image that follows.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/29\/2019\/02\/0131.hsg-5-16-12-03.png\"><img decoding=\"async\" title=\"Image of command output\" alt=\"Image of command output\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/29\/2019\/02\/0131.hsg-5-16-12-03.png\" \/><\/a><\/p>\n<p>When you pipe a single instance of the <b>ParameterSets<\/b><i> <\/i>to the <b>Get-Member<\/b> cmdlet, everything still appears to be in the <b>Parameters<\/b><i> <\/i>property. Therefore, it is time to use <a href=\"http:\/\/blogs.technet.com\/b\/heyscriptingguy\/archive\/2011\/06\/18\/top-ten-favorite-powershell-tricks-part-1.aspx\" target=\"_blank\">one of my favorite tricks<\/a> (see favorite trick #3)&mdash;the <i>ExpandProperty <\/i>parameter &nbsp;from the <b>Select-Object<\/b> cmdlet. After I do this, everything falls into place. The two commands I use are shown here.<\/p>\n<p style=\"padding-left: 30px\">$a = get-command get-process<\/p>\n<p style=\"padding-left: 30px\">$a.ParameterSets[0] | select -ExpandProperty parameters<\/p>\n<p>The commands, and the associated output are shown here.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/29\/2019\/02\/3302.hsg-5-16-12-04.png\"><img decoding=\"async\" title=\"Image of command output\" alt=\"Image of command output\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/29\/2019\/02\/3302.hsg-5-16-12-04.png\" \/><\/a><\/p>\n<p>Now it is trivial to see all of the parameters that are associated with a specific parameter set. In addition, the parameter aliases appear.<\/p>\n<p><b>Note<\/b>&nbsp;&nbsp;&nbsp;For more information about parameter aliases, see <a href=\"http:\/\/blogs.technet.com\/b\/heyscriptingguy\/archive\/2011\/01\/15\/weekend-scripter-discovering-powershell-cmdlet-parameter-aliases.aspx\" target=\"_blank\">Weekend Scripter: Discovering PowerShell Cmdlet Parameter Aliases<\/a>.<\/p>\n<p style=\"padding-left: 30px\">PS C:\\&gt; $a = get-command get-process<\/p>\n<p style=\"padding-left: 30px\">PS C:\\&gt; $a.ParameterSets[0] | select -ExpandProperty parameters | ft name, ismandator<\/p>\n<p style=\"padding-left: 30px\">y, aliases<\/p>\n<p style=\"padding-left: 30px\">&nbsp;<\/p>\n<p style=\"padding-left: 30px\">Name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IsMandatory Aliases<\/p>\n<p style=\"padding-left: 30px\">&#8212;-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8212;&#8212;&#8212;&#8211; &#8212;&#8212;-<\/p>\n<p style=\"padding-left: 30px\">Name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;False {ProcessName}<\/p>\n<p style=\"padding-left: 30px\">ComputerName&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; False {Cn}<\/p>\n<p style=\"padding-left: 30px\">Module&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; False {}<\/p>\n<p style=\"padding-left: 30px\">FileVersionInfo&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; False {FV, FVI}<\/p>\n<p style=\"padding-left: 30px\">Verbose&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;False {vb}<\/p>\n<p style=\"padding-left: 30px\">Debug&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; False {db}<\/p>\n<p style=\"padding-left: 30px\">ErrorAction&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; False {ea}<\/p>\n<p style=\"padding-left: 30px\">WarningAction&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; False {wa}<\/p>\n<p style=\"padding-left: 30px\">ErrorVariable&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;False {ev}<\/p>\n<p style=\"padding-left: 30px\">WarningVariable&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; False {wv}<\/p>\n<p style=\"padding-left: 30px\">OutVariable&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; False {ov}<\/p>\n<p style=\"padding-left: 30px\">OutBuffer&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; False {ob}<\/p>\n<p>BB, that is all there is to working with parameter sets. Join me tomorrow for more Windows PowerShell cool stuff.<\/p>\n<p>I invite you to follow me on <a href=\"http:\/\/bit.ly\/scriptingguystwitter\" target=\"_blank\">Twitter<\/a> and <a href=\"http:\/\/bit.ly\/scriptingguysfacebook\" target=\"_blank\">Facebook<\/a>. If you have any questions, send email to me at <a href=\"mailto:scripter@microsoft.com\" target=\"_blank\">scripter@microsoft.com<\/a>, or post your questions on the <a href=\"http:\/\/bit.ly\/scriptingforum\" target=\"_blank\">Official Scripting Guys Forum<\/a>. See you tomorrow. Until then, peace.<\/p>\n<p><b>Ed Wilson, Microsoft Scripting Guy<\/b>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Summary: Microsoft Scripting Guy, Ed Wilson, shows how to use the Windows PowerShell Get-Command cmdlet to discover information about parameter sets. &nbsp;Hey, Scripting Guy! One thing I don&rsquo;t understand is parameter sets. I have heard about them, but I do not really find a good source of documentation about them. What is up with these [&hellip;]<\/p>\n","protected":false},"author":596,"featured_media":87096,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[51,3,4,45],"class_list":["post-9411","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-scripting","tag-getting-started","tag-scripting-guy","tag-scripting-techniques","tag-windows-powershell"],"acf":[],"blog_post_summary":"<p>Summary: Microsoft Scripting Guy, Ed Wilson, shows how to use the Windows PowerShell Get-Command cmdlet to discover information about parameter sets. &nbsp;Hey, Scripting Guy! One thing I don&rsquo;t understand is parameter sets. I have heard about them, but I do not really find a good source of documentation about them. What is up with these [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/scripting\/wp-json\/wp\/v2\/posts\/9411","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/scripting\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/scripting\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/scripting\/wp-json\/wp\/v2\/users\/596"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/scripting\/wp-json\/wp\/v2\/comments?post=9411"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/scripting\/wp-json\/wp\/v2\/posts\/9411\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/scripting\/wp-json\/wp\/v2\/media\/87096"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/scripting\/wp-json\/wp\/v2\/media?parent=9411"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/scripting\/wp-json\/wp\/v2\/categories?post=9411"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/scripting\/wp-json\/wp\/v2\/tags?post=9411"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}