Вложенная функция не распознана как имя командлета

Ниже представлен интересующий файл (сильно упрощенные версии):

main-func.psm1:

function main-func
{
    [CmdletBinding()]
    param 
    ()

    Write-Verbose "In main-func"
    main-workflow
}

workflow main-workflow
{
    [CmdletBinding()]
    param 
    ()

    Write-Verbose "In main-workflow"
    func-outer
}

function func-outer
{
    [CmdletBinding()]
    param
    ()

    Write-Verbose "In func-outer"
    func-inner
}

function func-inner
{
    [CmdletBinding()]
    param
    ()

    Write-Verbose "In func-inner"
}

Export-ModuleMember -function main-func

Теперь я открываю Windows Powershell и выполняю следующие команды:

> Import-Module .\main-func.psm1
> main-func -Verbose

Вывод, который я получаю, выглядит следующим образом:

VERBOSE: In main-func
VERBOSE: [localhost]:In main-workflow
VERBOSE: [localhost]:In func-outer
The term 'func-inner' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a
path was included, verify that the path is correct and try again.
    + CategoryInfo          : ObjectNotFound: (func-inner:String) [func-outer], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException,func-outer
    + PSComputerName        : [localhost]

Но если я заменю main-workflow в функции main-func на func-outer, то это сработает.

Я новичок в Powershell и рабочих процессах, и использование рабочих процессов является обязательным требованием. Может кто-нибудь объяснить, что здесь не так?


person bittusarkar    schedule 25.05.2015    source источник