Überprüft, ob in einer Modulmanifestdatei der Inhalt eines Moduls genau beschrieben wird.

Syntax

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

Beschreibung

Mit dem Cmdlet "Test-ModuleManifest" wird überprüft, ob die Dateien, die in der Modulmanifestdatei (".psd1") aufgeführt sind, tatsächlich in den angegebenen Pfaden vorhanden sind.

Dieses Cmdlet soll Modulautoren beim Testen von Manifestdateien helfen. Modulbenutzer können dieses Cmdlet auch in Skripts und Befehlen verwenden, um vor dem Ausführen von Skripts modulabhängige Fehler zu erkennen.

Mit dem Cmdlet "Test-ModuleManifest" wird ein Objekt zurückgegeben, das das Modul (und den gleichen Objekttyp, der auch von Get-Module zurückgegeben wird) darstellt. Wenn sich Dateien nicht an den im Manifest angegebenen Speicherorten befinden, wird vom Cmdlet außerdem ein Fehler für jede fehlende Datei generiert.

Parameter

-Path <string>

Gibt den Pfad der Modulmanifestdatei an. Geben Sie einen Pfad (optional) und den Namen der Modulmanifestdatei mit der Dateinamenerweiterung ".psd1" ein. Der Standardspeicherort ist das aktuelle Verzeichnis. Dieser Parameter ist erforderlich. Der Parametername ("Path") ist optional. Sie können einen Pfad auch über die Pipeline an Test-ModuleManifest übergeben.

Erforderlich?

true

Position?

1

Standardwert

keine

Pipelineeingaben akzeptieren?

true (ByValue, ByPropertyName)

Platzhalterzeichen akzeptieren?

false

<CommonParameters>

Dieses Cmdlet unterstützt die folgenden allgemeinen Parameter: -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer und -OutVariable. Weitere Informationen finden Sie unter about_Commonparameters.

Eingaben und Ausgaben

Der Eingabetyp ist der Typ der Objekte, die über die Pipeline an das Cmdlet übergeben werden können. Der Rückgabetyp ist der Typ der Objekte, die das Cmdlet zurückgibt.

Eingaben

System.String

Sie können den Pfad zu einem Modulmanifest über die Pipeline an Test-ModuleManifest übergeben.

Ausgaben

System.Management.Automation.PSModuleInfo

Test-ModuleManifest gibt ein PSModuleInfo-Objekt zurück, das das Modul darstellt. Das Objekt wird auch dann zurückgegeben, wenn das Manifest Fehler aufweist.

Beispiel 1

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

Beschreibung
-----------
Mit diesem Befehl wird das Modulmanifest "TestModule.psd1" getestet.






Beispiel 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     : {}

Beschreibung
-----------
In diesem Befehl wird eine Pfadzeichenfolge mit einem Pipelineoperator (|) an Test-ModuleManifest gesendet. 

Die Befehlsausgabe zeigt an, dass der Test fehlgeschlagen ist, da die Datei "TestTypes.ps1xml", die im Manifest aufgeführt war, nicht gefunden wurde.






Beispiel 3

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

Beschreibung
-----------
Diese Funktion entspricht Test-ModuleManifest, gibt im Unterschied dazu jedoch einen booleschen Wert zurück: "True", wenn das Manifest den Test besteht, andernfalls "False".

Die Funktion ruft das Modulmanifest, das von der Variablen "$path" angegeben wird, mit dem Cmdlet Get-ChildItem (alias = dir) ab. Das Dateiobjekt wird mit einem Pipelineoperator (|) an das Cmdlet "Test-ModuleManifest" übergeben.

Im Befehl "Test-ModuleManifest" wird der allgemeine ErrorAction-Parameter mit dem Wert SilentlyContinue verwendet, um die Anzeige von Fehlern zu unterdrücken, die der Befehl generiert. Außerdem wird das PSModuleInfo-Objekt, das von Test-ModuleManifest zurückgegeben wird, in der Variablen "$a" gespeichert, sodass das Objekt nicht angezeigt wird. 

In einem separaten Befehl (die Befehle sind mit einem Semikolon [;] getrennt) wird dann der Wert der automatischen Variablen "$?" angezeigt, und wenn keine Fehler vom vorherigen Befehl generiert wurden, wird "True" zurückgegeben, andernfalls "False".

Sie können diese Funktion in bedingten Anweisungen verwenden, die beispielsweise vor einem Import-Module-Befehl oder einem Befehl stehen können, von dem das Modul verwendet wird.






Siehe auch




Inhaltsverzeichnis