Test-ModuleManifest
Comprueba que un archivo de manifiesto de módulo describe con precisión el contenido de un módulo.
Sintaxis
Test-ModuleManifest
[-Path] <String>
[<CommonParameters>]
Description
El cmdlet Test-ModuleManifest comprueba que los archivos que aparecen en el archivo de manifiesto del módulo (.psd1) se encuentran realmente en las rutas de acceso 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 Get-Module devuelve. Si algún archivo no está en las ubicaciones especificadas en el manifiesto, el cmdlet también genera un error para cada archivo que falta.
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 usa un operador de canalización (|) para enviar una cadena de ruta de acceso a Test-ModuleManifest.
La salida del comando muestra que se produjo un error en la prueba porque no se encontró el archivo TestTypes.ps1xml, que aparece en el manifiesto.
Ejemplo 3: Escribir una función para probar un manifiesto de 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 de lo contrario.
La función usa el cmdlet Get-ChildItem, alias = dir, para obtener el manifiesto del módulo especificado por la variable $path. El comando usa un operador de canalización (|) para pasar el objeto de archivo a Test-ModuleManifest.
Test-ModuleManifest usa el ErrorAction parámetro común con un valor de SilentlyContinue para suprimir la visualización de los errores que genera el comando. También guarda el objeto PSModuleInfo que Test-ModuleManifest devuelve en la variable $a. Por lo tanto, el objeto no se muestra.
A continuación, en un comando independiente, la función muestra el valor de $? variable automática. Si el comando anterior no genera ningún error, el comando muestra $True y $False de lo contrario.
Puede usar esta función en instrucciones condicionales, como las que podrían preceder a un comando Import-Module o un comando que use el módulo.
Parámetros
-Path
Especifica una ruta de acceso y un nombre de archivo para el archivo de manifiesto. Escriba una ruta de acceso opcional y el nombre del archivo de manifiesto del módulo que tenga la extensión de nombre de archivo .psd1. La ubicación predeterminada es el directorio actual. Se admiten caracteres comodín, pero debe resolverse en un único archivo de manifiesto de módulo. Este parámetro es obligatorio. También puede canalizar una ruta de acceso 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
Puede canalizar la ruta de acceso a un manifiesto de módulo a este cmdlet.
Salidas
Este cmdlet devuelve un objeto PSModuleInfo que representa el módulo. Devuelve este objeto incluso si el manifiesto tiene errores.