栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

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

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

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

作者:jcLee95


1. 模块清单是什么

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

2. 如何创建模块清单:

【命令】

New-ModuleManifest
   [-Path] 
   [-NestedModules ]
   [-Guid ]
   [-Author ]
   [-CompanyName ]
   [-Copyright ]
   [-RootModule ]
   [-ModuleVersion ]
   [-Description ]
   [-ProcessorArchitecture ]
   [-PowerShellVersion ]
   [-CLRVersion ]
   [-DotNetframeworkVersion ]
   [-PowerShellHostName ]
   [-PowerShellHostVersion ]
   [-RequiredModules ]
   [-TypesToProcess ]
   [-FormatsToProcess ]
   [-scriptsToProcess ]
   [-RequiredAssemblies ]
   [-FileList ]
   [-ModuleList ]
   [-FunctionsToExport ]
   [-AliasesToExport ]
   [-VariablesToExport ]
   [-CmdletsToExport ]
   [-DscResourcesToExport ]
   [-CompatiblePSEditions ]
   [-PrivateData ]
   [-Tags ]
   [-ProjectUri ]
   [-LicenseUri ]
   [-IconUri ]
   [-ReleaseNotes ]
   [-Prerelease ]
   [-RequireLicenseAcceptance]
   [-ExternalModuleDependencies ]
   [-HelpInfoUri ]
   [-PassThru]
   [-DefaultCommandPrefix ]
   [-WhatIf]
   [-/confirm/i] 
   []
 

这里的多数选项见“内容解释”部分,因为我们会在模块清单创建好后手动去编辑文本中的相应内容。我们只需要指定 模块清单文件路径-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 = @(
        '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'
        }
    }

}
转载请注明:文章转载自 www.mshxw.com
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号