Модуль PowerShell неправильно отображает команды - PullRequest
0 голосов
/ 12 июня 2018

У меня странная проблема с тех пор, как я перекомпоновал свой модуль PowerShell.

Файл cfsdevops.psm1 довольно прост, он просто автоматически импортирует все файлы .ps1 в /private и /public.

#Get public and private function definition files.
$Public  = @( Get-ChildItem -Path $PSScriptRoot\Public\*.ps1 -ErrorAction SilentlyContinue )
$Private = @( Get-ChildItem -Path $PSScriptRoot\Private\*.ps1 -ErrorAction SilentlyContinue )

#Dot source the files
Foreach($import in @($Public + $Private))
{
    Try
    {
        . $import.fullname
    }
    Catch
    {
        Write-Error -Message "Failed to import function $($import.fullname): $_"
    }
}

Export-ModuleMember -Function $Public.Basename

Как только я публикую все файлы в каталоге пути к моему модулю и пытаюсь выполнить команды, я получаю сообщение об ошибке, указывающее, что это недопустимая команда:

PS C:\> get-podconfig
get-podconfig : The term 'get-podconfig' 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.
At line:1 char:1
+ get-podconfig
+ ~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (get-podconfig:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

Однако, когда я затемзапустите «Get-Command -Module cfsdevops», в нем перечислены все доступные команды и все отлично работает в этом сеансе.

PS C:\> Get-Command -Module cfsdevops

CommandType     Name                    Version    Source
-----------     ----                    -------    ------
Function        add-deploymanifest      4.1.0      cfsdevops
Function        add-podconfig           4.1.0      cfsdevops
Function        add-tenant              4.1.0      cfsdevops
Function        gen-podconfig           4.1.0      cfsdevops
Function        get-aobcredential       4.1.0      cfsdevops
Function        get-podconfig           4.1.0      cfsdevops
Function        get-servertraffic       4.1.0      cfsdevops
Function        new-deploymanifest      4.1.0      cfsdevops
Function        publish-octopus         4.1.0      cfsdevops
Function        publish-webconfig       4.1.0      cfsdevops
Function        set-aobcredential       4.1.0      cfsdevops
Function        set-octopusapikey       4.1.0      cfsdevops

1 Ответ

0 голосов
/ 12 июня 2018

Ваш Get-Command -Module cfsdevops показывает не get-podconfig, а gen-podconfig.Поэтому сообщение об ошибке имеет смысл.

Проверьте имя файла сценария и манифест модуля PowerShell (psd1-файл) на наличие опечаток.

...