[运维笔记] PowerShell (模块).模块清单

简介: [运维笔记] PowerShell (模块).模块清单

[运维笔记] PowerShell (模块).模块清单

模块清单是一个包含键和值的哈希表的文本文件,它用于描述模块的内容并确定如何处理模块

2. 如何创建模块清单

【命令】

New-ModuleManifest
   [-Path] <String>
   [-NestedModules <Object[]>]
   [-Guid <Guid>]
   [-Author <String>]
   [-CompanyName <String>]
   [-Copyright <String>]
   [-RootModule <String>]
   [-ModuleVersion <Version>]
   [-Description <String>]
   [-ProcessorArchitecture <ProcessorArchitecture>]
   [-PowerShellVersion <Version>]
   [-CLRVersion <Version>]
   [-DotNetFrameworkVersion <Version>]
   [-PowerShellHostName <String>]
   [-PowerShellHostVersion <Version>]
   [-RequiredModules <Object[]>]
   [-TypesToProcess <String[]>]
   [-FormatsToProcess <String[]>]
   [-ScriptsToProcess <String[]>]
   [-RequiredAssemblies <String[]>]
   [-FileList <String[]>]
   [-ModuleList <Object[]>]
   [-FunctionsToExport <String[]>]
   [-AliasesToExport <String[]>]
   [-VariablesToExport <String[]>]
   [-CmdletsToExport <String[]>]
   [-DscResourcesToExport <String[]>]
   [-CompatiblePSEditions <String[]>]
   [-PrivateData <Object>]
   [-Tags <String[]>]
   [-ProjectUri <Uri>]
   [-LicenseUri <Uri>]
   [-IconUri <Uri>]
   [-ReleaseNotes <String>]
   [-Prerelease <String>]
   [-RequireLicenseAcceptance]
   [-ExternalModuleDependencies <String[]>]
   [-HelpInfoUri <String>]
   [-PassThru]
   [-DefaultCommandPrefix <String>]
   [-WhatIf]
   [-Confirm] 
   [<CommonParameters>]

这里的多数选项见“内容解释”部分,因为我们会在模块清单创建好后手动去编辑文本中的相应内容。我们只需要指定 模块清单文件路径-Path 即可。你也可以使用-ModuleVersion-Author指定你的模块版本和作者。如:

【例子】

New-ModuleManifest .\jc.config.psd1 -ModuleVersion "1.0.0" -Author "JackLee95"

可以看到在当前目录下生成了一个名为jc.config.psd1的文件,即模块清单

3. 模块清单.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 = @(
        'Src\Entry\XoggerEntry.psm1'
        'Src\Entry\XoggerEntryTrimmed.psm1'
        'Src\Appender\ColoredConsoleAppender.psm1'
        'Src\Appender\FileAppender.psm1'
        'Src\Appender\AppVeyorAppender.psm1'
        'Src\IXxxxx.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'
        }
    }
}
目录
相关文章
|
2月前
|
运维 Java 关系型数据库
【Java笔记+踩坑】SpringBoot基础2——运维实用
SpringBoot程序的打包与运行、临时配置、多环境配置、日志
【Java笔记+踩坑】SpringBoot基础2——运维实用
|
3月前
|
应用服务中间件 API 网络安全
运维笔记:宿主机转发实现多容器复用CA证书
运维笔记:宿主机转发实现多容器复用CA证书
37 4
|
3月前
|
数据采集 运维 监控
运维笔记:流编辑器sed命令用法解析
运维笔记:流编辑器sed命令用法解析
53 5
|
3月前
|
运维 安全 网络安全
运维笔记:基于阿里云跨地域服务器通信
运维笔记:基于阿里云跨地域服务器通信
142 1
|
3月前
【Azure Function】Function App和Powershell 集成问题, 如何安装PowerShell的依赖模块
【Azure Function】Function App和Powershell 集成问题, 如何安装PowerShell的依赖模块
|
4月前
|
运维 数据安全/隐私保护 Python
Python基于telnetlib模块实现交换机全面巡检自动化运维项目
Python基于telnetlib模块实现交换机全面巡检自动化运维项目
135 14
|
3月前
|
SQL 存储 关系型数据库
运维笔记.MySQL.基于mysqldump数据备份与恢复
运维笔记.MySQL.基于mysqldump数据备份与恢复
48 0
|
4月前
|
运维 Linux 应用服务中间件
Linux之自动化运维工具ansible、ansible模块(2)
Linux之自动化运维工具ansible、ansible模块(2)
|
4月前
|
运维 Linux Shell
Linux之自动化运维工具ansible、ansible模块(1)
Linux之自动化运维工具ansible、ansible模块(1)
|
6月前
|
运维 监控 druid
平台组成-运维监控模块
运维监控模块关注服务器、应用、数据库及Minio等状态,包括自研和开源组件。