次の方法で共有


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

説明

New-ModuleManifest コマンドレットは、新しいモジュール マニフェスト (.psd1) ファイルを作成し、その値を設定し、マニフェスト ファイルを指定したパスに保存します。

モジュール作成者は、このコマンドレットを使用して、モジュールのマニフェストを作成できます。 モジュール マニフェストは、ハッシュ テーブルを含む .psd1 ファイルです。 ハッシュ テーブルのキーと値は、モジュールの内容と属性を記述し、前提条件を定義し、コンポーネントの処理方法を決定します。 マニフェストは、モジュールには必要ありません。

New-ModuleManifest は、一般的に使用されるすべてのマニフェスト キーを含むマニフェストを作成するため、既定の出力をマニフェスト テンプレートとして使用できます。 値を追加または変更したり、このコマンドレットで追加しないモジュール キーを追加したりするには、結果のファイルをテキスト エディターで開きます。

各パラメーターは、Path と passThru を除き、モジュール マニフェスト キーとその値を作成します。 モジュール マニフェストでは、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 - モジュール情報の取得

この例では、モジュールの構成値を取得する方法を示します。 モジュール マニフェストの値は、モジュール オブジェクトのプロパティの値に反映されます。

Get-Module コマンドレットは、List パラメーターを使用して microsoft.PowerShell.Diagnostics モジュール を取得するために使用されます。 このコマンドはモジュールを 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-ModuleManifestAliasesToExportキーを*(すべて)の値で作成します。つまり、モジュールで定義されているすべてのエイリアスがマニフェストによってエクスポートされます。

型:String[]
配置:Named
規定値:* (all)
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:True

-Author

モジュールの作成者を指定します。

このパラメーターを省略すると、New-ModuleManifest によって現在のユーザーの名前を持つ 著者 キーが作成されます。

型:String
配置:Named
規定値:Name of the current user
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-ClrVersion

モジュールに必要な Microsoft .NET Framework の共通言語ランタイム (CLR) の最小バージョンを指定します。

手記

この設定は、Windows PowerShell 5.1 などの PowerShell Desktop エディションでのみ有効であり、4.5 未満の .NET Framework バージョンにのみ適用されます。 この要件は、新しいバージョンの PowerShell または .NET Framework には影響しません。

型:Version
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-CmdletsToExport

モジュールがエクスポートするコマンドレットを指定します。 ワイルドカードを使用できます。

このパラメーターを使用して、モジュールによってエクスポートされるコマンドレットを制限できます。 エクスポートされたコマンドレットの一覧からコマンドレットを削除できますが、一覧にコマンドレットを追加することはできません。

このパラメーターを省略すると、New-ModuleManifest は、値が (すべて) の * キーを作成します。つまり、モジュールで定義されているすべてのコマンドレットがマニフェストによってエクスポートされます。

型:String[]
配置:Named
規定値:* (all)
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:True

-CompanyName

モジュールを作成した会社またはベンダーを識別します。

このパラメーターを省略すると、New-ModuleManifest 値が "Unknown" の CompanyName キーが作成されます。

型:String
配置:Named
規定値:"Unknown"
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-CompatiblePSEditions

モジュールの互換性のある PSEdition を指定します。 PSEdition の詳細については、「互換性のある PowerShell Edition を使用したモジュール」を参照してください。

型:String[]
指定可能な値:Desktop, Core
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Confirm

コマンドレットを実行する前に確認を求めるメッセージが表示されます。

型:SwitchParameter
Aliases:cf
配置:Named
規定値:False
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

モジュールの著作権に関する声明を指定します。

このパラメーターを省略すると、New-ModuleManifestCopyright キーが作成され、値が (c) <year> <username>. All rights reserved. (<year> は現在の年)、<username>Author キーの値になります。

型:String
配置:Named
規定値:(c) <year> <username>. All rights reserved.
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-DefaultCommandPrefix

セッションにインポートされるときにモジュール内のすべてのコマンドの名詞の前に付加されるプレフィックスを指定します。 プレフィックス文字列を入力します。 プレフィックスは、ユーザーのセッションでのコマンド名の競合を防ぎます。

モジュール ユーザーは、 コマンドレットの Import-Module パラメーターを指定することで、このプレフィックスをオーバーライドできます。

このパラメーターは PowerShell 3.0 で導入されました。

型:String
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Description

モジュールの内容について説明します。

型:String
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-DotNetFrameworkVersion

モジュールに必要な Microsoft .NET Framework の最小バージョンを指定します。

手記

この設定は、Windows PowerShell 5.1 などの PowerShell Desktop エディションでのみ有効であり、4.5 未満の .NET Framework バージョンにのみ適用されます。 この要件は、新しいバージョンの PowerShell または .NET Framework には影響しません。

型:Version
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-DscResourcesToExport

モジュールがエクスポートする Desired State Configuration (DSC) リソースを指定します。 ワイルドカードを使用できます。

型:String[]
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:True

-ExternalModuleDependencies

このモジュールが依存する外部モジュールの一覧。

型:String[]
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-FileList

モジュールに含まれるすべての項目を指定します。

このキーは、モジュール インベントリとして機能するように設計されています。 キーに一覧表示されているファイルは、モジュールが発行されるときに含まれますが、関数は自動的にエクスポートされません。

型:String[]
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-FormatsToProcess

モジュールのインポート時に実行される書式設定ファイル (.ps1xml) を指定します。

モジュールをインポートすると、PowerShell は指定されたファイルを使用して Update-FormatData コマンドレットを実行します。 フォーマット ファイルはスコープ設定されていないため、セッション内のすべてのセッション状態に影響します。

型:String[]
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-FunctionsToExport

モジュールがエクスポートする関数を指定します。 ワイルドカードを使用できます。

このパラメーターを使用して、モジュールによってエクスポートされる関数を制限できます。 エクスポートされたエイリアスの一覧から関数を削除できますが、リストに関数を追加することはできません。

このパラメーターを省略すると、New-ModuleManifestFunctionsToExport キーが作成され、値が * (all) になります。つまり、モジュールで定義されているすべての関数がマニフェストによってエクスポートされます。

型:String[]
配置:Named
規定値:* (all)
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:True

-Guid

モジュールのユニークな識別子を指定します。 GUID を使用して、同じ名前のモジュールを区別できます。

このパラメーターを省略すると、New-ModuleManifest によってマニフェストに GUID キーが作成され、値の GUID が生成されます。

PowerShell で新しい GUID を作成するには、「[guid]::NewGuid()」と入力します。

型:Guid
配置:Named
規定値:A GUID generated for the module
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-HelpInfoUri

モジュールの HelpInfo XML ファイルのインターネット アドレスを指定します。 http または https で始まる URI (Uniform Resource Identifier) 入力します。

HelpInfo XML ファイルは、PowerShell 3.0 で導入された更新可能なヘルプ機能をサポートしています。 モジュールのダウンロード可能なヘルプ ファイルの場所と、サポートされているロケールごとに最新のヘルプ ファイルのバージョン番号に関する情報が含まれています。

更新可能なヘルプについては、「about_Updatable_Help」を参照してください。 HelpInfo XML ファイルの詳細については、更新可能なヘルプのサポートを参照してください。

このパラメーターは PowerShell 3.0 で導入されました。

型:String
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-IconUri

モジュールのアイコンの URL を指定します。 指定したアイコンが、モジュールのギャラリー Web ページに表示されます。

型:Uri
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-LicenseUri

モジュールのライセンス条項の URL を指定します。

型:Uri
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-ModuleList

このモジュールに含まれるすべてのモジュールを一覧表示します。

各モジュール名を文字列またはハッシュ テーブルとして、ModuleName キーおよび ModuleVersion キーとともに入力します。 ハッシュ テーブルには、オプションの GUID キーを含めることもできます。 パラメーター値に文字列とハッシュ テーブルを組み合わせることができます。

このキーは、モジュール インベントリとして機能するように設計されています。 このキーの値に一覧表示されているモジュールは自動的に処理されません。

型:Object[]
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-ModuleVersion

モジュールのバージョンを指定します。

このパラメーターは必須ではありませんが、マニフェストには ModuleVersion キーが必要です。 このパラメーターを省略すると、New-ModuleManifest 値が 1.0 の ModuleVersion キーが作成されます。

型:Version
配置:Named
規定値:1.0
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-NestedModules

モジュールのセッション状態にインポートされるスクリプト モジュール (.psm1) とバイナリ モジュール (.dll) を指定します。 NestedModules キー内のファイルは、値に一覧表示されている順序で実行されます。

各モジュール名を文字列またはハッシュ テーブルとして、ModuleName キーおよび ModuleVersion キーとともに入力します。 ハッシュ テーブルには、オプションの GUID キーを含めることもできます。 パラメーター値に文字列とハッシュ テーブルを組み合わせることができます。

通常、入れ子になったモジュールには、ルート モジュールがその内部処理に必要なコマンドが含まれています。 既定では、入れ子になったモジュール内のコマンドはモジュールのセッション状態から呼び出し元のセッション状態にエクスポートされますが、ルート モジュールはエクスポートするコマンドを制限できます。 たとえば、Export-ModuleMember コマンドを使用します。

モジュール セッション状態の入れ子になったモジュールはルート モジュールで使用できますが、呼び出し元のセッション状態の Get-Module コマンドからは返されません。

.ps1 キーにリストされているスクリプト () は、呼び出し元のセッション状態ではなく、モジュールのセッション状態で実行されます。 呼び出し元のセッション状態でスクリプトを実行するには、マニフェストの ScriptsToProcess キーの値にスクリプト ファイル名を一覧表示します。

型:Object[]
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-PassThru

結果のモジュール マニフェストをコンソールに書き込み、.psd1 ファイルを作成します。 既定では、このコマンドレットは出力を生成しません。

型:SwitchParameter
配置:Named
規定値:False
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Path

新しいモジュール マニフェストのパスとファイル名を指定します。 .psd1など、$pshome\Modules\MyModule\MyModule.psd1 ファイル名拡張子を持つパスとファイル名を入力します。 Path パラメーターが必要です。

既存のファイルへのパスを指定した場合、New-ModuleManifest は、ファイルに読み取り専用属性がない限り、警告なしでファイルを置き換えます。

マニフェストはモジュールのディレクトリに配置し、マニフェスト ファイル名はモジュール ディレクトリ名と同じにする必要がありますが、ファイル名拡張子は .psd1 必要があります。

手記

$PSHOME パラメーター値のプロンプトに応答して、$HOMEなどの変数を使用することはできません。 変数を使用するには、コマンドに Path パラメーターを含めます。

型:String
配置:1
規定値:None
必須:True
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-PowerShellHostName

モジュールに必要な PowerShell ホスト プログラムの名前を指定します。 ホスト プログラムの名前を入力してください。例えば、Windows PowerShell ISE Host や ConsoleHost などです。 ワイルドカードは使用できません。

ホスト・プログラムの名前を見つけるには、プログラムに「$Host.Name」と入力します。

型:String
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-PowerShellHostVersion

モジュールで動作する PowerShell ホスト プログラムの最小バージョンを指定します。 バージョン番号 (1.1 など) を入力します。

型:Version
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-PowerShellVersion

このモジュールで動作する PowerShell の最小バージョンを指定します。 たとえば、パラメーターの値として「1.0、2.0、または 3.0」と入力できます。 X.X 形式である必要があります。 たとえば、5を送信すると、PowerShell はエラーをスローします。

型:Version
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Prerelease

このモジュールのプレリリース文字列。 プレリリース文字列を追加すると、モジュールがプレリリース バージョンとして識別されます。 モジュールが PowerShell ギャラリーに発行されると、このデータはプレリリース パッケージを識別するために使用されます。 ギャラリーからプレリリース パッケージを取得するには、PowerShellGet コマンド Find-ModuleInstall-Module、および Update-ModuleSave-Module パラメーターを使用する必要があります。

型:String
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-PrivateData

インポート時にモジュールに渡されるデータを指定します。

型:Object
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-ProcessorArchitecture

モジュールに必要なプロセッサ アーキテクチャを指定します。 有効な値は x86、AMD64、IA64、MSIL、および None (不明または未指定) です。

型:ProcessorArchitecture
指定可能な値:None, MSIL, X86, IA64, Amd64, Arm
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-ProjectUri

このプロジェクトに関する Web ページの URL を指定します。

型:Uri
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-ReleaseNotes

リリース ノートを指定します。

型:String
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-RequiredAssemblies

モジュールに必要なアセンブリ (.dll) ファイルを指定します。 アセンブリ ファイル名を入力します。 PowerShell は、型または形式の更新、入れ子になったモジュールのインポート、または RootModule キーの値で指定されたモジュール ファイルのインポートを行う前に、指定されたアセンブリを読み込みます。

このパラメーターを使用すると、NestedModules キーにバイナリ モジュールとしてリストされている場合でも、FormatsToProcess または TypesToProcess キーにリストされている書式ファイルや型ファイルを更新するために読み込む必要があるアセンブリを含め、モジュールで必要なすべてのアセンブリを一覧表示できます。

型:String[]
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-RequiredModules

グローバル セッション状態である必要があるモジュールを指定します。 必要なモジュールがグローバル セッション状態でない場合は、PowerShell によってインポートされます。 必要なモジュールが使用できない場合、Import-Module コマンドは失敗します。

各モジュール名を文字列またはハッシュ テーブルとして、ModuleName キーおよび ModuleVersion キーとともに入力します。 ハッシュ テーブルには、オプションの GUID キーを含めることもできます。 パラメーター値に文字列とハッシュ テーブルを組み合わせることができます。

PowerShell 2.0 では、Import-Module は必要なモジュールを自動的にインポートしません。 必要なモジュールがグローバル セッション状態であることを確認するだけです。

型:Object[]
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-RequireLicenseAcceptance

モジュールがインストール、更新、または保存に明示的なユーザーの同意を必要とするかどうかを示すフラグ。

型:SwitchParameter
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-RootModule

モジュールのプライマリ ファイルまたはルート ファイルを指定します。 スクリプト (.ps1)、スクリプト モジュール (.psm1)、モジュール マニフェスト (.psd1)、アセンブリ (.dll)、コマンドレット定義 XML ファイル (.cdxml)、またはワークフロー (.xaml) のファイル名を入力します。 モジュールがインポートされると、ルート モジュール ファイルからエクスポートされたメンバーが呼び出し元のセッション状態にインポートされます。

モジュールにマニフェスト ファイルがあり、ルート ファイルが RootModule キーで指定されていない場合、マニフェストはモジュールのプライマリ ファイルになり、モジュールはマニフェスト モジュールになります (ModuleType = Manifest)。

マニフェストを持つモジュール内の .psm1 ファイルまたは .dll ファイルからメンバーをエクスポートするには、これらのファイルの名前を、マニフェストの RootModule または nestedModules キーの値に指定する必要があります。 それ以外の場合、メンバーはエクスポートされません。

手記

PowerShell 2.0 では、このキーは ModuleToProcessと呼ばれていました。 RootModule パラメーター名またはその ModuleToProcess エイリアスを使用できます。

型:String
Aliases:ModuleToProcess
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-ScriptsToProcess

モジュールのインポート時に呼び出し元のセッション状態で実行されるスクリプト (.ps1) ファイルを指定します。 ログイン スクリプトを使用する場合と同様に、これらのスクリプトを使用して環境を準備できます。

モジュールのセッション状態で実行されるスクリプトを指定するには、NestedModules キーを使用します。

型:String[]
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Tags

タグの配列を指定します。

型:String[]
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-TypesToProcess

モジュールのインポート時に実行される型ファイル (.ps1xml) を指定します。

モジュールをインポートすると、PowerShell は指定されたファイルを使用して Update-TypeData コマンドレットを実行します。 型ファイルはスコープ設定されていないため、セッション内のすべてのセッション状態に影響します。

型:String[]
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-VariablesToExport

モジュールがエクスポートする変数を指定します。 ワイルドカードを使用できます。

このパラメーターを使用して、モジュールによってエクスポートされる変数を制限できます。 エクスポートされた変数のリストから変数を削除できますが、リストに変数を追加することはできません。

このパラメーターを省略すると、New-ModuleManifestVariablesToExport キーが作成され、値が * (all) になります。つまり、モジュールで定義されているすべての変数がマニフェストによってエクスポートされます。

型:String[]
配置:Named
規定値:* (all)
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:True

-WhatIf

New-ModuleManifest が実行された場合の動作を示します。 コマンドレットは実行されません。

型:SwitchParameter
Aliases:wi
配置:Named
規定値:False
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

入力

None

このコマンドレットにオブジェクトをパイプすることはできません。

出力

None

既定では、このコマンドレットは出力を返しません。

String

PassThru パラメーターを使用すると、このコマンドレットはモジュール マニフェストを表す文字列を返します。

メモ

Windows および Windows 以外のプラットフォームで実行されている New-ModuleManifest は、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 実行環境のインスタンスです。 セッションには、1 つ以上のセッション状態を含めることができます。 既定では、セッションはグローバル セッション状態のみですが、インポートされた各モジュールには独自のセッション状態があります。 セッション状態を使用すると、モジュール内のコマンドをグローバル セッション状態に影響を与えずに実行できます。

呼び出し元のセッション状態は、モジュールがインポートされるセッション状態です。 通常はグローバル セッション状態を参照しますが、モジュールが入れ子になったモジュールをインポートする場合、呼び出し元はモジュールであり、呼び出し元のセッション状態はモジュールのセッション状態です。