Сведения о встроенных элементах
Краткое описание
Предоставляет сведения о встроенных членах 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 (О классах и настройке требуемого состояния).