作者:jcLee95
1. 模块清单是什么
模块清单是一个包含键和值的哈希表的文本文件,它用于描述模块的内容并确定如何处理模块
2. 如何创建模块清单:【命令】
New-ModuleManifest [-Path][-NestedModules
这里的多数选项见“内容解释”部分,因为我们会在模块清单创建好后手动去编辑文本中的相应内容。我们只需要指定 模块清单文件路径-Path 即可。你也可以使用-ModuleVersion和-Author指定你的模块版本和作者。如:
【例子】
New-ModuleManifest .jc.config.psd1 -ModuleVersion "1.0.0" -Author "JackLee95"
可以看到在当前目录下生成了一个名为jc.config.psd1的文件,即模块清单。
该文件内容和解释如下:
#
# Module manifest for module 'jc.config'
#
# Generated by: JackLee95
#
# Generated on: 2021/11/9
#
@{
# 与此清单关联的脚本模块或二进制模块文件。
# RootModule = ''
# 此模块的版本号。
ModuleVersion = '1.0.0'
# 支持的 PSEditions
# CompatiblePSEditions = @()
# 用于唯一标识该模块的标识 ID
GUID = '9d592212-31f7-4754-8038-9e15c1ca5ed2'
# 本模块的作者
Author = 'JackLee95'
# 该模块的公司或供应商
CompanyName = 'Unknown'
# 本模块的版权声明
Copyright = '(c) JackLee95. All rights reserved.'
# 本模块提供的功能描述
# Description = ''
# 此模块所需的PowerShell引擎的最低版本
# PowerShellVersion = ''
# 此模块所需的PowerShell主机的名称
# PowerShellHostName = ''
# 此模块所需的PowerShell主机的最低版本
# PowerShellHostVersion = ''
# 此模块所需的 Microsoft .NET framework 最低版本。此先决条件仅对PowerShell桌面版有效。
# DotNetframeworkVersion = ''
# 此模块所需的公共语言运行库(CLR)的最低版本。此先决条件仅对PowerShell桌面版有效。
# ClrVersion = ''
# 本模块所需的处理器架构(None、X86、Amd64)
# ProcessorArchitecture = ''
# 在导入此模块之前必须导入到全局环境中的模块
# RequiredModules = @()
# 导入此模块之前必须加载的程序集
# RequiredAssemblies = @()
# 导入此模块之前在调用者环境中运行的脚本文件(. ps1)。
# scriptsToProcess = @()
# 键入导入此模块时要加载的文件(.ps1xml)
# TypesToProcess = @()
# 导入此模块时要加载的格式文件(.ps1xml)
# FormatsToProcess = @()
# 要作为 RootModule/ModuleToProcess 中指定模块的嵌套模块导入的模块
# NestedModules = @()
# 要从此模块导出的函数,为了获得最佳性能,不要使用通配符,也不要删除条目,如果没有要导出的函数,请使用空数组。
FunctionsToExport = @()
# 要从此模块导出的cmdlet,为了获得最佳性能,请不要使用通配符,也不要删除条目,如果没有要导出的cmdlet,请使用空数组。
CmdletsToExport = @()
# 要从此模块导出的变量
VariablesToExport = '*'
# 要从此模块导出的别名为了获得最佳性能,请不要使用通配符,也不要删除条目,如果没有要导出的别名,请使用空数组。
AliasesToExport = @()
# 要从此模块导出的DSC资源
# DscResourcesToExport = @()
# 与此模块一起打包的所有模块的列表
# ModuleList = @()
# 与此模块一起打包的所有文件列表
# FileList = @()
# 要传递给根模块/模块进程中指定的模块的私有数据。这可能还包含一个PSData哈希表,其中包含PowerShell使用的附加模块元数据。
PrivateData = @{
PSData = @{
# 应用于此模块的标签。这些有助于在线图库中的模块发现。
# Tags = @()
# 此模块许可证的URL。
# LicenseUri = ''
# A URL to the main website for this project.
# ProjectUri = ''
# A URL to an icon representing this module.
# IconUri = ''
# 发布本模块的注释
# ReleaseNotes = ''
# 此模块的预发布字符串
# Prerelease = ''
# 指示模块是否要求用户明确接受安装/更新/保存的标志
# RequireLicenseAcceptance = $false
# 该模块的外部相关模块
# ExternalModuleDependencies = @()
} # PSData哈希表的结尾
} # 私有数据哈希表的结尾
# 本模块的帮助信息URI
# HelpInfoURI = ''
# 从该模块导出的命令的默认前缀。使用 import-Module -Prefix 覆盖默认前缀。
# DefaultCommandPrefix = ''
}
4. 某库的模块清单实例
@{
RootModule = 'Xxxxx.psm1'
ModuleVersion = '1.0.0'
GUID = 'xxxxxx-xxx-xxxx-xxx-xxxxxxxxxxxx'
Author = 'xxxx'
CompanyName = 'xxxx'
Copyright = '(c) 2019 xxxx, licensed under MIT License.'
Description = 'A xxxxxxx compatible PowerShell Xxxxx with custom appenders support!'
PowerShellVersion = '5.0'
HelpInfoURI = 'https://github.com/xxxx/xxxx/master/README.md'
RequiredModules = @('Xxxx')
FunctionsToExport = ''
NestedModules = @(
'SrcEntryXoggerEntry.psm1'
'SrcEntryXoggerEntryTrimmed.psm1'
'SrcAppenderColoredConsoleAppender.psm1'
'SrcAppenderFileAppender.psm1'
'SrcAppenderAppVeyorAppender.psm1'
'SrcIXxxxx.psm1'
)
PrivateData = @{
PSData = @{
Tags = @('xxxx', 'xxx', 'xxx', 'xxxx', 'xxxx', 'xxxx', 'xxxx')
LicenseUri = 'https://xx/xx/xx/xx/LICENSE'
ProjectUri = 'https://xxx/xxx/Logger'
IconUri = 'https://xxx.x.xx/icon.png'
ReleaseNotes = 'xxxx'
}
}
}


![[运维笔记] PowerShell (模块).模块清单 [运维笔记] PowerShell (模块).模块清单](http://www.mshxw.com/aiimages/31/457603.png)
