0

我正在尝试加载 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

有关更多详细信息,请参见下图了解所有命令的输出。

在此处输入图像描述

4

1 回答 1

1

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

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

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

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

在显式加载或自动加载之前,您的模块在会话中不可见。只有在可以相对容易地发现命令(或模块中的命令被缓存)时,它才能自动加载。

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

Get-Module -ListAvailable
于 2016-08-24T20:40:03.047 回答