无法加载PowerShell脚本模块

时间:2016-08-24 20:14:29

标签: powershell powershell-module

我正在尝试加载PowerShell脚本模块。以下是我正在遵循的步骤

我在“C:\ windows \ system32 \ WindowsPowerShell \ v1.0 \ Modules ** PSModuleTest **”文件夹下创建了2个文件。

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中,以及它是否存在。我还通过输入$ host命令验证我没有使用旧版本的PowerShell。

当我执行Get-Module命令时,令人惊讶的是我没有看到我的新模块已加载。所以我尝试通过输入以下命令来加载模块,但它没有用。

Import-Module -Name PSModuleTest -Force -Verbose

有关详细信息,请参阅下图以获取所有命令的输出。

enter image description here

1 个答案:

答案 0 :(得分:1)

您可以从上面的屏幕截图中看到,在您导入之后,PSModuleTest没有导出的命令。

只要您有可用的清单,就需要在模块清单文件中声明PSModuleTest.psm1。 e.g。

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

如果您使用New-ModuleManifest创建它,通常是清单中的第一个字段。

在明确加载或自动加载之前,您的模块在会话中不可见。如果可以相对容易地发现命令(或者模块中的命令被缓存),它只能自动加载。

此命令将显示模块,包括未加载的模块:

Get-Module -ListAvailable