当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 新模块清单 (Microsoft.PowerShell.Core)

作者:精品下载站 日期:2024-12-14 02:15:17 浏览:15 分类:玩电脑

新模块清单 (Microsoft.PowerShell.Core)


New-ModuleManifest

模块 :Microsoft.PowerShell.Core

创建一个新的模块清单。

句法

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

描述

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

模块作者可以使用此 cmdlet 为其模块创建清单。模块清单是一个包含哈希表的 .psd1 文件。哈希表中的键和值描述了模块的内容和属性,定义了先决条件,并确定了组件的处理方式。模块不需要清单。

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

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

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

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

示例

示例 1 - 创建新的模块清单

此示例在 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 - 使用一些预填充的设置创建新清单

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

$moduleSettings = @{
    PowerShellVersion = 1.0
    Path   = 'C:\ps-test\ManifestTest.psd1'
    AliasesToExport   = @(
      'JKBC'
      'DRC'
      'TAC'
    )
}
New-ModuleManifest @moduleSettings

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

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

$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 - 创建支持可更新帮助的清单

此示例使用 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 - 获取模块信息

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

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

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 键,这意味着在模块由清单导出。

类型 :

String[]

位置:

命名

默认值:

* (全部)

必需的:

False

接受管道输入:

False

接受通配符:

True

-Author

指定模块作者。

如果省略此参数,New-ModuleManifest 将创建一个包含当前用户名称的 Author 键。

类型 :

String

位置:

命名

默认值:

当前用户名

必需的:

False

接受管道输入:

False

接受通配符:

False

-ClrVersion

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

笔记

此设置仅对 PowerShell Desktop 版本有效,例如 Windows PowerShell 5.1,并且仅适用于低于 4.5 的 .NET Framework 版本。此要求对于较新版本的 PowerShell 或 .NET Framework 没有影响。

类型 :

版本

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-CmdletsToExport

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

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

如果省略此参数,New-ModuleManifest 将创建一个值为 *(全部)的 CmdletsToExport 键,这意味着在模块由清单导出。

类型 :

String[]

位置:

命名

默认值:

* (全部)

必需的:

False

接受管道输入:

False

接受通配符:

True

-CompanyName

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

如果省略此参数,New-ModuleManifest 将创建一个值为“Unknown”的 CompanyName 键。

类型 :

String

位置:

命名

默认值:

“未知”

必需的:

False

接受管道输入:

False

接受通配符:

False

-CompatiblePSEditions

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

类型 :

String[]

接受的值:

桌面、核心

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-Confirm

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

类型 :

SwitchParameter

别名:

cf

位置:

命名

默认值:

False

必需的:

False

接受管道输入:

False

接受通配符:

False

-Copyright

指定模块的版权声明。

如果省略此参数,New-ModuleManifest 将创建一个值为 (c) 的 Copyright 键。保留所有权利。 其中 <year> 是当前年份,<username>Author 键的值。

类型 :

String

位置:

命名

默认值:

(c) 。版权所有。

必需的:

False

接受管道输入:

False

接受通配符:

False

-DefaultCommandPrefix

指定一个前缀,当模块中的所有命令导入到会话中时,该前缀将添加到这些命令的名词前面。输入前缀字符串。前缀可防止用户会话中的命令名称冲突。

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

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

类型 :

String

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-Description

描述模块的内容。

类型 :

String

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-DotNetFrameworkVersion

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

笔记

此设置仅对 PowerShell Desktop 版本有效,例如 Windows PowerShell 5.1,并且仅适用于低于 4.5 的 .NET Framework 版本。此要求对于较新版本的 PowerShell 或 .NET Framework 没有影响。

类型 :

版本

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-DscResourcesToExport

指定模块导出的所需状态配置 (DSC) 资源。允许使用通配符。

类型 :

String[]

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

True

-ExternalModuleDependencies

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

类型 :

String[]

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-FileList

指定模块中包含的所有项目。

该密钥旨在充当模块库存。发布模块时会包含密钥中列出的文件,但不会自动导出任何函数。

类型 :

String[]

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-FormatsToProcess

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

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

类型 :

String[]

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-FunctionsToExport

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

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

如果省略此参数,New-ModuleManifest 将创建一个值为 *(全部)的 FunctionsToExport 键,这意味着在模块由清单导出。

类型 :

String[]

位置:

命名

默认值:

* (全部)

必需的:

False

接受管道输入:

False

接受通配符:

True

-Guid

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

如果省略此参数,New-ModuleManifest 将在清单中创建一个 GUID 键,并为该值生成一个 GUID

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

类型 :

指导

位置:

命名

默认值:

为模块生成的 GUID

必需的:

False

接受管道输入:

False

接受通配符:

False

-HelpInfoUri

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

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

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

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

类型 :

String

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-IconUri

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

类型 :

乌里

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-LicenseUri

指定模块许可条款的 URL。

类型 :

乌里

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-ModuleList

列出该模块中包含的所有模块。

输入每个模块名称作为字符串或作为带有 ModuleNameModuleVersion 键的哈希表。哈希表还可以有一个可选的GUID键。您可以在参数值中组合字符串和哈希表。

该密钥旨在充当模块库存。不会自动处理此键值中列出的模块。

类型 :

Object[]

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-ModuleVersion

指定模块的版本。

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

类型 :

版本

位置:

命名

默认值:

1.0

必需的:

False

接受管道输入:

False

接受通配符:

False

-NestedModules

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

输入每个模块名称作为字符串或作为带有 ModuleNameModuleVersion 键的哈希表。哈希表还可以有一个可选的GUID键。您可以在参数值中组合字符串和哈希表。

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

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

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

类型 :

Object[]

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-PassThru

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

类型 :

SwitchParameter

位置:

命名

默认值:

False

必需的:

False

接受管道输入:

False

接受通配符:

False

-Path

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

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

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

笔记

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

类型 :

String

位置:

1

默认值:

None

必需的:

True

接受管道输入:

False

接受通配符:

False

-PowerShellHostName

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

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

类型 :

String

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-PowerShellHostVersion

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

类型 :

版本

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-PowerShellVersion

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

类型 :

版本

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-Prerelease

该模块的预发布字符串。添加预发布字符串将模块标识为预发布版本。当模块发布到 PowerShell 库时,此数据用于识别预发布包。要从库中获取预发布包,您必须将 AllowPrerelease 参数与 PowerShellGet 命令 Find-ModuleInstall-Module 结合使用更新模块保存模块

类型 :

String

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-PrivateData

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

类型 :

目的

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-ProcessorArchitecture

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

类型 :

ProcessorArchitecture

接受的值:

无、MSIL、X86、IA64、Amd64、Arm

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-ProjectUri

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

类型 :

乌里

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-ReleaseNotes

指定发行说明。

类型 :

String

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-RequiredAssemblies

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

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

类型 :

String[]

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-RequiredModules

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

输入每个模块名称作为字符串或作为带有 ModuleNameModuleVersion 键的哈希表。哈希表还可以有一个可选的GUID键。您可以在参数值中组合字符串和哈希表。

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

类型 :

Object[]

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-RequireLicenseAcceptance

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

类型 :

SwitchParameter

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-RootModule

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

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

要从具有清单的模块中的 .psm1.dll 文件导出成员,必须在 RootModule 或 NestedModules 键。否则,他们的成员不会被导出。

笔记

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

类型 :

String

别名:

ModuleToProcess

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-ScriptsToProcess

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

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

类型 :

String[]

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-Tags

指定标签数组。

类型 :

String[]

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-TypesToProcess

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

导入模块时,PowerShell 会使用指定的文件运行 Update-TypeData cmdlet。由于类型文件没有作用域,因此它们会影响会话中的所有会话状态。

类型 :

String[]

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-VariablesToExport

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

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

如果省略此参数,New-ModuleManifest 将创建一个值为 *(全部)的 VariablesToExport 键,这意味着在模块由清单导出。

类型 :

String[]

位置:

命名

默认值:

* (全部)

必需的:

False

接受管道输入:

False

接受通配符:

True

-WhatIf

显示 New-ModuleManifest 运行时会发生什么。该 cmdlet 未运行。

类型 :

SwitchParameter

别名:

wi

位置:

命名

默认值:

False

必需的:

False

接受管道输入:

False

接受通配符:

False

输入

您无法将对象通过管道传输到此 cmdlet。

输出

默认情况下,此 cmdlet 不返回任何输出。

字符串

当您使用 PassThru 参数时,此 cmdlet 返回表示模块清单的字符串。

笔记

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

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

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

笔记

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

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

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

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

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯