Создает новый манифест модуля.

Синтаксис

New-ModuleManifest [-Path] <string> -Author <string> -CompanyName <string> -Copyright <string> -Description <string> -FileList <string[]> -FormatsToProcess <string[]> -ModuleToProcess <string> -NestedModules <string[]> -RequiredAssemblies <string[]> -TypesToProcess <string[]> [-AliasesToExport <string[]>] [-ClrVersion <Version>] [-CmdletsToExport <string[]>] [-DotNetFrameworkVersion <Version>] [-FunctionsToExport <string[]>] [-Guid <Guid>] [-ModuleList <Object[]>] [-ModuleVersion <Version>] [-PassThru] [-PowerShellHostName <string>] [-PowerShellHostVersion <Version>] [-PowerShellVersion <Version>] [-PrivateData <Object>] [-ProcessorArchitecture {<None> | <MSIL> | <X86> | <IA64> | <Amd64>}] [-RequiredModules <Object[]>] [-ScriptsToProcess <string[]>] [-VariablesToExport <string[]>] [-Confirm] [-WhatIf] [<CommonParameters>]

Описание

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

Авторы модулей могут использовать этот командлет для создания манифеста для своего модуля. Манифест модуля представляет собой файл PSD1, в котором содержится хэш-таблица. Ключи и значения хэш-таблицы описывают содержимое и атрибуты модуля, определяют требуемые компоненты, а также задают способ обработки компонентов. Манифесты не являются необходимым элементом модулей.

Командлет New-ModuleManifest создает манифест, в котором используются все типовые ключи манифеста, поэтому выходные данные по умолчанию можно использовать в качестве шаблона манифеста. Чтобы добавить или изменить значения или добавить ключи модуля, не добавляемые в файл командлетом, откройте результирующий файл в текстовом редакторе.

Для каждого из параметров командлета (за исключением параметров Path и PassThru) создается ключ модуля манифеста и его значение. Обязательным в манифесте модуля является только ключ ModuleVersion. Однако, некоторые другие параметры данного командлета являются обязательными. Можно ввести команду "New-ModuleManifest" без параметров, и командлет запросит значения других обычно используемых ключей. Чтобы оставить значение пустым, нажмите клавишу ENTER.

Полное описание форматов, области действия и требований к манифесту модуля см. в документе "Написание манифеста модуля" (How to Write a Module Manifest) в библиотеке MSDN по адресу http://go.microsoft.com/fwlink/?LinkId=143613 (на английском языке).

Параметры

-AliasesToExport <string[]>

Задает псевдонимы, экспортируемые модулем. Подстановочные знаки разрешены.

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

Если этот параметр опущен, командлет New-ModuleManifest создает ключ AliasesToExport со значением * (все), означающим, что все псевдонимы, экспортируемые модулем, экспортируются манифестом.

Обязательно?

false

Позиция?

named

Значение по умолчанию

* (all)

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

true

-Author <string>

Задает автора модуля.

Этот параметр является обязательным для командлета, но ключ Author не является обязательным для манифеста. Если этот параметр не задан и его значение не введено при запросе, командлет New-ModuleManifest создает ключ Author и устанавливает в качестве значения этого ключа имя текущего пользователя.

Обязательно?

true

Позиция?

named

Значение по умолчанию

Name of the current user

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

-ClrVersion <Version>

Задает версию среды CLR платформы Microsoft .NET Framework, которая требуется для работы модуля.

Если этот параметр не задан, командлет New-ModuleManifest создаст ключ CLRVersion со значением пустой строки.

Обязательно?

false

Позиция?

named

Значение по умолчанию

нет

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

-CmdletsToExport <string[]>

Задает командлеты, экспортируемые модулем. Подстановочные знаки разрешены.

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

Если этот параметр опущен, командлет New-ModuleManifest создает ключ CmdletsToExport со значением * (все), означающим, что все командлеты, экспортируемые модулем, экспортируются манифестом.

Обязательно?

false

Позиция?

named

Значение по умолчанию

* (all)

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

true

-CompanyName <string>

Указывает компанию или поставщика, создавшего модуль.

Этот параметр является обязательным для командлета, но ключ CompanyName не является обязательным для манифеста. Если этот параметр не задан и его значение не введено при запросе, командлет New-ModuleManifest создает ключ CompanyName и устанавливает в качестве значения этого ключа строку "Unknown".

Обязательно?

true

Позиция?

named

Значение по умолчанию

"Unknown"

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

-Copyright <string>

Задает заявление об авторских правах на модуль.

Этот параметр является обязательным для командлета, но ключ Copyright не является обязательным для манифеста. Если этот параметр не задан и его значение не введено при запросе, командлет New-ModuleManifest создает ключ Copyright со значением "(c) <год> <имя_пользователя>. All rights reserved.", где <год> — это текущий год, а <имя_пользователя> — это значение ключа Author (если оно задано) или имя текущего пользователя.

Обязательно?

true

Позиция?

named

Значение по умолчанию

(c) <year> <username>. All rights reserved.

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

-Description <string>

Описывает содержимое модуля.

Этот параметр является обязательным для командлета, но ключ Description не является обязательным для манифеста. Если этот параметр не задан и его значение не введено при запросе, командлет New-ModuleManifest создает ключ Description с пустым строковым значением.

Обязательно?

true

Позиция?

named

Значение по умолчанию

нет

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

-DotNetFrameworkVersion <Version>

Задает версию платформы Microsoft .NET Framework, которая требуется для работы модуля.

Если этот параметр не задан, командлет New-ModuleManifest создаст ключ DotNetFrameWorkVersion со значением пустой строки.

Обязательно?

false

Позиция?

named

Значение по умолчанию

нет

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

-FileList <string[]>

Задает все элементы, включенные в модуль.

Этот ключ предназначен для выполнения функций полного списка ресурсов модуля. Эти файлы не экспортируются с модулем автоматически.

Этот параметр является обязательным для командлета, но ключ FileList не является обязательным для манифеста. Если этот параметр не задан, и его значение не введено при запросе, командлет New-ModuleManifest создает ключ FileList со значением, представляющим собой пустой массив.

Обязательно?

true

Позиция?

named

Значение по умолчанию

нет

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

-FormatsToProcess <string[]>

Задает файлы форматирования (PS1XML), которые выполняются при импорте модуля.

При импорте модуля Windows PowerShell выполняет командлет Update-FormatData с указанными файлами. Так как область действия файлов форматирования не ограничена, они влияют на все состояния сеанса в сеансе.

Этот параметр является обязательным для командлета, но ключ FormatsToProcess не является обязательным для манифеста. Если этот параметр не задан, и его значение не введено при запросе, командлет New-ModuleManifest создает ключ FormatsToProcess со значением пустого массива.

Обязательно?

true

Позиция?

named

Значение по умолчанию

нет

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

-FunctionsToExport <string[]>

Задает функции, экспортируемые модулем. Подстановочные знаки разрешены.

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

Если этот параметр опущен, командлет New-ModuleManifest создает ключ FunctionsToExport со значением * (все), означающим, что все функции, экспортируемые модулем, экспортируются манифестом.

Обязательно?

false

Позиция?

named

Значение по умолчанию

* (all)

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

true

-Guid <Guid>

Задает уникальный идентификатор модуля. GUID позволяет отличать модули с одинаковыми именами.

Если не указать этот параметр, командлет New-ModuleManifest создает новый ключ GUID в манифесте и создает GUID, который будет использоваться в качестве значения ключа.

Чтобы создать новый GUID в среде Windows PowerShell, введите команду "[guid]::NewGuid()".

Обязательно?

false

Позиция?

named

Значение по умолчанию

A GUID generated for the module

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

-ModuleList <Object[]>

Список всех модулей, упакованных с этим модулем.

Введите имена всех модулей в виде строки или введите хэш-таблицу, указав значения ключей ModuleName и GUID. Кроме того, у хэш-таблицы может иметься необязательный ключ ModuleVersion.

Этот ключ предназначен для выполнения функций полного списка ресурсов модуля. Автоматическая обработка этих модулей не производится.

Если не указать этот параметр, командлет New-ModuleManifest создает новый ключ ModuleList в манифесте со значением пустого массива.

Обязательно?

false

Позиция?

named

Значение по умолчанию

нет

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

-ModuleToProcess <string>

Задает первичный или "основной" файл модуля. При импорте модуля элементы, экспортированные из файла основного модуля, импортируются в состояние сеанса вызывающего объекта. Введите имя файла одного модуля скрипта (PSM1) или двоичного модуля (DLL).

Если у модуля есть файл манифеста, и в ключе ModuleToProcess не назначен основной файл, манифест становится основным файлом для модуля, а модуль становится "модулем манифеста" (значение параметра ModuleType равняется Manifest).

Чтобы экспортировать элементы из файлов PSM1 или DLL в модуль, у которого есть манифест, имена этих файлов должны быть указаны в значениях ключей ModuleToProcess или NestedModules в манифесте. В противном случае их элементы не экспортируются.

Этот параметр является обязательным для командлета, но ключ ModuleToProcess не является обязательным для манифеста. Если этот параметр не задан, и его значение не введено при запросе, командлет New-ModuleManifest создает ключ ModuleToProcess со значением пустой строки.

Обязательно?

true

Позиция?

named

Значение по умолчанию

нет

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

-ModuleVersion <Version>

Задает версию модуля.

Этот параметр не является обязательным для командлета, но ключ ModuleVersion является обязательным для манифеста. Если этот параметр не задан, командлет New-ModuleManifest создаст ключ ModuleVersion со значением, равным "1.0".

Обязательно?

false

Позиция?

named

Значение по умолчанию

1.0

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

-NestedModules <string[]>

Задает модули скрипта (PSM1) и двоичные модули (DLL), которые импортируются в состояние сеанса модуля. Файлы, указанные в ключе NestedModules, выполняются в порядке их перечисления в значении ключа.

Обычно вложенные модули содержат команды, необходимые основному модулю для внутренней обработки. По умолчанию команды из вложенных модулей экспортируются из состояния сеанса модуля в состояние сеанса вызывающего объекта, но основной модуль может ограничить экспортируемые им команды (например, с помощью команды Export-Module).

Вложенные модули в состоянии сеанса модуля доступны основному модулю, но не возвращаются командой Get-Module в состоянии сеанса вызывающего объекта.

Скрипты (PS1), перечисленные в ключе NestedModules, выполняются в состоянии сеанса модуля, а не в состоянии сеанса вызывающего объекта. Чтобы запустить скрипт в состоянии сеанса вызывающего объекта, укажите имя файла скрипта в значении ключа ScriptsToProcess манифеста.

Этот параметр является обязательным для командлета, но ключ NestedModules не является обязательным для манифеста. Если этот параметр не задан и его значение не введено при запросе, командлет New-ModuleManifest создает ключ NestedModules со значением, представляющим собой пустой массив.

Обязательно?

true

Позиция?

named

Значение по умолчанию

нет

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

-PassThru

Записывает результирующий манифест модуля в консоль в дополнение к созданию файла PSD1. По умолчанию этот командлет не формирует никаких выходных данных.

Обязательно?

false

Позиция?

named

Значение по умолчанию

False

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

-Path <string>

Задает путь и имя файла нового манифеста модуля. Укажите путь и имя файла с расширением PSD1, например "$pshome\Modules\MyModule\MyModule.psd1". Это обязательный параметр.

Если указан путь к существующему файлу, командлет New-ModuleManifest перезапишет имеющийся файл без предупреждения, если только у этого файла нет атрибута "только чтение".

Манифест должен располагаться в каталоге модуля, а имя файла манифеста должно совпадать с именем каталога модуля (но в качестве расширения имени файла манифеста должно использоваться PSD1).

Примечание. Нельзя использовать переменные, например $pshome или $home, при указании значения параметра Path в ответ на запрос. Чтобы использовать переменную, включите параметр Path в команду.

Обязательно?

true

Позиция?

1

Значение по умолчанию

нет

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

-PowerShellHostName <string>

Задает имя основной программы Windows PowerShell, необходимой для модуля. Введите имя основной программы, например "Windows PowerShell ISE Host" или "ConsoleHost". Подстановочные знаки запрещены.

Чтобы выяснить имя основной программы, введите в программе "$host.name".

Если этот параметр не задан, командлет New-ModuleManifest создаст ключ PowerShellHostName со значением пустой строки.

Обязательно?

false

Позиция?

named

Значение по умолчанию

нет

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

-PowerShellHostVersion <Version>

Указывает минимальную версию основной программы Windows PowerShell, которая работает с этим модулем. Введите номер версии, например 1.1.

Если этот параметр не задан, командлет New-ModuleManifest создаст ключ PowerShellHostName со значением пустой строки.

Обязательно?

false

Позиция?

named

Значение по умолчанию

нет

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

-PowerShellVersion <Version>

Указывает минимальную версию Windows PowerShell, поддерживающую этот модуль. Введите 1.0 или 2.0. Требования к версиям больше 2.0 не вступили в силу.

Если этот параметр не задан, командлет New-ModuleManifest создаст ключ PowerShellVersion со значением пустой строки.

Обязательно?

false

Позиция?

named

Значение по умолчанию

нет

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

-PrivateData <Object>

Задает данные, которые передаются модулю при импорте.

Если этот параметр не задан, командлет New-ModuleManifest создаст ключ PrivateData со значением пустой строки.

Обязательно?

false

Позиция?

named

Значение по умолчанию

нет

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

-ProcessorArchitecture <ProcessorArchitecture>

Задает архитектуру процессора, необходимую для этого модуля. Допустимы значения x86, AMD64, IA64 и None (не известна или не указана).

Если этот параметр не задан, командлет New-ModuleManifest создаст ключ ProcessorArchitecture со значением пустой строки.

Обязательно?

false

Позиция?

named

Значение по умолчанию

нет

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

-RequiredAssemblies <string[]>

Задает файлы сборки (DLL), необходимые для работы модуля. Windows PowerShell загружает заданные сборки перед обновлением типов или форматов, импортом вложенных модулей или импортом файлов модуля, указанных в значении ключа ModuleToProcess.

Используйте этот параметр для перечисления всех сборок, необходимых модулю, включая сборки, которые должны быть загружены для обновления любых файлов форматирования или файлов типов, указанных в ключах FormatsToProcess и TypesToProcess, даже если эти сборки также указаны как двоичные модули в ключе NestedModules.

Этот параметр является обязательным для командлета, но ключ RequiredAssemblies не является обязательным для манифеста. Если этот параметр не задан, и его значение не введено при запросе, командлет New-ModuleManifest создает ключ RequiredAssemblies со значением пустого массива.

Обязательно?

true

Позиция?

named

Значение по умолчанию

нет

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

-RequiredModules <Object[]>

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

Введите имена всех модулей в виде строки или введите хэш-таблицу, указав значения ключей ModuleName и GUID. Кроме того, у хэш-таблицы может иметься необязательный ключ ModuleVersion. Дополнительные сведения см. в примерах.

Windows PowerShell не импортирует необходимые модули автоматически. Проверяется только наличие необходимых модулей. Однако модули могут содержать скрипты (PS1), импортирующие необходимые модули в глобальное состояние сеанса.

Если этот параметр не задан, командлет New-ModuleManifest создаст ключ RequiredModules со значением пустого массива.

Обязательно?

false

Позиция?

named

Значение по умолчанию

нет

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

-ScriptsToProcess <string[]>

Задает файлы скриптов (PS1), которые при импорте модуля выполняются в состоянии сеанса вызывающего объекта. Можно использовать эти скрипты для подготовки среды, аналогично тому, как можно было бы использовать скрипт входа в систему.

Чтобы указать скрипты, которые выполняются в состоянии сеанса модуля, используйте ключ NestedModules.

Если этот параметр не задан, командлет New-ModuleManifest создаст ключ ScriptsToProcess со значением пустого массива.

Обязательно?

false

Позиция?

named

Значение по умолчанию

нет

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

-TypesToProcess <string[]>

Задает файлы типов (PS1XML), которые выполняются при импорте модуля.

При импорте модуля Windows PowerShell выполняет командлет Update-TypeData с указанными файлами. Так как область действия файлов типов не ограничена, они влияют на все состояния сеанса в сеансе.

Этот параметр является обязательным для командлета, но ключ TypesToProcess не является обязательным для манифеста. Если этот параметр не задан, и его значение не введено при запросе, командлет New-ModuleManifest создает ключ TypesToProcess со значением пустого массива.

Обязательно?

true

Позиция?

named

Значение по умолчанию

нет

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

-VariablesToExport <string[]>

Задает переменные, экспортируемые модулем. Подстановочные знаки разрешены.

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

Если этот параметр опущен, командлет New-ModuleManifest создает ключ VariablesToExport со значением * (все), означающим, что все переменные, экспортируемые модулем, экспортируются манифестом.

Обязательно?

false

Позиция?

named

Значение по умолчанию

* (all)

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

true

-Confirm

Запрашивает подтверждение перед выполнением команды.

Обязательно?

false

Позиция?

named

Значение по умолчанию

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

-WhatIf

Описывает, что произойдет при выполнении команды, без ее фактического выполнения.

Обязательно?

false

Позиция?

named

Значение по умолчанию

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

<CommonParameters>

Данный командлет поддерживает общие параметры -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer и -OutVariable. Дополнительные сведения см. в разделе about_Commonparameters.

Ввод и вывод

Входным типом является тип объектов, которые можно передавать командлету по конвейеру. Возвращаемым типом является тип объектов, возвращаемых командлетом.

Входные данные

Нет

Передать входные данные этому командлету по конвейеру невозможно.

Выходные данные

Нет или System.String

По умолчанию командлет New-ModuleManifest не формирует никаких выходных данных. При использовании параметра PassThru командлет создает объект System.String, представляющий манифест модуля.

Примечания

Как правило, манифесты модулей не являются необходимым элементом модулей. Тем не менее, манифест модуля необходим для экспорта сборки, установленной в глобальный кэш сборок.

Чтобы добавить или изменить файлы в каталоге $pshome\Modules (%Windir%\System32\WindowsPowerShell\v1.0\Modules), запустите Windows PowerShell командой "Запуск от имени администратора".

"Сеанс" — это экземпляр среды выполнения Windows PowerShell. У сеанса может быть одно или несколько состояний сеанса. По умолчанию сеанс имеет только глобальное состояние сеанса, но каждый импортированный модуль имеет свое собственное состояние сеанса. Состояния сеанса позволяют выполнять команды в модуле без влияния на глобальное состояние сеанса.

"Состояние сеанса вызывающего объекта" представляет собой состояние сеанса, в которое импортируется модуль. Обычно оно означает глобальное состояние сеанса, но если модуль импортирует вложенные модули, "вызывающий объект" является модулем и "состояние сеанса вызывающего объекта" — это состояние сеанса модуля.

Пример 1

C:\PS>New-ModuleManifest

Path: C:\Users\User01\Documents\WindowsPowerShell\Modules\Test-Module\Test-Module.psd1
NestedModules[0]: BackgroundModule.psm1
Author: Jinghao Liu
CompanyName: Fabrikam, Inc.
Copyright: Copyright © 2009 Liu Jinghao. All rights reserved.
ModuleToProcess: TestModule.psm1
Description: Cmdlets to find common errors in scripts.
TypesToProcess[0]: TestTypes.ps1xml
FormatsToProcess[0]: TestFormat.ps1xml
RequiredAssemblies[0]: Test.dll
FileList[0]: Test-Module.psd1
FileList[1]: Test-Module.psm1
FileList[2]: BackgroundModule.psm1
FileList[3]: TestTypes.ps1xml
FileList[4]: TestFormat.ps1xml
FileList[5]: Test.dll
FileList[6]: TestIcon.ico

Описание
-----------
Эта команда создает новый манифест модуля. Командлет запрашивает значения необходимых параметров, включая параметр Path, и создает новый файл манифеста в указанном местоположении.

Выходные данные этой команды отображают ответы на запросы. Чтобы использовать значения по умолчанию, нажмите клавишу ENTER.

Формат приглашения командной строки и правила обработки фраз в кавычках и без кавычек зависят от основной программы, в которой выполняется Windows PowerShell.






Пример 2

C:\PS>New-ModuleManifest -PowerShellVersion 1.0 -AliasesToExport JKBC, DRC, TAC

Описание
-----------
Эта команда создает новый манифест модуля. В команду входят параметры, которые не являются обязательными для командлета (для которых не выводится приглашение). При ответе на приглашение можно указать значения других ключей манифеста.






Пример 3

C:\PS>New-ModuleManifest -RequiredModules FileTransfer,@{ModuleName="BackgroundModule";GUID="486569a2-2784-48bf-af15-70ba837a64d0";ModuleVersion="3.5"}

Описание
-----------
В этом примере показано, как использовать форматы строки и хэш-таблицы значения параметра RequiredModules. В одной команде могут использоваться как строки, так и хэш-таблицы. 

Эта команда создает манифест модуля для модуля, которому требуется модуль FileTransfer и (воображаемый) модуль с именем "BackgroundModule". 

Команда использует строковый формат для указания имени модуля FileTransfer и формат хэш-таблицы для указания имени, GUID и версии модуля BackgroundModule.






См. также