Невозможно импортировать пользовательский модуль

У меня есть некоторые функции PowerShell, и я хочу импортировать их на свой сервер 2008 R2 с помощью команды Import-Module. Итак, я создал файл psd1 и в psm1 использую: Export-ModuleMember -Function "*-*" -Alias *.

Однако, когда я выполняю команду:

PS C:\Windows\system32> import-module Myloader -DisableNameChecking -Verbose
VERBOSE: Loading module from path 'C:\Tools\Myloader.psd1'.
VERBOSE: Loading module from path 'C:\Tools\Myloader.psm1'.

Я ожидаю, что он должен импортировать мои функции, но это не так, и ошибки не отображаются. Затем я выполняю Get-Module -ListAvailable, моя функция указана, но нет информации о ExportedCommands

ModuleType Version    Name                                ExportedCommands
---------- -------    ----                                ----------------
Script     3.0        MyLoader
Script     3.0        MyLoader

Но когда я запускаю его на своей локальной машине, все в порядке. Кто-нибудь сталкивался с этой проблемой раньше?

Эта проблема возникает в Windows Server 2008 R2, PowerShell 5.0.


person Phong Vo    schedule 13.08.2015    source источник


Ответы (1)


При использовании манифеста модуля вы экспорт внутри файла .psd1. Удалите оператор Export-ModuleMember из файла .psm1 и убедитесь, что файл .psd1 содержит следующие строки:

ModuleToProcess   = 'MyLoader.psm1'
FunctionsToExport = '*-*'
AliasesToExport   = '*'
person Ansgar Wiechers    schedule 13.08.2015
comment
Спасибо за ваше решение @Ansgar. Я сделал то же самое с вашим предложением, но ничего не изменилось. - person Phong Vo; 14.08.2015
comment
@PhongVo Затем вам нужно показать содержимое файлов psm1 и psd1. Пожалуйста, отредактируйте свой вопрос, чтобы включить эту информацию. - person Ansgar Wiechers; 14.08.2015