[运维笔记] 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'
        }
    }
}
目录
相关文章
|
1月前
|
存储 运维 安全
2024.3.18隐语训练营第1讲笔记:数据可信流通,从运维信任到技术信任
数据二十条提出了要建立数据可信流通体系,使得数据可以安全的流转起来。但由于在数据流通中存在的各种风险,使得信任四要素全部遭到破坏,导致信任降级甚至崩塌。为了应对这些风险,要实现从运维信任到技术信任的转变,针对信任的各个要素,提出了解决方案。最后简要介绍了安全可信基础设施的融合布局。
43 3
|
1月前
|
运维 安全 区块链
隐语训练营第1讲笔记:数据可信流通,从运维信任到技术信任
数据可信流通需要从运维信任转向技术信任,需要安全可信基础设施的融合布局。
41 1
|
1月前
|
存储 运维 安全
[隐私计算实训营笔记]第一课——数据可信流通,从运维信任到技术信任
本课以数据要素可信流通,重构技术信任体系为主题,介绍了信任四要素,以及其对应破环的原因,因此需要从运维信任走向技术信任的路线,并最终完成安全可信基础设施的融合布局。 感谢授课人韦韬老师~
|
1月前
|
运维 安全 数据安全/隐私保护
|
1月前
|
运维 NoSQL Linux
运维排错笔记
运维排错笔记
17 1
|
2月前
|
存储 运维 监控
「笔记」某移动 SRE 运维体系交流
「笔记」某移动 SRE 运维体系交流
|
7月前
|
缓存 运维 Linux
Linux(CentOS)运维脚本工具集合
Linux(CentOS)运维脚本工具集合
148 2
|
18天前
|
运维 Linux Shell
linux运维常用命令
linux运维常用命令
|
1月前
|
监控 网络协议 Linux
Linux 命令大全 & CentOS常用运维命令
Linux 命令大全 & CentOS常用运维命令
139 0