Powershell — Export-ModuleMember не работает

Я новичок в PowerShell и только начал создавать свой собственный модуль. Я создал файлы сценариев и манифеста и поместил их в каталог C:\Program Files\WindowsPowerShell\Modules\, который указан в списке команды $env:PSModulePath.

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

Я использую команду Import-Module:

Import-Module MyModule

Мой файл сценария выглядит примерно так:

function MyFunction() {}

Export-ModuleMember -Function *

И мой манифест выглядит так:

FunctionsToExport = '*'

Нужно ли мне записывать все экспортированные функции в манифест?

Спасибо за помощь.


person Mica    schedule 15.02.2017    source источник


Ответы (2)


Итак, через несколько часов я нашел ответ: ExportedCommand пустой пользовательский модуль PowerShell

Вам нужно поместить RootModule = 'MyModule.psm1' в манифест.

Хорошего дня !

person Mica    schedule 15.02.2017

для меня сработало следующее (на основе ответа Мики):

  1. Измените RootModule, как предложил Mica в файле psd1, на файл psm1.
  2. Используйте команду Import-Module -Force MyModule.

(с флагом «-Force»: этот параметр вызывает загрузку или перезагрузку модуля поверх текущего, как указано в https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/import-module?view=powershell-7.1#examples)

person barper    schedule 27.04.2021