title: What is [cmdletbinding()] and how does it work?
body: <p>According to <a href="https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_functions_cmdletbindingattribute?view=powershell-7.2" rel="nofollow noreferrer">get-help about_Functions_CmdletBindingAttribute</a></p>
  <blockquote>
  <p>The CmdletBinding attribute is an attribute of functions that makes them operate like compiled cmdlets</p>
  </blockquote>
  <p>We can use it on the top of our scripts.  What is the function in this case? An internal implicit &quot;main&quot; function called by the PowerShell engine for all its inputs?</p>
  <p>Regarding this syntax:</p>
  <pre><code>[CmdletBinding(ConfirmImpact=&lt;String&gt;,
                       DefaultParameterSetName=&lt;String&gt;,
                       HelpURI=&lt;URI&gt;,
                       SupportsPaging=&lt;Boolean&gt;,
                       SupportsShouldProcess=&lt;Boolean&gt;,
                       PositionalBinding=&lt;Boolean&gt;)]
  </code></pre>
  <p>What are we doing?  Instantiating a <code>cmdlbinding</code> object and passing an argument list to its constructor?  This syntax can be found in <code>param()</code> - for example: <code>[Parameter(ValueFromPipeline=$true)]</code>. Does this syntax have a particular name, and can it be found elsewhere?</p>
  <p>Lastly, are we able, as simple PowerShellers, to mimic this functionality and modify the behavior of scripts by setting an attribute?</p>