Test-ModuleManifest (Microsoft.PowerShell.Core)
Test-ModuleManifest
- Módulo:
- Microsoft.PowerShell.Core
Verifica que un archivo de manifiesto de módulo describa con precisión el contenido de un módulo.
Sintaxis
Test-ModuleManifest
[-Path] <String>
[<CommonParameters>]Descripción
El cmdlet Test-ModuleManifest verifica que los archivos enumerados en el archivo de manifiesto del módulo (.psd1) se encuentren realmente en las rutas especificadas.
Este cmdlet está diseñado para ayudar a los autores de módulos a probar sus archivos de manifiesto. Los usuarios del módulo también pueden usar este cmdlet en scripts y comandos para detectar errores antes de ejecutar scripts que dependen del módulo.
Test-ModuleManifest devuelve un objeto que representa el módulo. Este es el mismo tipo de objeto que devuelve Get-Module. Si algún archivo no se encuentra en las ubicaciones especificadas en el manifiesto, el cmdlet también genera un error por cada archivo faltante.
Ejemplos
Ejemplo 1: probar un manifiesto
Test-ModuleManifest -Path "$pshome\Modules\TestModule.psd1"Este comando prueba el manifiesto del módulo TestModule.psd1.
Ejemplo 2: probar un manifiesto mediante la canalización
"$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 processed because the file was not found. Please correct the path and try again.
At line:1 char:34
+ "$pshome\Modules\TestModule.psd1" | test-modulemanifest <<<<
+ CategoryInfo : ResourceUnavailable: (C:\Windows\System32\WindowsPowerShell\v1.0\Modules\TestModule\TestTypes.ps1xml:String) [Test-ModuleManifest], FileNotFoundException
+ FullyQualifiedErrorId : Modules_TypeDataFileNotFound,Microsoft.PowerShell.Commands.TestModuleManifestCommandName
Name : TestModule
Path : C:\Windows\system32\WindowsPowerShell\v1.0\Modules\TestModule\TestModule.psd1
Description :
Guid : 6f0f1387-cd25-4902-b7b4-22cff6aefa7b
Version : 1.0
ModuleBase : C:\Windows\system32\WindowsPowerShell\v1.0\Modules\TestModule
ModuleType : Manifest
PrivateData :
AccessMode : ReadWrite
ExportedAliases : {}
ExportedCmdlets : {}
ExportedFunctions : {}
ExportedVariables : {}
NestedModules : {}
Este comando utiliza un operador de canalización (|) para enviar una cadena de ruta a Test-ModuleManifest.
El resultado del comando muestra que la prueba falló porque no se encontró el archivo TestTypes.ps1xml, que figuraba en el manifiesto.
Ejemplo 3: escribir una función para probar el manifiesto de un módulo
function Test-ManifestBool ($path)
{$a = dir $path | Test-ModuleManifest -ErrorAction SilentlyContinue; $?}Esta función es como Test-ModuleManifest, pero devuelve un valor booleano. La función devuelve $True si el manifiesto pasó la prueba y $False en caso contrario.
La función utiliza el cmdlet Get-ChildItem, alias=dir, para obtener el manifiesto del módulo especificado por la variable $path. El comando utiliza un operador de canalización (|) para pasar el objeto de archivo a Test-ModuleManifest.
Test-ModuleManifest utiliza el parámetro común ErrorAction con un valor de SilentlyContinue para suprimir la visualización de cualquier error que genere el comando. También guarda el objeto PSModuleInfo que Test-ModuleManifest devuelve en la variable $a. Por tanto, el objeto no se muestra.
Luego, en un comando separado, la función muestra el valor de la variable automática $?. Si el comando anterior no genera ningún error, el comando muestra $True y $False en caso contrario.
Puede utilizar esta función en declaraciones condicionales, como aquellas que pueden preceder a un comando Import-Module o un comando que utiliza el módulo.
Parámetros
-Path
Especifica una ruta y un nombre de archivo para el archivo de manifiesto. Introduzca una ruta opcional y un nombre del archivo de manifiesto del módulo que tiene la extensión de nombre de archivo .psd1. La ubicación predeterminada es el directorio actual. Se admiten caracteres comodín, pero deben resolverse en un único archivo de manifiesto de módulo. Este parámetro es obligatorio. También puede canalizar una ruta a Test-ModuleManifest.
- Tipo :
String
- Posición:
0
- Valor predeterminado:
-
None
- Requerido:
True
- Aceptar entrada de canalización:
True
- Aceptar caracteres comodín:
True
Entradas
Cadena
Puede canalizar la ruta a un manifiesto de módulo a este cmdlet.
Salidas
PSModuleInfo
Este cmdlet devuelve un objeto PSModuleInfo que representa el módulo. Devuelve este objeto incluso si el manifiesto tiene errores.