Используйте командлет Get-Help для отображения справки на основе комментариев в том же формате.

Я пытаюсь использовать командлет Get-Help для отображения справки на основе комментариев в том же формате, в котором он отображает разделы справки командлета, созданные из XML-файлов. Возможность сделать это задокументирована в about_Comment_based_Help на TechNet, но когда я выполнить командлет get-help для моего сценария, я получаю только имя сценария. Любая помощь будет оценена по достоинству!

PS C:\Admin> Get-Help .\checksystem.ps1 -full
checksystem.ps1

Скрипт checksystem.ps1:

function IsAlive {
        <#
        .DESCRIPTION
        Checks to see whether a computer is pingable or not.

        .PARAMETER computername
        Specifies the computername.

        .EXAMPLE
        IsAlive -computername testwks01

        .NOTES
        This is just an example function.
        #>


            param (
                $computername
            )
            Test-Connection -count 1 -ComputerName $computername -TimeToLive 5 |
            Where-Object { $_.StatusCode -eq 0 } |
            Select-Object -ExpandProperty Address
        }

IsAlive -computername 192.168.1.1

person Shaun    schedule 12.01.2011    source источник


Ответы (3)


Это сработает, но вы пытаетесь запустить get help по скрипту. Вы добавили справку к функции. Если вы выберете источник своего сценария, а затем наберете get-help isalive, вы увидите справку по этой функции.

. .\checksystem.ps1 ; get-help isalive -full
person Andy Schneider    schedule 12.01.2011

Это работает, вам просто нужно убедиться, что у вас есть правильные заголовки. Я всегда помещал блок комментариев прямо над функцией. Я не уверен, должно ли это работать внутри функции или нет.

Ниже приведен пример одной из моих функций, которая имеет рабочую справку.

##############################################################################
#.SYNOPSIS
# Gets a COM object from the running object table (ROT) similar to GetObject
# in Visual Basic.
#
#.DESCRIPTION
# To maintain consistency with New-Object this cmdlet requires the -ComObject
# parameter to be provided and the TypeName parameter is not supported.
#
#.PARAMETER TypeName
# Not supported, but provided to maintain consistency with New-Object.
#
#.PARAMETER ComObject
# The ProgID of a registered COM object, such as MapPoint.Application.
#
#.PARAMETER Force
# If an existing object is not found, instead of writing an error, a new
# instance of the object will be created and returned.
#
#.EXAMPLE
# $olMailItem = 0
# Get-Object -ComObject Outlook.Application | %{$_.CreateItem($olMailItem).Display()}
##############################################################################
function Get-Object {

    [CmdletBinding(DefaultParameterSetName='Net')]
    param (

        [Parameter(ParameterSetName='Net', Position=1, Mandatory=$true)]
        [String]$TypeName,

        [Parameter(ParameterSetName='Com', Mandatory=$true)]
        [String]$ComObject,

        [Parameter()]
        [Switch]$Force

    )

    if ( $TypeName ) { throw '-TypeName is not supported. Use -ComObject instead.' }

    if ( $ComObject ) { 
        try {
            [System.Runtime.InteropServices.Marshal]::GetActiveObject($ComObject)
        }
        catch [System.Management.Automation.MethodInvocationException] {
            if ( $Force ) { New-Object -ComObject $ComObject }
            else { Write-Error "An active object of type $ComObject is not available." }
        }
    }

}
person Josh    schedule 12.01.2011
comment
В PowerShell версии 3 комментарии работают как внутри, так и вне функции: technet.microsoft. .com/en-us/library/dd819489.aspx - person Daniel Flippance; 22.08.2013
comment
Более того, в PowerShell 3 вам даже не нужно размечать параметр help. Просто поместите обычный комментарий над параметром, и PowerShell его вычислит. - person Josh; 23.08.2013
comment
Согласно этому technet.microsoft.com/en-us/library/dd819489.aspx комментарии вне функции применимы и к powershell 2.0. - person Raj; 17.07.2014

Примечание. Если вы забудете добавить имя параметра после .PARAMETER, ни один из ваших пользовательских текстов справки не будет отображаться при запуске get-help.

Точно так же, если вы ошибетесь в написании любого из ключевых слов, пользовательская справка не будет отображаться.

person Daniel Flippance    schedule 22.08.2013