次の方法で共有


New-ModuleManifest

新しいモジュール マニフェストを作成します。

構文

New-ModuleManifest [-Path] <string> -Author <string> -CompanyName <string> -Copyright <string> -Description <string> -FileList <string[]> -FormatsToProcess <string[]> -ModuleToProcess <string> -NestedModules <string[]> -RequiredAssemblies <string[]> -TypesToProcess <string[]> [-AliasesToExport <string[]>] [-ClrVersion <Version>] [-CmdletsToExport <string[]>] [-DotNetFrameworkVersion <Version>] [-FunctionsToExport <string[]>] [-Guid <Guid>] [-ModuleList <Object[]>] [-ModuleVersion <Version>] [-PassThru] [-PowerShellHostName <string>] [-PowerShellHostVersion <Version>] [-PowerShellVersion <Version>] [-PrivateData <Object>] [-ProcessorArchitecture {<None> | <MSIL> | <X86> | <IA64> | <Amd64>}] [-RequiredModules <Object[]>] [-ScriptsToProcess <string[]>] [-VariablesToExport <string[]>] [-Confirm] [-WhatIf] [<CommonParameters>]

説明

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

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

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

このコマンドレットの各パラメーター (Path および PassThru を除く) は、モジュール マニフェスト キーとその値を作成します。モジュール マニフェストでは、ModuleVersion キーのみが必要です。ただし、このコマンドレットの他のいくつかのパラメーターは必須です。そのため、パラメーターなしで "New-ModuleManifest" コマンドを入力すると、よく使用されるその他のキーに値を指定するように求めるプロンプトがコマンドレットによって表示されます。値を空のままにするには、Enter キーを押します。

モジュール マニフェストの形式、効果、および要件の詳細については、MSDN (Microsoft Developer Network) ライブラリの「How to Write a Module Manifest (モジュール マニフェストの記述方法)」(https://go.microsoft.com/fwlink/?LinkId=143613) を参照してください。

パラメーター

-AliasesToExport <string[]>

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

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

このパラメーターを省略した場合、New-ModuleManifest は値 * (すべて) を含む AliasesToExport キーを作成します。したがって、モジュールによってエクスポートされるすべてのエイリアスが、マニフェストによってエクスポートされます。

必須

false

位置

named

既定値

* (all)

パイプライン入力を許可する

false

ワイルドカード文字を許可する

true

-Author <string>

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

このパラメーターはコマンドレットには必要ですが、Author キーはマニフェストでは必要ありません。このパラメーターを省略し、要求されても値を入力しなかった場合、New-ModuleManifest は現在のユーザー名を含む Author キーを作成します。

必須

true

位置

named

既定値

Name of the current user

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-CLRVersion <Version>

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

このパラメーターを省略した場合、New-ModuleManifest は空の文字列値を持つ CLRVersion キーを作成します。

必須

false

位置

named

既定値

なし

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-CmdletsToExport <string[]>

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

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

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

必須

false

位置

named

既定値

* (all)

パイプライン入力を許可する

false

ワイルドカード文字を許可する

true

-CompanyName <string>

モジュールを作成した会社または製造元を識別します。

このパラメーターはコマンドレットには必要ですが、CompanyName キーはマニフェストでは必要ありません。このパラメーターを省略し、要求されても値を入力しなかった場合、New-ModuleManifest は値 "Unknown" を含む CompanyName キーを作成します。

必須

true

位置

named

既定値

"Unknown"

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

モジュールの著作権ステートメントを指定します。

このパラメーターはコマンドレットには必要ですが、Copyright キーはマニフェストでは必要ありません。このパラメーターを省略し、要求されても値を入力しなかった場合、New-ModuleManifest は値 "(c) <year> <username>" を含む Copyright キーを作成します。All rights reserved."ここで <year> は現在の年を表し、<username> は Author キーの値 (指定されている場合) または現在のユーザー名を表します。

必須

true

位置

named

既定値

(c) <year> <username>. All rights reserved.

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-Description <string>

モジュールの内容を記述します。

このパラメーターはコマンドレットには必要ですが、Description キーはマニフェストでは必要ありません。このパラメーターを省略し、要求されても値を入力しなかった場合、New-ModuleManifest は空の文字列値を持つ Description キーを作成します。

必須

true

位置

named

既定値

なし

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-DotNetFrameworkVersion <Version>

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

このパラメーターを省略した場合、New-ModuleManifest は空の文字列値を持つ DotNetFrameWorkVersion キーを作成します。

必須

false

位置

named

既定値

なし

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-FileList <string[]>

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

このキーは、モジュールのインベントリとして機能することを目的としています。これらのファイルは、モジュールと共に自動的にエクスポートされることはありません。

このパラメーターはコマンドレットには必要ですが、FileList キーはマニフェストでは必要ありません。このパラメーターを省略し、要求されても値を入力しなかった場合、New-ModuleManifest は空の配列値の FileList キーを作成します。

必須

true

位置

named

既定値

なし

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-FormatsToProcess <string[]>

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

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

このパラメーターはコマンドレットには必要ですが、FormatsToProcess キーはマニフェストでは必要ありません。このパラメーターを省略し、要求されても値を入力しなかった場合、New-ModuleManifest は空の配列値の FormatsToProcess キーを作成します。

必須

true

位置

named

既定値

なし

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-FunctionsToExport <string[]>

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

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

このパラメーターを省略した場合、New-ModuleManifest は値 * (すべて) を含む FunctionsToExport キーを作成します。したがって、モジュールによってエクスポートされるすべての関数が、マニフェストによってエクスポートされます。

必須

false

位置

named

既定値

* (all)

パイプライン入力を許可する

false

ワイルドカード文字を許可する

true

-Guid <Guid>

モジュールの一意識別子を指定します。GUID は、同じ名前を持つモジュールを区別するために使用できます。

このパラメーターを省略した場合、New-ModuleManifest はマニフェストに GUID キーを作成し、値に GUID を生成します。

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

必須

false

位置

named

既定値

A GUID generated for the module

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-ModuleList <Object[]>

このモジュールと共にパッケージされるすべてのモジュールを一覧表示します。

各モジュール名を文字列として入力するか、ModuleName および GUID キーを含むハッシュ テーブルを入力します。ハッシュ テーブルにはオプションの ModuleVersion キーも作成できます。

このキーは、モジュールのインベントリとして機能することを目的としています。これらのモジュールは、自動的に処理されることはありません。

このパラメーターを省略した場合、New-ModuleManifest は空の配列値のマニフェストに ModuleList キーを作成します。

必須

false

位置

named

既定値

なし

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-ModuleToProcess <string>

モジュールのプライマリ ファイルまたは "ルート" ファイルを指定します。モジュールがインポートされると、ルート モジュール ファイルからエクスポートされたメンバーが呼び出し元のセッション状態にインポートされます。1 つのスクリプト モジュール (.psm1) またはバイナリ モジュール (.dll) のファイル名を入力します。

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

マニフェストを含むモジュールのファイル .psm1 または .dll からメンバーをエクスポートするには、マニフェストの ModuleToProcess キーまたは NestedModules キーの値に、これらのファイル名を指定する必要があります。そうしないと、メンバーはエクスポートされません。

このパラメーターはコマンドレットには必要ですが、ModuleToProcess キーはマニフェストでは必要ありません。このパラメーターを省略し、要求されても値を入力しなかった場合、New-ModuleManifest は空の文字列値を持つ ModuleToProcess キーを作成します。

必須

true

位置

named

既定値

なし

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-ModuleVersion <Version>

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

このパラメーターはコマンドレットには必要ありませんが、ModuleVersion キーはマニフェストで必要です。このパラメーターを省略した場合、New-ModuleManifest は値 "1.0" を含む ModuleVersion キーを作成します。

必須

false

位置

named

既定値

1.0

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-NestedModules <string[]>

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

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

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

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

このパラメーターはコマンドレットには必要ですが、NestedModules キーはマニフェストでは必要ありません。このパラメーターを省略し、要求されても値を入力しなかった場合、New-ModuleManifest は空の配列値の NestedModules キーを作成します。

必須

true

位置

named

既定値

なし

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-PassThru

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

必須

false

位置

named

既定値

False

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-Path <string>

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

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

マニフェストはモジュール ディレクトリにあり、マニフェスト ファイル名はモジュール ディレクトリ名と同じ (ただし、.psc1 ファイル名拡張子を含む) である必要があります。

注: Path パラメーターの値に関するプロンプトへの応答として、$pshome や $home などの変数を使用することはできません。変数を使用するには、コマンドに Path パラメーターを含めてください。

必須

true

位置

1

既定値

なし

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-PowerShellHostName <string>

モジュールが必要とする Windows PowerShell のホスト プログラムの名前を指定します。"Windows PowerShell ISE Host"、"ConsoleHost" など、ホスト プログラムの名前を入力します。ワイルドカードは使用できません。

ホスト プログラムの名前を確認するには、プログラムで「$host.name」と入力します。

このパラメーターを省略した場合、New-ModuleManifest は空の文字列値を持つ PowerShellHostName キーを作成します。

必須

false

位置

named

既定値

なし

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-PowerShellHostVersion <Version>

このモジュールで機能する Windows PowerShell のホスト プログラムの最も古いバージョンを指定します。1.1 などのバージョン番号を入力します。

このパラメーターを省略した場合、New-ModuleManifest は空の文字列値を持つ PowerShellHostName キーを作成します。

必須

false

位置

named

既定値

なし

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-PowerShellVersion <Version>

このモジュールで機能する Windows PowerShell の最も古いバージョンを指定します。1.0 または 2.0 を入力します。2.0 以降のバージョン要件は強制されません。

このパラメーターを省略した場合、New-ModuleManifest は空の文字列値を持つ PowerShellVersion キーを作成します。

必須

false

位置

named

既定値

なし

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-PrivateData <Object>

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

このパラメーターを省略した場合、New-ModuleManifest は空の文字列値を持つ PrivateData キーを作成します。

必須

false

位置

named

既定値

なし

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-ProcessorArchitecture <ProcessorArchitecture>

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

このパラメーターを省略した場合、New-ModuleManifest は空の文字列値を持つ ProcessorArchitecture キーを作成します。

必須

false

位置

named

既定値

なし

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-RequiredAssemblies <string[]>

モジュールに必要なアセンブリ (.dll) ファイルを指定します。Windows PowerShell は、型または書式設定の更新、入れ子のモジュールのインポート、または ModulesToProcess キーの値で指定されているモジュール ファイルのインポートを実行する前に、指定されたアセンブリを読み込みます。

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

このパラメーターはコマンドレットには必要ですが、RequiredAssemblies キーはマニフェストでは必要ありません。このパラメーターを省略し、要求されても値を入力しなかった場合、New-ModuleManifest は空の配列値の RequiredAssemblies キーを作成します。

必須

true

位置

named

既定値

なし

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-RequiredModules <Object[]>

グローバル セッション状態であることが必要なモジュールを指定します。必要なモジュールがグローバル セッション状態でない場合は、モジュールのインポートは失敗します。

各モジュール名を文字列として入力するか、ModuleName および GUID キーを含むハッシュ テーブルを入力します。ハッシュ テーブルにはオプションの ModuleVersion キーも作成できます。詳細については、例を参照してください。

Windows PowerShell では必要なモジュールが自動的にはインポートされず、必要なモジュールが存在することの確認のみが行われます。ただし、必要なモジュールをグローバル セッション状態にインポートするスクリプト (.ps1) はモジュールに含めることができます。

このパラメーターを省略した場合、New-ModuleManifest は空の配列値の RequiredModules キーを作成します。

必須

false

位置

named

既定値

なし

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-ScriptsToProcess <string[]>

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

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

このパラメーターを省略した場合、New-ModuleManifest は空の配列値の ScriptsToProcess キーを作成します。

必須

false

位置

named

既定値

なし

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-TypesToProcess <string[]>

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

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

このパラメーターはコマンドレットには必要ですが、TypesToProcess キーはマニフェストでは必要ありません。このパラメーターを省略し、要求されても値を入力しなかった場合、New-ModuleManifest は空の配列値の TypesToProcess キーを作成します。

必須

true

位置

named

既定値

なし

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-VariablesToExport <string[]>

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

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

このパラメーターを省略した場合、New-ModuleManifest は値 * (すべて) を含む VariablesToExport キーを作成します。したがって、モジュールによってエクスポートされるすべての変数が、マニフェストによってエクスポートされます。

必須

false

位置

named

既定値

* (all)

パイプライン入力を許可する

false

ワイルドカード文字を許可する

true

-Confirm

コマンドを実行する前に確認メッセージを表示します。

必須

false

位置

named

既定値

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-WhatIf

実際にコマンドを実行せずに、コマンドを実行すると何が起きるかを出力します。

必須

false

位置

named

既定値

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

<CommonParameters>

このコマンドレットは、次の共通パラメーターをサポートします: -Verbose、-Debug、-ErrorAction、-ErrorVariable、-OutBuffer、および -OutVariable。詳細については、次を参照してください: about_Commonparameters.

入力と出力

入力値の型は、コマンドレットへのパイプが可能なオブジェクトの型です。戻り値の型は、コマンドレットによって返されるオブジェクトの型です。

入力

None

パイプを使用してこのコマンドレットに入力を渡すことはできません。

出力

None or System.String

既定では、New-ModuleManifest は出力を生成しません。ただし、PassThru パラメーターを使用すると、モジュール マニフェストを表す System.String オブジェクトが生成されます。

通常、モジュール マニフェストは省略可能です。ただし、グローバル アセンブリ キャッシュにインストールされているアセンブリをエクスポートする場合には、モジュール マニフェストが必要です。

$pshome\Modules ディレクトリ (%Windir%\System32\WindowsPowerShell\v1.0\Modules) のファイルを追加または変更するには、Windows PowerShell を起動する際に [管理者として実行] を指定する必要があります。

"セッション" は Windows PowerShell の実行環境のインスタンスです。セッションには 1 つまたは複数のセッション状態があります。既定では、セッションには 1 つのグローバル セッション状態しかありませんが、インポートされたモジュールには独自のセッション状態があります。セッション状態は、1 つのモジュールのコマンドに、グローバル セッション状態に影響を与えずに実行することを許可します。

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

例 1

C:\PS>New-ModuleManifest

Path: C:\Users\User01\Documents\WindowsPowerShell\Modules\Test-Module\Test-Module.psd1
NestedModules[0]: BackgroundModule.psm1
Author: Jinghao Liu
CompanyName: Fabrikam, Inc.
Copyright: Copyright © 2009 Liu Jinghao. All rights reserved.
ModuleToProcess: TestModule.psm1
Description: Cmdlets to find common errors in scripts.
TypesToProcess[0]: TestTypes.ps1xml
FormatsToProcess[0]: TestFormat.ps1xml
RequiredAssemblies[0]: Test.dll
FileList[0]: Test-Module.psd1
FileList[1]: Test-Module.psm1
FileList[2]: BackgroundModule.psm1
FileList[3]: TestTypes.ps1xml
FileList[4]: TestFormat.ps1xml
FileList[5]: Test.dll
FileList[6]: TestIcon.ico

説明
-----------
このコマンドは、新しいモジュール マニフェストを作成します。コマンドレットは、Path パラメーターを含む必要なパラメーターの入力を要求し、指定された場所にマニフェスト ファイルを作成します。

このコマンドの出力は、プロンプトへの応答のサンプルを示しています。既定値を使用するには、Enter キーを押します。

実際のプロンプト、および引用符で囲まれた語句と囲まれていない語句の処理は、Windows PowerShell を実行しているホスト プログラムによって異なります。





例 2

C:\PS>New-ModuleManifest -PowerShellVersion 1.0 -AliasesToExport JKBC, DRC, TAC

説明
-----------
このコマンドは、新しいモジュール マニフェストを作成します。このコマンドには、コマンドレットでは必要ない (または入力を要求されない) パラメーターが含まれています。プロンプトで、その他のマニフェスト キーの値を含めることができます。





例 3

C:\PS>New-ModuleManifest -RequiredModules FileTransfer,@{ModuleName="BackgroundModule";GUID="486569a2-2784-48bf-af15-70ba837a64d0";ModuleVersion="3.5"}

説明
-----------
この例は、RequiredModules パラメーター値の文字列とハッシュ テーブル形式の使用方法を示しています。文字列とハッシュ テーブルは、同じコマンドで使用できます。

このコマンドによって、FileTransfer モジュールを必要とするモジュールと、"BackgroundModule" という名前の (架空の) モジュールのモジュール マニフェストが作成されます。

このコマンドは、文字列の形式を使用して FileTransfer モジュールの名前を指定し、ハッシュ テーブル形式を使用して BackgroundModule の名前、GUID、およびバージョンを指定します。





関連項目

概念

Import-Module
Get-Module
New-Module
Remove-Module
Export-ModuleMember
Test-ModuleManifest
about_Modules