无法加载 PowerShell 脚本模块
Unable to load PowerShell Script 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
有关所有命令的输出的详细信息,请参见下图。
从上面的屏幕截图可以看出,导入后 PSModuleTest 没有导出命令。
只要有可用的清单,就需要在模块清单文件中声明 PSModuleTest.psm1。例如
# Script module or binary module file associated with this manifest.
RootModule = 'PSModuleTest.psm1'
如果您使用 New-ModuleManifest
创建它,这通常是清单中的第一个字段。
您的模块在被显式加载或自动加载之前不会在会话中可见。它只能在相对容易发现命令(或缓存模块中的命令)的情况下自动加载。
此命令将显示模块,包括未加载的模块:
Get-Module -ListAvailable
我正在尝试加载 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
有关所有命令的输出的详细信息,请参见下图。
从上面的屏幕截图可以看出,导入后 PSModuleTest 没有导出命令。
只要有可用的清单,就需要在模块清单文件中声明 PSModuleTest.psm1。例如
# Script module or binary module file associated with this manifest.
RootModule = 'PSModuleTest.psm1'
如果您使用 New-ModuleManifest
创建它,这通常是清单中的第一个字段。
您的模块在被显式加载或自动加载之前不会在会话中可见。它只能在相对容易发现命令(或缓存模块中的命令)的情况下自动加载。
此命令将显示模块,包括未加载的模块:
Get-Module -ListAvailable