PoshCode Logo PowerShell Code Repository

Get-Help proxy function with URLs for PowerShell Core Help Topics when using the ‘Online’ parameter.

  1. function Get-Help
  2. {
  3.  
  4.         <#
  5.         .ForwardHelpTargetName Get-Help
  6.         .ForwardHelpCategory Cmdlet
  7.         #>
  8.  
  9.         [CmdletBinding(DefaultParameterSetName='AllUsersView')]
  10.        
  11.         param(
  12.                 [Parameter(Position=0, ValueFromPipelineByPropertyName=$true)]
  13.                 [System.String]
  14.                 ${Name},
  15.  
  16.                 [System.String]
  17.                 ${Path},
  18.  
  19.                 [System.String[]]
  20.                 ${Category},
  21.  
  22.                 [System.String[]]
  23.                 ${Component},
  24.  
  25.                 [System.String[]]
  26.                 ${Functionality},
  27.  
  28.                 [System.String[]]
  29.                 ${Role},
  30.  
  31.                 [Parameter(ParameterSetName='DetailedView')]
  32.                 [Switch]
  33.                 ${Detailed},
  34.  
  35.                 [Parameter(ParameterSetName='AllUsersView')]
  36.                 [Switch]
  37.                 ${Full},
  38.  
  39.                 [Parameter(ParameterSetName='Examples')]
  40.                 [Switch]
  41.                 ${Examples},
  42.  
  43.                 [Parameter(ParameterSetName='Parameters')]
  44.                 [System.String]
  45.                 ${Parameter},
  46.  
  47.                 [Switch]
  48.                 ${Online}
  49.         )
  50.  
  51.         begin
  52.         {
  53.                 try {
  54.                         $OnlineBaseHelpUrl = 'http://go.microsoft.com/fwlink/?LinkID='
  55.  
  56.                         $about = New-Object PSObject -Property @{
  57.                                 'about_Aliases' = 113207
  58.                                 'about_Arithmetic_Operators' = 113208
  59.                                 'about_Arrays' = 113209
  60.                                 'about_Assignment_Operators' = 113210
  61.                                 'about_Automatic_Variables' = 113212
  62.                                 'about_Break' = 113213
  63.                                 'about_Command_Precedence' = 113214
  64.                                 'about_Command_Syntax' = 113215
  65.                                 'about_Comment_Based_Help' = 144309
  66.                                 'about_CommonParameters' = 113216
  67.                                 'about_Comparison_Operators' = 113217
  68.                                 'about_Continue' = 113218
  69.                                 'about_Core_Commands' = 113219
  70.                                 'about_Data_Sections' = 113220
  71.                                 'about_Debuggers' = 113221
  72.                                 'about_Do' = 135169
  73.                                 'about_Environment_Variables' = 113222
  74.                                 'about_Escape_Characters' = 113223
  75.                                 'about_EventLogs' = 113224
  76.                                 'about_Execution_Policies' = 135170
  77.                                 'about_For' = 113228
  78.                                 'about_Foreach' = 113229
  79.                                 'about_Format.ps1xml' = 113230
  80.                                 'about_Functions' = 113231
  81.                                 'about_Functions_Advanced' = 144511
  82.                                 'about_Functions_Advanced_Methods' = 135172
  83.                                 'about_Functions_Advanced_Parameters' = 135173
  84.                                 'about_Functions_CmdletBindingAttribute' = 135174
  85.                                 'about_Hash_Tables' = 135175
  86.                                 'about_History' = 113233
  87.                                 'about_If' = 113234
  88.                                 'about_Job_Details' = 135176
  89.                                 'about_jobs' = 113251
  90.                                 'about_Join' = 113235
  91.                                 'about_Language_Keywords' = 136588
  92.                                 'about_Line_Editing' = 113236
  93.                                 'about_Locations' = 113237
  94.                                 'about_Logical_Operators' = 113238
  95.                                 'about_Methods' = 113239
  96.                                 'about_Modules' = 144311
  97.                                 'about_Objects' = 113241
  98.                                 'about_Operators' = 113242
  99.                                 'about_Parameters' = 113243
  100.                                 'about_Parsing' = 113244
  101.                                 'about_Path_Syntax' = 113245
  102.                                 'about_Pipelines' = 113246
  103.                                 'about_Preference_Variables' = 113248
  104.                                 'about_Profiles' = 113729
  105.                                 'about_Prompts' = 135179
  106.                                 'about_Properties' = 113249
  107.                                 'about_Providers' = 113250
  108.                                 'about_PSSession_Details' = 135180
  109.                                 'about_PSSessions' = 135181
  110.                                 'about_PSsnapins' = 113252
  111.                                 'about_Quoting_Rules' = 113253
  112.                                 'about_Redirection' = 113254
  113.                                 'about_Ref' = 113255
  114.                                 'about_Regular_Expressions' = 113256
  115.                                 'about_Remote' = 135182
  116.                                 'about_Remote_FAQ' = 135183
  117.                                 'about_Remote_Jobs' = 135184
  118.                                 'about_Remote_Output' = 135185
  119.                                 'about_Remote_Requirements' = 135187
  120.                                 'about_Remote_Troubleshooting' = 135188
  121.                                 'about_Requires' = 135190
  122.                                 'about_Reserved_Words' = 113258
  123.                                 'about_Return' = 136587
  124.                                 'about_Scopes' = 113260
  125.                                 'about_Script_Blocks' = 113261
  126.                                 'about_Script_Internationalization' = 113262
  127.                                 'about_Scripts' = 144310
  128.                                 'about_Session_Configurations' = 145152
  129.                                 'about_Signing' = 113268
  130.                                 'about_Special_Characters' = 113269
  131.                                 'about_Split' = 113270
  132.                                 'about_Switch' = 113271
  133.                                 'about_Throw' = 145153
  134.                                 'about_Transactions' = 135192
  135.                                 'about_Trap' = 136586
  136.                                 'about_Try_Catch_Finally' = 113444
  137.                                 'about_Type_Operators' = 113273
  138.                                 'about_Types.ps1xml' = 113274
  139.                                 'about_Variables' = 157591
  140.                                 'about_While' = 113275
  141.                                 'about_Wildcards' = 113276
  142.                                 'about_Windows_Powershell_2.0' = 113247
  143.                                 'about_Windows_PowerShell_ISE' = 135178
  144.                                 'about_WMI_Cmdlets' = 145766
  145.                                 'about_WS-Management_Cmdlets' = 145774
  146.                         }
  147.  
  148.                         $outBuffer = $null
  149.                         if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer))
  150.                         {
  151.                                 $PSBoundParameters['OutBuffer'] = 1
  152.                         }
  153.  
  154.                         $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand('Get-Help', [System.Management.Automation.CommandTypes]::Cmdlet)
  155.  
  156.                         if($Name -like 'about_*' -AND $about."$name" -AND $Online)
  157.                         {
  158.                                 Start-Process ("$OnlineBaseHelpUrl" + $about."$name")
  159.                                 continue
  160.                         }
  161.  
  162.                         $scriptCmd = {& $wrappedCmd @PSBoundParameters }
  163.                         $steppablePipeline = $scriptCmd.GetSteppablePipeline($myInvocation.CommandOrigin)
  164.                         $steppablePipeline.Begin($PSCmdlet)
  165.  
  166.                         }
  167.                 catch
  168.                 {
  169.                         throw
  170.                 }
  171.         }
  172.  
  173.        
  174.         process
  175.         {
  176.                 try
  177.                 {        
  178.                         $steppablePipeline.Process($_)
  179.                 }
  180.                 catch
  181.                 {
  182.                         throw
  183.                 }
  184.         }
  185.  
  186.        
  187.         end
  188.         {
  189.                 try
  190.                 {
  191.                         $steppablePipeline.End()
  192.                 }
  193.                 catch
  194.                 {
  195.                         throw
  196.                 }
  197.         }
  198. }

Submit a correction or amendment below (
click here to make a fresh posting)
After submitting an amendment, you'll be able to view the differences between the old and new posts easily.

Syntax highlighting:


Remember me