PowerShell模块中的导出功能不可用

时间:2017-09-14 19:05:43

标签: powershell module

我有一个简单的(现在)模块,我计划保留各种功能,让我的生活更轻松。我的.psm1文件目前包含一个函数,Export-ModuleMember -Function Function-Name用于导出它。 .psd1文件包含必需的FunctionsToExport = 'Function-Name'行。

当我导入模块时,它不会在Get-Module的输出中显示为ExportedCommand,即使它显示它将在Get-Module -ListAvailable输出中导出该命令:

PS H:\> Get-Module -ListAvailable | ? {$_.Name -eq "Convenience"}


    Directory: \\home\share\My Documents\WindowsPowerShell\Modules


ModuleType Version    Name                                ExportedCommands
---------- -------    ----                                ----------------
Manifest   1.0.0      Convenience                         Function-Name


PS H:\> Get-Module | ? {$_.Name -eq "Convenience"}

ModuleType Version    Name                                ExportedCommands
---------- -------    ----                                ----------------
Manifest   1.0.0      Convenience

知道如何使我的功能可用吗?

2 个答案:

答案 0 :(得分:0)

我不知道究竟是怎么回事,但在我的模块中,我在我的psm文件中使用了这个技巧:

ls $scriptRoot\*.ps1 -recurse | foreach { . $_.FullName }
Export-ModuleMember -Function a, b, c

其中a,b和c是cmdlet,而不是函数。

答案 1 :(得分:0)

在清单中定义 RootModule 为我解决了这个问题,即在 Convenience.psd1 中:

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

# Functions to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no functions to export.
FunctionsToExport = @(
    Function-Name
)