次の方法で共有


Test-ModuleManifest

モジュール マニフェスト ファイルにモジュールの内容が正確に記述されていることを確認します。

構文

Test-ModuleManifest [-Path] <string> [<CommonParameters>]

説明

Test-ModuleManifest コマンドレットは、モジュール マニフェスト (.psd1) ファイルに示されているファイルが、指定されたパスに実際に存在することを確認します。

このコマンドレットは、モジュール作成者がマニフェスト ファイルをテストするときに役立つように設計されています。モジュール ユーザーも、このコマンドレットをスクリプトおよびコマンドで使用して、モジュールに依存するスクリプトを実行する前にエラーを検出できます。

Test-ModuleManifest コマンドレットは、モジュールを表すオブジェクト (Get-Module によって返されるオブジェクトと同じ型) を返します。また、マニフェストで指定された場所に存在しないファイルがある場合、見つからなかったファイルごとにエラーも生成します。

パラメーター

-Path <string>

モジュール マニフェスト ファイルのパスを指定します。パス (省略可能) と、.psd1 というファイル名拡張子を持つモジュール マニフェスト ファイルの名前を入力します。既定の場所は現在のディレクトリです。このパラメーターは必須です。パラメーター名 ("Path") は省略可能です。パイプを使用して Test-ModuleManifest にパスを渡すこともできます。

必須

true

位置

1

既定値

なし

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

true (ByValue, ByPropertyName)

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

false

<CommonParameters>

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

入力と出力

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

入力

System.String

パイプを使用して、モジュール マニフェストのパスを Test-ModuleManifest に渡すことができます。

出力

System.Management.Automation.PSModuleInfo

Test-ModuleManifest は、モジュールを表す PSModuleInfo オブジェクトを返します。マニフェストにエラーが含まれる場合も、このオブジェクトは返されます。

例 1

C:\PS>test-ModuleManifest -path $pshome\Modules\TestModule.psd1

説明
-----------
このコマンドは、TestModule.psd1 モジュール マニフェストをテストします。





例 2

C:\PS>"$pshome\Modules\TestModule.psd1" | test-modulemanifest

Test-ModuleManifest : The specified type data file 'C:\Windows\System32\Wi
ndowsPowerShell\v1.0\Modules\TestModule\TestTypes.ps1xml' could not be pro
cessed because the file was not found. Please correct the path and try aga
in.
At line:1 char:34
+ "$pshome\Modules\TestModule.psd1" | test-modulemanifest <<<<
    + CategoryInfo          : ResourceUnavailable: (C:\Windows\System32\Win
dowsPowerShell\v1.0\Modules\TestModule\TestTypes.ps1xml:String) [Test-Modul
eManifest], FileNotFoundException
    + FullyQualifiedErrorId : Modules_TypeDataFileNotFound,Microsoft.
PowerShell.Commands.TestModuleManifestCommandName


Name              : TestModule
Path              : C:\Windows\system32\WindowsPowerShell\v1.0\Modules\Test
Module\TestModule.psd1
Description       :
Guid              : 6f0f1387-cd25-4902-b7b4-22cff6aefa7b
Version           : 1.0
ModuleBase        : C:\Windows\system32\WindowsPowerShell\v1.0\Modules\Test
Module
ModuleType        : Manifest
PrivateData       :
AccessMode        : ReadWrite
ExportedAliases   : {}
ExportedCmdlets   : {}
ExportedFunctions : {}
ExportedVariables : {}
NestedModules     : {}

説明
-----------
このコマンドは、パイプライン演算子 (|) を使用してパス文字列を Test-ModuleManifest に送信します。

コマンドの出力には、マニフェストに示されている TestTypes.ps1xml ファイルが見つからなかったためにテストに不合格になったことが示されます。





例 3

C:\PS>function Bool-ModuleManifest ($path)
    {$a = dir $path | test-modulemanifest -erroraction SilentlyContinue; $?}

説明
-----------
この関数は Test-ModuleManifest に似ていますが、マニフェストがテストに合格した場合はブール値の "True"、不合格になった場合は "False" を返します。

この関数は、Get-ChildItem コマンドレット (エイリアスは dir) を使用して、$path 変数により指定されたモジュール マニフェストを取得します。さらにパイプライン演算子 (|) を使用して、ファイル オブジェクトを Test-ModuleManifest コマンドレットに渡しています。

Test-ModuleManifest コマンドは、ErrorAction 共通パラメーターを使用して SilentlyContinue という値を指定し、コマンドによって生成されるエラーが表示されないようにします。また、Test-ModuleManifest によって返される PSModuleInfo オブジェクトを $a 変数に保存します。そのため、オブジェクトは表示されません。

次に、別のコマンド (セミコロン [;] はコマンド セパレーター) で $? 自動変数の値を表示します。この変数は、前のコマンドがエラーを生成しなかった場合は "True"、エラーを生成した場合は "False" を返します。

この関数は、Import-Module コマンド、またはモジュールを使用するコマンドの前にある可能性がある条件ステートメントなどで使用できます。





関連項目

概念

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