New-ModuleManifest

建立新的模組指令清單。

Syntax

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

Description

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 - 建立新的模組指令清單

這個範例會在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 模組的名稱和哈希表格式,以指定名稱、GUID 和 PSScheduledJob 模組的版本

$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

這個範例示範如何使用 ModuleListRequiredModules 和 NestedModules 參數的字串串和哈希表格式。 您可以在相同的參數值中結合字串和哈希表。

範例 4 - 建立支援可更新說明的指令清單

此範例會使用 HelpInfoUri 參數在模組指令清單中建立 HelpInfoUri 金鑰。 參數和索引鍵的值必須以 HTTP 或 HTTPs 開頭。 這個值會告訴可更新的說明系統,在何處尋找模組的 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 模組。 命令會將模組傳送至 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 索引鍵,其值為 * (all),這表示模組中定義的所有別名都會由指令清單匯出。

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 Common Language Runtime (CLR) 最低版本。

注意

此設定僅適用於 PowerShell Desktop 版本,例如 Windows PowerShell 5.1,且僅適用於低於 4.5 的 .NET Framework 版本。 這項需求對較新版本的PowerShell或 .NET Framework 沒有任何作用。

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 索引鍵,其值為 * (all),這表示模組中定義的所有 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請建立 Copyright 索引鍵,其值為 (c) <year> <username>. All rights reserved. where <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 最低版本。

注意

此設定僅適用於 PowerShell Desktop 版本,例如 Windows PowerShell 5.1,且僅適用於低於 4.5 的 .NET Framework 版本。 這項需求對較新版本的PowerShell或 .NET Framework 沒有任何作用。

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

-DscResourcesToExport

指定模組導出的 Desired 狀態設定 (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請建立具有 值 (all) 的 * 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 檔案的因特網位址。 輸入以 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.psd1需要 Path 參數。

如果您指定現有檔案的路徑,除非檔案具有只讀屬性, 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 機碼值中指定的模組檔案。

使用此參數列出模組需要的所有元件,包括必須載入的元件,以更新 FormatsToProcess 或 TypesToProcess 索引鍵中列出的任何格式或類型檔案,即使這些元件也列為 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 索引鍵,其值為 * (all),這表示模組中定義的所有變數都會由指令清單導出。

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

根據預設,此 Cmdlet 不會傳回任何輸出。

String

當您使用 PassThru 參數時,這個 Cmdlet 會傳回代表模組指令清單的字串。

備註

New-ModuleManifest在 Windows 和非 Windows 平台上執行,會建立編碼為 UTF8NoBOM模組指令清單 (.psd1) 檔案。

模組指令清單通常是選擇性的。 不過,需要模組指令清單才能匯出安裝在全域程式集緩存中的元件。

若要在目錄中新增或變更檔案 $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執行環境的實例。 會話可以有一或多個會話狀態。 根據預設,會話只有全域會話狀態,但每個匯入的模組都有自己的會話狀態。 會話狀態允許模組中的命令執行,而不會影響全域會話狀態。

呼叫端的工作階段狀態是匯入模組的工作階段狀態。 一般而言,它是指全域會話狀態,但是當模組匯入巢狀模組時,呼叫端是模組,而呼叫端的會話狀態則是模組的會話狀態。