Verifies that a module manifest file accurately describes the contents of a module. (Test-ModuleManifest)



Verifies that a module manifest file accurately describes the contents of a module.

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

The Test-ModuleManifest cmdlet verifies that the files that are listed in the module manifest (.psd1) file actually exist in the specified paths.

This cmdlet is designed to help module authors test their manifest files. Module users can also use this cmdlet in scripts and commands to detect errors before running scripts that depend on the module.

The Test-ModuleManifest cmdlet returns an object that represents the module (the same type of object that Get-Module returns). If any files are not in the locations specified in the manifest, the cmdlet also generates an error for each missing file.

-Path <string>
Specifies the path to the module manifest file. Enter a path (optional) and the name of the module manifest file with the .psd1 file name extension. The default location is the current directory. This parameter is required. The parameter name ("Path") is optional. You can also pipe a path to Test-ModuleManifest.

Required? true
Position? 1
Default value None
Accept pipeline input? true (ByValue, ByPropertyName)
Accept wildcard characters? false

This cmdlet supports the common parameters: Verbose, Debug,
ErrorAction, ErrorVariable, WarningAction, WarningVariable,
OutBuffer and OutVariable. For more information, type,
"get-help about_commonparameters".

You can pipe the path to a module manifest to Test-ModuleManifest.

Test-ModuleManifest returns a PSModuleInfo object that represents the module. It returns this object even if the manifest has errors.



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

# Description
This command tests the TestModule.psd1 module manifest.


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

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

# Description
This command uses a pipeline operator (|) to send a path string to Test-ModuleManifest.

The command output shows that the test failed, because the TestTypes.ps1xml file, which was listed in the manifest, was not found.


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

# Description
This function is like Test-ModuleManifest, but it returns a Boolean value; it returns "True" if the manifest passed the test and "False" otherwise.

The function uses the Get-ChildItem cmdlet (alias = dir) to get the module manifest specified by the $path variable. It uses a pipeline operator (|) to pass the file object to the Test-ModuleManifest cmdlet.

The Test-ModuleManifest command uses the ErrorAction common parameter with a value of SilentlyContinue to suppress the display of any errors that the command generates. It also saves the PSModuleInfo object that Test-ModuleManifest returns in the $a variable, so the object is not displayed.

Then, in a separate command (the semi-colon [;] is the command separator), it displays the value of the $? automatic variable, which returns "True" if the previous command generated no error and "False" otherwise.

You can use this function in conditional statements, such as those that might precede an Import-Module command or a command that uses the module.

Online version:

C:\Windows>powershell get-help Add-PSSnapin -full

ColorConsole [Version 1.7.1000] PowerShell 2.0-Export
Microsoft Windows [Version 6.1.7600]
Copyright (c) 2009 Microsoft Corporation.

OS: Windows-7 / Windows-Vista // Windows Server 2008
»»»» ColorConsole


... Home  
... Impressum
... ColorConsole

... CMD
... Netsh-XP
... Netsh-7
... Netsh-Vista
... Powershell

Download the Windows 7 Starter, Home (Basic Premium), Professional und Ultimate!

Download Microsoft Internet Explorer 9!  / Warum sind manche Datei- bzw. Ordnergrößen unterstreichen? Ich möchte es deaktivieren!  / How can I maximize the number of windows desktop icon?  / Wie kann ich mich bei anmelden, das Passwort knacken, oder registrieren für das FreeMail?  / How can i add or change languages in Windows-8 and Win 8.1?  / Where is the Windows Media Center in Windows 10?  / Navigationsbereich, eg Verzeichnisstruktur im Explorer bei Windows 8.1 wieder anzeigen!  / Windows 10 Home oder Pro version?  / Wie kann ich die Sprache in Windows-10 ändern?  / How to enable the password prompt for screen saver in Windows 8.1 (disable, turn off, turn on)?  / Was für eine Seite ist  / Warum kann ich in Win-7 als Admin nicht auf alle Dateien, bzw. Ordner zugreifen?  /