Поделиться через


Сведения о встроенных элементах

Краткое описание

Предоставляет сведения о встроенных членах PowerShell, доступных для всех объектов PowerShell.

Подробное описание

При создании объектов PowerShell добавляет некоторые "скрытые" свойства и методы к каждому объекту. Эти свойства и методы называются встроенными элементами. Эти встроенные члены обычно скрыты в представлении. Некоторые из этих элементов можно просмотреть с помощью Get-Member -Force команды .

Представления объектов

Встроенные члены включают набор свойств MemberSet , представляющих представление объекта . Свойства MemberSet можно найти с помощью Get-Member -Force команды в любом объекте PowerShell. Каждый объект PowerShell содержит следующие свойства MemberSet .

psbase

Эта psbase содержит элементы базового объекта без расширения или адаптации.

psadapted

В представлении psadapted отображается базовый объект и адаптированные члены, если они присутствуют. Адаптированные элементы добавляются системой расширенных типов (ETS).

psextended

В представлении psextended отображаютсятолько элементы, добавленные файлами Types.ps1xml и командлетом Add-Member . Любой объект можно расширить во время выполнения с помощью командлета Add-Member .

psobject

Базовый тип всех объектов PowerShell — [PSObject]. Однако при создании объекта PowerShell также создает оболочку для объекта с экземпляром [PSObject] . Член psobject разрешает доступ к экземпляру [PSObject] программы-оболочки. Оболочка содержит методы, свойства и другие сведения об объекте . Использование элемента psobject сравнимо с использованием Get-Member, но есть некоторые отличия, так как он обращается только к экземпляру оболочки.

Сведения о типе

pstypenames

PSTypeNames — это элемент CodeProperty , который перечисляет иерархию типов объектов в порядке наследования. Пример:

$file = Get-Item C:\temp\test.txt
$file.pstypenames
System.IO.FileInfo
System.IO.FileSystemInfo
System.MarshalByRefObject
System.Object

Как показано выше, он начинается с наиболее конкретного типа объекта , System.IO.FileInfoи продолжается до самого универсального типа, System.Object.

Методы

PowerShell добавляет два скрытых метода ко всем объектам PowerShell. Эти методы не видны с помощью команды или завершения нажатия Get-Member -Force клавиши TAB.

ForEach() и Where()

ForEach() Методы и Where() доступны для всех объектов PowerShell. Однако они наиболее полезны при работе с коллекциями. Дополнительные сведения об использовании этих методов см. в разделе about_Arrays.

Свойства

Количество и длина

Свойства Count и Length доступны для всех объектов PowerShell. Они похожи друг на друга, но могут работать по-разному в зависимости от типа данных. Дополнительные сведения об этих свойствах см. в разделе about_Properties.

Скалярные типы индексирования массивов

Если объект не является индексированной коллекцией, использование оператора index для доступа к первому элементу возвращает сам объект . Значения индекса за пределами первого элемента возвращают $null.

PS> (2)[0]
2
PS> (2)[-1]
2
PS> (2)[1] -eq $null
True
PS> (2)[0,0] -eq $null
True

Дополнительные сведения см. в разделе about_Operators.

Метод New() для типов

Начиная с PowerShell 5.0, PowerShell добавляет статический New() метод для всех типов .NET. Приведенные ниже примеры дают тот же результат.

$expression = New-Object -TypeName regex -ArgumentList 'pattern'
$expression = [regex]::new('pattern')

new() Использование метода работает лучше, чем при использовании New-Object.

Дополнительные сведения см. в статье About Classes and Desired State Configuration (О классах и настройке требуемого состояния).