Проверяет, что файл манифеста модуля точно описывает содержимое модуля.

Синтаксис

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

Описание

Командлет Test-ModuleManifest проверяет, что файлы, указанные в файле манифеста модуля (PSD1), действительно существуют по указанным путям.

Этот командлет помогает разработчикам модулей тестировать файлы манифестов. Пользователи модуля также могут использовать этот командлет в скриптах и командах для выявления ошибок до выполнения скриптов, зависящих от модуля.

Командлет Test-ModuleManifest возвращает объект, представляющий модуль (такого же типа, что и объект, возвращаемый командлетом Get-Module). Если какой-либо файл отсутствует в местоположении, указанном в манифесте, выдается ошибка для каждого отсутствующего файла.

Параметры

-Path <string>

Задает путь к файлу манифеста модуля. Укажите путь (необязательно) и имя файла манифеста модуля с расширением PSM1. Местоположением по умолчанию является текущий каталог. Это обязательный параметр. Имя параметра ("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 для отключения вывода сообщений об ошибках, создаваемых командой. Кроме того, команда сохраняет в переменной $a объект PSModuleInfo, возвращенный командлетом Test-ModuleManifest, поэтому этот объект не отображается. 

Затем другая команда (разделителем команд служит точка с запятой [;]) отображает значение автоматической переменной $?, которая возвращает значение "True", если предыдущая команда не создала ошибок, либо значение "False" в противном случае.

Эту функцию можно использовать в условных операторах, например операторах перед командой Import-Module или командой, использующей модуль.






См. также