2016-08-24 2 views
0

Я пытаюсь загрузить модуль сценария PowerShell. Ниже шаг я следуюНевозможно загрузить модуль сценария PowerShell

Я создал 2 файлы в папке "C: \ Windows \ system32 \ WindowsPowerShell \ v1.0 \ Modules ** PSModuleTest **"

PSModuleTest.psd1

@{ 
ModuleVersion = '1.0' 
GUID = '7e8f93e6-5bde-4043-918e-322066c5340e' 
Author = 'ravi' 
CompanyName = 'Unknown' 
Copyright = '(c) 2016 Ravi. All rights reserved.' 
FunctionsToExport = '*' 
CmdletsToExport = '*' 
VariablesToExport = '*' 
AliasesToExport = '*' 
} 

PSModuleTest.psm1

function ModuleTestFunction 
{ 
    Write-Host "Hello world!!!" 
} 

После выше двух файлов помещаются под правильная папка, в которой я тестировал, включен ли путь к модулю $ env: PSModulePath или нет, и его там. Я также подтвердил, что я не в старой версии PowerShell, введя команду $ host.

Когда я выполнил команду Get-Module, неожиданно я не вижу, что мой новый модуль загружен. Поэтому я попытался загрузить модуль, введя команду ниже, и это не сработало.

Import-Module -Name PSModuleTest -Force -Verbose 

Для получения дополнительной информации см. Ниже изображение для всего вывода команды.

enter image description here

ответ

1

Вы можете видеть из скриншота выше, что после того, как вы импортировали его PSModuleTest не имеет экспортируемых команд.

Вам необходимо объявить PSModuleTest.psm1 в файле манифеста модуля, если у вас есть доступный манифест. например

# Script module or binary module file associated with this manifest. 
RootModule = 'PSModuleTest.psm1' 

Это обычно первое поле в манифесте, если вы использовали New-ModuleManifest для его создания.

Ваш модуль не будет отображаться в сеансе, пока он не будет явно загружен или не загружен автоматически. Он может только автоматически загружаться, если команды могут быть обнаружены относительно легко (или команды в модуле кэшируются).

Эта команда покажет модули, включенные те, которые не загружены:

Get-Module -ListAvailable 
+0

Спасибо Крис. Это сработало, но мой модуль не загружается автоматически. Я что-то упустил? –

+0

Автоматически загружаться лучше всего, явно указывая команды, которые вы хотите экспортировать в манифест модуля (FunctionsToExport). –

+0

Я сделал это, но не работал. Пришлось загрузить модуль из файла $ PsHome \ Profile.ps1 . Это правильный подход? –

Смежные вопросы