Powershell 基于注释的脚本帮助

Powershell Comment-Based Help for scripts

我无法在我的脚本中访问基于评论的帮助。

我使用的命令是这样的:

PS C:\MyDir> Get-Help .\do-something.ps1 -Full (做点什么。ps1 在 MyDir 中)。

我的问题是:

我是否应该期望此命令在 ISE 控制台窗格和 PS 控制台中同样起作用?

我查看了 Microsoft Documentation 并提炼出以下内容。我错过了什么吗?是否存在基于评论的帮助根本不起作用的情况?

PowerShell 不会解析脚本的基于注释的帮助,除非:

  1. 基于评论的帮助部分从 脚本,或者前面只有空行。

  2. 如果基于注释的帮助部分后跟函数声明,则该部分后至少有两个空行。

  3. 脚本文件位于 $env:PATH 中的目录中。如果它不在 $env:Path.

  4. 中,则必须使用 -Path 参数
  5. 仅使用有效的基于评论的帮助关键字。如果您拼错了一个,Get-Help 命令将无声地失败而不会出现任何错误。

  6. Get-Help 命令使用了正确的语法,例如:

PS C:\MyDir> Get-Help .\do-something.ps1 -Full

  1. 基于评论的帮助部分格式正确,例如:

位于脚本文件的顶部:

<#
.SYNOPSIS
Does something.

.DESCRIPTION
Performs tasks and produces output.
#>

Should I expect this command to work the same in the ISE Console Pane as well as the PS Console?

是的。基于评论的帮助由 PowerShell (system.management.automation.dll) 而非主机解析。

Are there any scenarios where Comment-Based Help simply does not work?

基于注释的帮助仅在脚本可以执行时才有效。如果执行策略或 AppLocker 等应用程序控制禁止执行脚本,或者如果脚本中存在语法错误,Get-Help 无法显示基于评论的帮助。