首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >无法加载PowerShell模块

无法加载PowerShell模块
EN

Stack Overflow用户
提问于 2019-05-21 00:16:32
回答 2查看 0关注 0票数 0

我创建了一个* .psm1和* .psd1文件。驻留在与文件同名的目录(文件夹)中。这个目录在c:\Program Files\WindowsPowerShell\Modules\...

Import-module报告没有错误,并Get-Module在之后显示模块。Test-ModuleManifest返回正确的清单。但是,Powershell无法识别cmdlet本身。还要注意的是Test-ModuleManifest没有显示任何导出的命令(这是正常的吗?)。

文件安全性很好,当我将* .psm1放在Autoload文件夹中时,它按预期工作。

通常的错误和错误已被检查,以及广泛的谷歌搜索。PS Gallery中的几个模块已成功导入。这家商店里没有人能够找出遗漏的东西。

这种故障发生在几个不同的平台上,所有Windows(7或10)同时具有AMD和Intel内核。

有人遇到过这个问题吗?你能解决这个问题吗?

这是我的ModuleManifest,New-ModuleManifest由ISE 生成和修改。

代码语言:javascript
复制
#模块'Convert-F2C'的模块清单
#
#生成者:我
#
#生成于:2017年4月25日
#

@{

#与此清单关联的脚本模块或二进制模块文件。
#RootModule =''

#该模块的版本号。
  ModuleVersion ='1.0'

#支持的PSEditions
#CompatiblePSEditions = @()

#ID用于唯一标识此模块
  GUID ='252b9222-9bc8-4634-b658-dd234b483152'

#本单元的作者
  作者='我'

#此模块的公司或供应商
  CompanyName ='我的公司'

#此模块的版权声明
  版权='(c)2017我。版权所有。'

#此模块提供的功能说明
  Description ='将华氏温度转换为摄氏温度'

#此模块所需的Windows PowerShell引擎的最低版本
#PowerShellVersion =''

#此模块所需的Windows PowerShell主机的名称
#PowerShellHostName =''

#此模块所需的Windows PowerShell主机的最低版本
#PowerShellHostVersion =''

#此模块所需的Microsoft .NET Framework的最低版本。这个
先决条件仅适用于PowerShell Desktop Edition。
#DotNetFrameworkVersion =''

#此要求的公共语言运行时(CLR)的最低版本 
模块。此先决条件仅适用于PowerShell Desktop Edition。
#CLRVersion =''

#此模块需要处理器架构(无,X86,Amd64)
#ErocessorArchitecture =''

#必须先导入全局环境的模块 
导入此模块
#RequiredModules = @()

#导入此模块之前必须加载的程序集
#RequiredAssemblies = @()

#在调用者环境之前运行的脚本文件(.ps1) 
导入此模块。
#ScriptsToProcess = @()

#键入导入此模块时要加载的文件(.ps1xml)
#TypeToProcess = @()

#格式化导入此模块时要加载的文件(.ps1xml)
#FormatsToProcess = @()

#要导入的模块作为指定模块的嵌套模块 
RootModule / ModuleToProcess
#NestedModules = @()

#从此模块导出的功能,为获得最佳性能,请勿使用 
通配符并且不删除该条目,如果没有则使用空数组 
要导出的功能。
  FunctionsToExport ='Convert-F2C'

#Cmdlet从此模块导出,为获得最佳性能,请勿使用 
通配符并且不删除该条目,如果没有则使用空数组 
要导出的cmdlet。
  CmdletsToExport = @()

#要从此模块导出的变量
  VariablesToExport = @()

#要从此模块导出的别名,为获得最佳性能,请勿使用 
通配符并且不删除该条目,如果没有则使用空数组 
要导出的别名。
  AliasesToExport ='*'

#DSS要从此模块导出的资源
#DscResourcesToExport = @()

#本模块打包的所有模块的列表
#ModuleList = @(Convert-F2c.psm1)

#使用此模块打包的所有文件的列表
#FileList = @()

#要传递给指定模块的私有数据 
RootModule / ModuleToProcess。这也可能包含PSData哈希表
PowerShell使用的其他模块元数据。
PrivateData = @ {

    PSData = @ {

        #应用于此模块的标签。这些有助于模块发现
 在线画廊。
        #Tags = @()

        #此模块许可证的URL。
        #LicenseUri =''

        #此项目主网站的URL。
        #ProjectUri =''

        #表示此模块的图标的URL。
        #IconUri =''

        #该模块的ReleaseNotes
          ReleaseNotes ='初始创建,首先表现出模块 
 作者'

    } #PSData哈希表的结束

}#PrivateData哈希表的结束

#HelpInfo此模块的URI
#HelpInfoURI =''

#从该模块导出的命令的缺省前缀。覆盖
 使用Import-Module -Prefix的默认前缀。
#DefaultCommandPrefix =''

}
EN

回答 2

Stack Overflow用户

发布于 2019-05-21 08:52:17

我通过设置RootModule参数让它工作。执行此操作不在任何文献或参考文献中,但模块现在正常运行。

代码语言:javascript
复制
# Script module or binary module file associated with this manifest.
  RootModule = 'ModuleName (no extension)'
票数 0
EN

Stack Overflow用户

发布于 2019-05-21 09:42:59

如果您有这些文件模块:

  • MyModule.psd1
  • MyModule.psm1
  • ExtraModule.psm1

你需要更新这一行:

代码语言:javascript
复制
#NestedModules = @()

对此:

代码语言:javascript
复制
NestedModules = @('MyModule','ExtraModule')

并确保您FunctionsToExport列出所有功能,或者您可以使用FunctionsToExport = '*'它们全部导出。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100009040

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档