Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Можно расширить объекты .NET Framework, возвращаемые командлетами, функциями и скриптами с помощью файлов типов (.ps1xml
). Файлы типов — это XML-файлы, позволяющие добавлять свойства и методы в существующие объекты. Например, Windows PowerShell предоставляет файл Types.ps1xml, который добавляет элементы к нескольким существующим объектам .NET Framework. Файл Types.ps1xml
находится в каталоге установки Windows PowerShell ($PSHOME
). Вы можете создать собственный файл типов для дальнейшего расширения этих объектов или расширения других объектов. При расширении объекта с помощью файла типов любой экземпляр объекта расширяется новыми элементами.
Расширение объекта System.Array
В следующем примере показано, как Windows PowerShell расширяет объект System.Array в файле Types.ps1xml. По умолчанию объекты System.Array имеют свойство Length
, которое содержит количество объектов в массиве. Однако, поскольку имя "length" не четко описывает свойство, Windows PowerShell добавляет свойство псевдонима Count
, которое отображает то же значение, что и свойство Length
. Следующий XML-код добавляет свойство Count
в тип System.Array.
<Type>
<Name>System.Array</Name>
<Members>
<AliasProperty>
<Name>Count</Name>
<ReferencedMemberName>Length</ReferencedMemberName>
</AliasProperty>
</Members>
</Type>
Чтобы увидеть это новое свойство псевдонима, используйте команду Get-Member в любом массиве, как показано в следующем примере.
Get-Member -InputObject (1,2,3,4)
Команда возвращает следующие результаты.
Name MemberType Definition
---- ---------- ----------
Count AliasProperty Count = Length
Address Method System.Object& Address(Int32 )
Clone Method System.Object Clone()
CopyTo Method System.Void CopyTo(Array array, Int32 index):
Equals Method System.Boolean Equals(Object obj)
Get Method System.Object Get(Int32 )
...
Length Property System.Int32 Length {get;}
Для определения количества объектов в массиве можно использовать свойство Count
или свойство Length
. Рассмотрим пример.
PS> (1, 2, 3, 4).Count
4
PS> (1, 2, 3, 4).Length
4
Файлы пользовательских типов
Чтобы создать файл пользовательских типов, начните с копирования существующего файла типов. Новый файл может иметь любое имя, но он должен иметь расширение .ps1xml
имени файла. При копировании файла можно поместить новый файл в любой каталог, доступный для Windows PowerShell, но полезно разместить файлы в каталоге установки Windows PowerShell ($PSHOME
) или в подкаталоге каталога установки.
Чтобы добавить в файл собственные расширенные типы, добавьте элемент типов для каждого объекта, который требуется расширить. В следующих разделах приведены примеры.
Дополнительные сведения о добавлении свойств и наборов свойств см. в расширенных свойств
Дополнительные сведения о добавлении методов см. в расширенных методов.
Дополнительные сведения о добавлении наборов элементов см. в расширенных наборов элементов.
После определения собственных расширенных типов используйте один из следующих методов, чтобы сделать расширенные объекты доступными:
- Чтобы сделать файл расширенных типов доступным для текущего сеанса, используйте командлет Update-TypeData, чтобы добавить новый файл. Если типы будут иметь приоритет над типами, определенными в других файлах типов (включая файл Types.ps1xml), используйте параметр
PrependData
командлета Update-TypeData. - Чтобы сделать файл расширенных типов доступным для всех будущих сеансов, добавьте файл типов в модуль, экспортируйте текущий сеанс или добавьте команду Update-TypeData в профиль Windows PowerShell.
Файлы типов подписи
Файлы типов должны быть цифрово подписаны, чтобы предотвратить изменение, так как XML может включать блоки скриптов. Дополнительные сведения о добавлении цифровых подписей см. в about_Signing
См. также
определение свойств по умолчанию для объектов
определение методов по умолчанию для объектов
PowerShell