Public/Find-CmdParam.ps1

function Find-CmdParam {
  [cmdletbinding()]
  Param(
    [Parameter(Mandatory)]
    [ValidateNotNullOrEmpty()]
    [string]$Command,
    [switch]$ShowAll
  )
  Begin{
    $common = @(
      'Verbose','Debug','ErrorAction','WarningAction',
      'InformationAction','ErrorVariable','WarningVariable',
      'InformationVariable','OutVariable','OutBuffer',
      'PipelineVariable','WhatIf','Confirm'
    )
    $Params = [System.Collections.Generic.List[string]]::new()
    $Params += (@'
{1}Command: {0}
--------------------
---- Parameters ----
'@
 -f $Command,([environment]::NewLine))
  }
  Process{
    if($ShowAll){
      $Params += (Get-Command -Name $Command).Parameters.Keys | Select-Object -Unique
    }
    else{
      $Params += (Get-Command -Name $Command).Parameters.Keys | Select-Object -Unique | Where-Object { $_ -notin $common }
    }
  }
  End{
    return $Params
  }
}