New-ModuleManifest

创建新的模块清单。

语法

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>]

说明

cmdlet New-ModuleManifest () .psd1 文件创建新的模块清单,填充其值,并将清单文件保存在指定路径中。

模块作者可以使用此 cmdlet 来为其模块创建清单。 模块清单是包含 .psd1 哈希表的文件。 哈希表中的键和值用于描述该模块的内容和属性、定义先决条件以及确定如何处理组件。 模块不需要清单。

New-ModuleManifest 创建包含所有常用清单键的清单,以便可以将默认输出用作清单模板。 若要添加或更改值,或者要添加此 cmdlet 未添加的模块键,请在文本编辑器中打开生成的文件。

PathPassThru 外,每个参数都会创建模块清单键及其值。 在模块清单中,仅 ModuleVersion 键是必需的。 除非在参数说明中指定,否则如果省略命令中的参数, New-ModuleManifest 则会为没有效果的关联值创建注释字符串。

在 PowerShell 2.0 中,除了必需的参数值外, New-ModuleManifest 还会提示输入命令中未指定的常用参数的值。 从 PowerShell 3.0 开始, New-ModuleManifest 仅当未指定所需的参数值时,才会提示。

如果计划在 PowerShell 库 中发布模块,则清单必须包含某些属性的值。 有关详细信息,请参阅库文档中发布到PowerShell 库的项的必需元数据

示例

示例 1 - Create新的模块清单

此示例在 Path 参数指定的文件中创建新的模块清单。 PassThru 参数将输出发送到管道和 文件。

该输出显示清单中的所有键的默认值。

New-ModuleManifest -Path C:\ps-test\Test-Module\Test-Module.psd1 -PassThru

#
# Module manifest for module 'Test-Module'
#
# Generated by: ContosoAdmin
#
# Generated on: 7/12/2019
#

@{

# Script module or binary module file associated with this manifest.
# RootModule = ''

# Version number of this module.
ModuleVersion = '0.0.1'

# Supported PSEditions
# CompatiblePSEditions = @()

# ID used to uniquely identify this module
GUID = 'e1826c6e-c420-4eef-9ac8-185e3669ca6a'

# Author of this module
Author = 'ContosoAdmin'

# Company or vendor of this module
CompanyName = 'Unknown'

# Copyright statement for this module
Copyright = '(c) ContosoAdmin. All rights reserved.'

# Description of the functionality provided by this module
# Description = ''

# Minimum version of the PowerShell engine required by this module
# PowerShellVersion = ''

# Name of the PowerShell host required by this module
# PowerShellHostName = ''

# Minimum version of the PowerShell host required by this module
# PowerShellHostVersion = ''

# Minimum version of Microsoft .NET Framework required by this module. This prerequisite is valid for the PowerShell Desktop edition only.
# DotNetFrameworkVersion = ''

# Minimum version of the common language runtime (CLR) required by this module. This prerequisite is valid for the PowerShell Desktop edition only.
# CLRVersion = ''

# Processor architecture (None, X86, Amd64) required by this module
# ProcessorArchitecture = ''

# Modules that must be imported into the global environment prior to importing this module
# RequiredModules = @()

# Assemblies that must be loaded prior to importing this module
# RequiredAssemblies = @()

# Script files (.ps1) that are run in the caller's environment prior to importing this module.
# ScriptsToProcess = @()

# Type files (.ps1xml) to be loaded when importing this module
# TypesToProcess = @()

# Format files (.ps1xml) to be loaded when importing this module
# FormatsToProcess = @()

# Modules to import as nested modules of the module specified in RootModule/ModuleToProcess
# NestedModules = @()

# Functions to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no functions to export.
FunctionsToExport = @()

# Cmdlets to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no cmdlets to export.
CmdletsToExport = @()

# Variables to export from this module
VariablesToExport = '*'

# Aliases to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no aliases to export.
AliasesToExport = @()

# DSC resources to export from this module
# DscResourcesToExport = @()

# List of all modules packaged with this module
# ModuleList = @()

# List of all files packaged with this module
# FileList = @()

# Private data to pass to the module specified in RootModule/ModuleToProcess. This may also contain a PSData hashtable with additional module metadata used by PowerShell.
PrivateData = @{

    PSData = @{

        # Tags applied to this module. These help with module discovery in online galleries.
        # Tags = @()

        # A URL to the license for this module.
        # LicenseUri = ''

        # A URL to the main website for this project.
        # ProjectUri = ''

        # A URL to an icon representing this module.
        # IconUri = ''

        # ReleaseNotes of this module
        # ReleaseNotes = ''

        # Prerelease string of this module
        # Prerelease = ''

        # Flag to indicate whether the module requires explicit user acceptance for install/update/save
        # RequireLicenseAcceptance = $false

        # External dependent modules of this module
        # ExternalModuleDependencies = @()

    } # End of PSData hashtable

} # End of PrivateData hashtable

# HelpInfo URI of this module
# HelpInfoURI = ''

# Default prefix for commands exported from this module. Override the default prefix using Import-Module -Prefix.
# DefaultCommandPrefix = ''

}

示例 2 - Create具有一些预填充设置的新清单

此示例创建新的模块清单。 它使用 PowerShellVersionAliasesToExport 参数将值添加到相应的清单键。

New-ModuleManifest -PowerShellVersion 1.0 -AliasesToExport JKBC, DRC, TAC -Path C:\ps-test\ManifestTest.psd1

示例 3 - Create需要其他模块的清单

此示例使用字符串格式指定 BitsTransfer 模块的名称,使用哈希表格式指定 PSScheduledJob 模块的名称、GUID 和版本。

$moduleSettings = @{
  RequiredModules = ("BitsTransfer", @{
    ModuleName="PSScheduledJob"
    ModuleVersion="1.0.0.0";
    GUID="50cdb55f-5ab7-489f-9e94-4ec21ff51e59"
  })
  Path = 'C:\ps-test\ManifestTest.psd1'
}
New-ModuleManifest @moduleSettings

此示例演示如何使用 ModuleListRequiredModulesNestedModules 参数的字符串和哈希表格式。 可以将字符串和哈希表组合到同一参数值中。

示例 4 - Create支持可更新帮助的清单

此示例使用 HelpInfoUri 参数在模块清单中创建 HelpInfoUri 密钥。 参数和键的值必须以 httphttps 开头。 此值会向可更新帮助系统指示该模块的 HelpInfo XML 可更新帮助信息文件的位置。

$moduleSettings = @{
  HelpInfoUri = 'http://https://go.microsoft.com/fwlink/?LinkID=603'
  Path = 'C:\ps-test\ManifestTest.psd1'
}
New-ModuleManifest @moduleSettings

有关可更新帮助的信息,请参阅 about_Updatable_Help。 有关 HelpInfo XML 文件的信息,请参阅 支持可更新的帮助

示例 5 - 获取模块信息

此示例演示如何获取模块的配置值。 模块清单中的值反映在模块对象的属性值中。

cmdlet Get-Module 用于使用 List 参数获取 Microsoft.PowerShell.Diagnostics 模块。 命令将模块发送到 cmdlet, Format-List 以显示模块对象的所有属性和值。

Get-Module Microsoft.PowerShell.Diagnostics -List | Format-List -Property *

LogPipelineExecutionDetails : False
Name                        : Microsoft.PowerShell.Diagnostics
Path                        : C:\Windows\system32\WindowsPowerShell\v1.0\Modules\Microsoft.PowerShell.Diagnostics\Micro
                              soft.PowerShell.Diagnostics.psd1
Definition                  :
Description                 :
Guid                        : ca046f10-ca64-4740-8ff9-2565dba61a4f
HelpInfoUri                 : https://go.microsoft.com/fwlink/?LinkID=210596
ModuleBase                  : C:\Windows\system32\WindowsPowerShell\v1.0\Modules\Microsoft.PowerShell.Diagnostics
PrivateData                 :
Version                     : 3.0.0.0
ModuleType                  : Manifest
Author                      : Microsoft Corporation
AccessMode                  : ReadWrite
ClrVersion                  : 4.0
CompanyName                 : Microsoft Corporation
Copyright                   : Microsoft Corporation. All rights reserved.
DotNetFrameworkVersion      :
ExportedFunctions           : {}
ExportedCmdlets             : {[Get-WinEvent, Get-WinEvent], [Get-Counter, Get-Counter], [Import-Counter,
                              Import-Counter], [Export-Counter, Export-Counter]...}
ExportedCommands            : {[Get-WinEvent, Get-WinEvent], [Get-Counter, Get-Counter], [Import-Counter,
                              Import-Counter], [Export-Counter, Export-Counter]...}
FileList                    : {}
ModuleList                  : {}
NestedModules               : {}
PowerShellHostName          :
PowerShellHostVersion       :
PowerShellVersion           : 3.0
ProcessorArchitecture       : None
Scripts                     : {}
RequiredAssemblies          : {}
RequiredModules             : {}
RootModule                  :
ExportedVariables           : {}
ExportedAliases             : {}
ExportedWorkflows           : {}
SessionState                :
OnRemove                    :
ExportedFormatFiles         : {C:\Windows\system32\WindowsPowerShell\v1.0\Event.format.ps1xml,
                              C:\Windows\system32\WindowsPowerShell\v1.0\Diagnostics.format.ps1xml}
ExportedTypeFiles           : {C:\Windows\system32\WindowsPowerShell\v1.0\GetEvent.types.ps1xml}

参数

-AliasesToExport

指定模块导出的别名。 允许使用通配符。

可以使用此参数来限制由模块导出的别名。 它可以从导出的别名列表中删除别名,但无法向列表中添加别名。

如果省略此参数,New-ModuleManifest则会创建一个值为 (所有) 的 *AliasesToExport 键,这意味着模块中定义的所有别名都由清单导出。

Type:String[]
Position:Named
Default value:* (all)
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-Author

指定模块作者。

如果省略此参数, New-ModuleManifest 则创建具有当前用户名称的 Author 密钥。

Type:String
Position:Named
Default value:Name of the current user
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ClrVersion

指定模块需要的 Microsoft .NET Framework 的公共语言运行时 (CLR) 的最低版本。

Type:Version
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-CmdletsToExport

指定模块导出的 cmdlet。 允许使用通配符。

可以使用此参数来限制由模块导出的 cmdlet。 它可以从导出的 cmdlet 列表中删除 cmdlet,但不能将 cmdlet 添加到列表中。

如果省略此参数,New-ModuleManifest则会创建一个值为 (所有) 的 *CmdletsToExport 密钥,这意味着模块中定义的所有 cmdlet 都由清单导出。

Type:String[]
Position:Named
Default value:* (all)
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-CompanyName

标识创建了该模块的公司或供应商。

如果省略此参数, New-ModuleManifest 则会创建值为“Unknown”的 CompanyName 密钥。

Type:String
Position:Named
Default value:"Unknown"
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-CompatiblePSEditions

指定模块的兼容 PSEditions。 有关 PSEdition 的信息,请参阅 具有兼容 PowerShell 版本的模块

Type:String[]
Accepted values:Desktop, Core
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Confirm

提示你在运行 cmdlet 之前进行确认。

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

指定模块的版权声明。

如果省略此参数,New-ModuleManifest则创建值为 的 (c) <year> <username>. All rights reserved.Copyright 键,其中 <year> 是当前年份,<username>Author 键的值。

Type:String
Position:Named
Default value:(c) <year> <username>. All rights reserved.
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DefaultCommandPrefix

指定在模块中导入会话时所有命令的名词前面附加的前缀。 输入前缀字符串。 前缀可防止用户会话中的命令名称发生冲突。

模块用户可以通过指定 cmdlet 的 Import-Module Prefix 参数来替代此前缀

此参数是在 PowerShell 3.0 中引入的。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Description

描述模块的内容。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DotNetFrameworkVersion

指定模块需要的 Microsoft .NET Framework 的最低版本。

Type:Version
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DscResourcesToExport

指定模块导出Desired State Configuration (DSC) 资源。 允许使用通配符。

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-ExternalModuleDependencies

此模块所依赖的外部模块的列表。

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-FileList

指定模块中包括的所有项。

此键专门用于充当模块清单。 发布模块时,会包含密钥中列出的文件,但不会自动导出任何函数。

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-FormatsToProcess

指定导入模块时运行 (.ps1xml) 格式化文件。

导入模块时,PowerShell 会运行 Update-FormatData 包含指定文件的 cmdlet。 由于格式化文件未限定范围,因此它们会影响会话中的所有会话状态。

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-FunctionsToExport

指定模块导出的函数。 允许使用通配符。

可以使用此参数来限制由模块导出的函数。 它可以从导出的别名列表中删除函数,但不能将函数添加到列表中。

如果省略此参数,New-ModuleManifest则会创建一个值为 * (所有) 的 FunctionsToExport 键,这意味着模块中定义的所有函数都由清单导出。

Type:String[]
Position:Named
Default value:* (all)
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-Guid

指定模块的唯一标识符。 GUID 可用于区分具有相同名称的模块。

如果省略此参数, New-ModuleManifest 则会在清单中创建 GUID 密钥,并为值生成 GUID

若要在 PowerShell 中创建新的 GUID ,请键入 [guid]::NewGuid()

Type:Guid
Position:Named
Default value:A GUID generated for the module
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-HelpInfoUri

指定模块的 HelpInfo XML 文件的 Internet 地址。 输入以 http 或 https 开头的统一资源标识符 (URI) 。

HelpInfo XML 文件支持 PowerShell 3.0 中引入的可更新帮助功能。 它包含有关该模块的可下载帮助文件的位置,以及每个支持的区域设置的最新帮助文件的版本号的信息。

有关可更新帮助的信息,请参阅 about_Updatable_Help。 有关 HelpInfo XML 文件的信息,请参阅 支持可更新的帮助

此参数是在 PowerShell 3.0 中引入的。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-IconUri

指定模块图标的 URL。 指定的图标显示在模块的库网页上。

Type:Uri
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-LicenseUri

指定模块的许可条款的 URL。

Type:Uri
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ModuleList

列出此模块中包括的所有模块。

以字符串形式或具有 ModuleNameModuleVersion 键的哈希表形式输入每个模块名称。 哈希表也可能具有一个可选的 GUID 键。 可以将字符串和哈希表组合到参数值中。

此键专门用于充当模块清单。 此键的值中列出的模块不会自动处理。

Type:Object[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ModuleVersion

指定模块的版本。

此参数不是必需的,但清单中需要 ModuleVersion 密钥。 如果省略此参数, New-ModuleManifest 则创建值为 1.0 的 ModuleVersion 键。

Type:Version
Position:Named
Default value:1.0
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-NestedModules

指定导入到模块会话状态 (.psm1) 和二进制模块 .dll () 的脚本模块。 NestedModules 键中的文件按它们在值中的列出顺序运行。

以字符串形式或具有 ModuleNameModuleVersion 键的哈希表形式输入每个模块名称。 哈希表也可能具有一个可选的 GUID 键。 可以将字符串和哈希表组合到参数值中。

通常情况下,嵌套模块包含根模块需用于内部处理的命令。 默认情况下,嵌套模块中的命令从模块的会话状态导出到调用方会话状态,但根模块可以限制它导出的命令。 例如,通过使用 Export-ModuleMember 命令。

模块会话状态中的嵌套模块可供根模块使用,但它们不会由 Get-Module 调用方会话状态中的命令返回。

NestedModules 键中列出的脚本 (.ps1) 在模块的会话状态中运行,而不是在调用者的会话状态中运行。 若要在调用方的会话状态中运行脚本,请在清单的 ScriptsToProcess 键的值中列出脚本文件名。

Type:Object[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-PassThru

将生成的模块清单写入控制台并创建 .psd1 文件。 默认情况下,此 cmdlet 不会生成任何输出。

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Path

指定新模块清单的路径和文件名。 输入文件扩展名为 .psd1 的路径和文件名,例如 $pshome\Modules\MyModule\MyModule.psd1Path 参数是必需的。

如果指定现有文件的路径, New-ModuleManifest 则替换文件而不发出警告,除非该文件具有只读属性。

清单应位于模块的目录中,清单文件名应与模块目录名称相同,但文件扩展名为 .psd1

注意

不能使用 变量(如 $PSHOME$HOME)来响应 Path 参数值的提示。 若要使用变量,请将 Path 参数包含在命令中。

Type:String
Position:1
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-PowerShellHostName

指定模块所需的 PowerShell 主机程序的名称。 输入主机程序的名称,例如Windows PowerShell ISE 主机ConsoleHost。 不允许使用通配符。

若要查找主机程序的名称,请在程序中键入 $Host.Name

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-PowerShellHostVersion

指定与模块一起使用的 PowerShell 主机程序的最低版本。 输入版本号,例如 1.1。

Type:Version
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-PowerShellVersion

指定适用于此模块的 PowerShell 的最低版本。 例如,可以输入 1.0、2.0 或 3.0 作为参数的值。 它必须采用 X.X 格式。 例如,如果提交 5,PowerShell 将引发错误。

Type:Version
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Prerelease

预发布此模块的字符串。 添加预发行版字符串会将模块标识为预发行版本。 当模块发布到PowerShell 库时,此数据用于标识预发布包。 若要从库获取预发行版包,必须将 AllowPrerelease 参数与 PowerShellGet 命令 Find-ModuleInstall-ModuleUpdate-ModuleSave-Module结合使用。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-PrivateData

指定在导入模块时传递给模块的数据。

Type:Object
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ProcessorArchitecture

指定模块需要的处理器体系结构。 有效值为 x86、AMD64、IA64、MSIL 和 None (未知或未指定) 。

Type:ProcessorArchitecture
Accepted values:None, MSIL, X86, IA64, Amd64, Arm
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ProjectUri

指定有关此项目的网页的 URL。

Type:Uri
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ReleaseNotes

指定发行说明。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-RequiredAssemblies

指定模块所需的程序集 (.dll) 文件。 输入程序集文件名。 PowerShell 在更新类型或格式、导入嵌套模块或导入 在 RootModule 键的值中指定的模块文件之前加载指定的程序集。

使用此参数可列出模块所需要的所有程序集,包括必须加载以更新在 FormatsToProcessTypesToProcess 键中列出的任何格式设置文件或类型文件的程序集,即使另将这些程序集列为 NestedModules 键中的二进制模块也是如此。

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-RequiredModules

指定必须处于全局会话状态的模块。 如果所需的模块不处于全局会话状态,PowerShell 会导入它们。 如果所需的模块不可用,则 Import-Module 命令将失败。

以字符串形式或具有 ModuleNameModuleVersion 键的哈希表形式输入每个模块名称。 哈希表也可能具有一个可选的 GUID 键。 可以将字符串和哈希表组合到参数值中。

在 PowerShell 2.0 中, Import-Module 不会自动导入所需的模块。 它只会验证所需模块是否处于全局会话状态。

Type:Object[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-RequireLicenseAcceptance

指示模块是否需要显式用户接受安装、更新或保存的标志。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-RootModule

指定模块的主文件或根文件。 输入脚本 () .ps1 、脚本模块 () .psm1 、模块清单 (.psd1) 、程序集 (.dll) 、cmdlet 定义 XML 文件 (.cdxml) 或工作流 (.xaml) 的文件名。 导入模块时,从根模块文件导出的成员将导入到调用方的会话状态中。

如果模块具有清单文件,并且未在 RootModule 键中指定根文件,则清单将成为模块的主文件,并且模块成为清单模块 (ModuleType = Manifest) 。

若要从 .psm1 具有清单的模块中的 或 .dll 文件中导出成员,必须在清单中的 RootModuleNestedModules 键的值中指定这些文件的名称。 否则,不会导出其成员。

注意

在 PowerShell 2.0 中,此密钥称为 ModuleToProcess。 可以使用 RootModule 参数名称或其 ModuleToProcess 别名。

Type:String
Aliases:ModuleToProcess
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ScriptsToProcess

指定脚本 (.ps1 导入模块时在调用方会话状态中运行的) 文件。 可以像使用登录脚本一样使用这些脚本来准备环境。

若要指定在模块的会话状态中运行的脚本,请使用 NestedModules 键。

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Tags

指定标记的数组。

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-TypesToProcess

指定导入模块时运行 (.ps1xml) 的类型文件。

导入模块时,PowerShell 会 Update-TypeData 运行包含指定文件的 cmdlet。 由于类型文件未限定范围,因此它们会影响会话中的所有会话状态。

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-VariablesToExport

指定模块导出的变量。 允许使用通配符。

可以使用此参数来限制由模块导出的变量。 它可以从导出的变量列表中删除变量,但不能将变量添加到列表中。

如果省略此参数,New-ModuleManifest则会创建值为 (所有) 的 *VariablesToExport 键,这意味着模块中定义的所有变量都由清单导出。

Type:String[]
Position:Named
Default value:* (all)
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-WhatIf

显示运行后 New-ModuleManifest 会发生什么情况。 cmdlet 未运行。

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

输入

None

无法通过管道将输入传递给此 cmdlet。

输出

None or System.String

默认情况下, New-ModuleManifest 不会生成任何输出。 但是,如果使用 PassThru 参数,它将生成表示模块清单的 System.String 对象。

备注

New-ModuleManifest 在 Windows 和非 Windows 平台上运行会 (.psd1) 编码为 UTF8NoBOM 的文件创建模块清单。

模块清单通常是可选的。 但是,若要导出安装在全局程序集缓存中的程序集,则模块清单是必需的。

若要在目录中添加或更改文件 $pshome\Modules ,请使用 “以管理员身份运行” 选项启动 PowerShell。

注意

从 PowerShell 6.2 开始,PowerShell 会尝试加载模块清单 的 FileList 属性中列出的所有 DLL 文件。 本机 DLL 位于 FileList 中,无法在进程中加载,错误将被忽略。 所有托管 DLL 都加载到进程中。 PowerShell 7.1 中已删除此行为。

在 PowerShell 2.0 中,许多 参数 New-ModuleManifest 是必需的,即使模块清单中不需要它们。 从 PowerShell 3.0 开始,只有 Path 参数是必需的。

会话是 PowerShell 执行环境的实例。 一个会话可以具有一个或多个会话状态。 默认情况下,会话仅具有全局会话状态,但每个导入的模块都具有其自己的会话状态。 会话状态允许模块中的命令在不影响全局会话状态的情况下运行。

调用方会话状态是模块导入到的会话状态。 通常,它指的是全局会话状态,但当模块导入嵌套模块时,调用方是模块,调用方会话状态是模块的会话状态。