Update-TypeData
Обновляет данные расширенного типа во время сеанса.
Синтаксис
Update-TypeData
[[-AppendPath] <String[]>]
[-PrependPath <String[]>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Update-TypeData
[-MemberType <PSMemberTypes>]
[-MemberName <String>]
[-Value <Object>]
[-SecondValue <Object>]
[-TypeConverter <Type>]
[-TypeAdapter <Type>]
[-SerializationMethod <String>]
[-TargetTypeForDeserialization <Type>]
[-SerializationDepth <Int32>]
[-DefaultDisplayProperty <String>]
[-InheritPropertySerializationSet <Nullable`1>]
[-StringSerializationSource <String>]
[-DefaultDisplayPropertySet <String[]>]
[-DefaultKeyPropertySet <String[]>]
[-PropertySerializationSet <String[]>]
-TypeName <String>
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Update-TypeData
[-Force]
[-TypeData] <TypeData[]>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Описание
Командлет Update-TypeData
обновляет данные расширенного типа в сеансе, перезагрузив Types.ps1xml
файлы в память и добавив новые данные расширенного типа.
По умолчанию PowerShell загружает данные расширенного типа по мере необходимости. Без параметров Update-TypeData
перезагрузит все Types.ps1xml
файлы, загруженные в сеансе, включая все добавленные файлы типов. Параметры можно использовать для добавления новых файлов типов и добавления и замены данных расширенного Update-TypeData
типа.
Командлет Update-TypeData
можно использовать для предварительной загрузки всех данных типа. Эта функция особенно полезна при разработке собственных типов, так как позволяет загружать их для тестирования.
Начиная с Windows PowerShell 3.0, можно использовать для Update-TypeData
добавления и замены данных расширенного типа в сеансе без использования Types.ps1xml
файла. Данные типа, добавленные динамически, то есть без помощи файла, добавляются только в текущий сеанс. Чтобы добавить данные типа ко всем сеансам, добавьте Update-TypeData
команду в профиль PowerShell. Дополнительные сведения см. в разделе about_Profiles.
Кроме того, начиная с Windows PowerShell 3.0, можно использовать Get-TypeData
командлет для получения расширенных типов в текущем сеансе и Remove-TypeData
командлета для удаления расширенных типов из текущего сеанса.
Исключения, возникающие в свойствах или добавлении свойств в Update-TypeData
команду, не сообщают об ошибках. Это необходимо для подавления исключений, которые могут возникнуть во многих распространенных типах в процессе форматирования и вывода. При получении свойств .NET можно обойти подавление исключений с помощью синтаксиса метода, как показано в следующем примере:
"hello".get_Length()
Обратите внимание, что синтаксис метода можно использовать только с свойствами .NET. Свойства, добавленные при выполнении командлета Update-TypeData
, не могут использовать синтаксис метода.
Дополнительные сведения о файлах Types.ps1xml
в PowerShell см. в разделе about_Types.ps1xml.
Примеры
Пример 1. Обновление расширенных типов
Update-TypeData
Эта команда обновляет конфигурацию расширенного типа из Types.ps1xml
файлов, которые уже использовались в сеансе.
Пример 2. Типы обновлений несколько раз
В этом примере показано, как обновлять типы в файле типов несколько раз в одном сеансе.
Первая команда обновляет конфигурацию расширенного Types.ps1xml
типа из файлов, обрабатывая TypesA.types.ps1xml
файлы и TypesB.types.ps1xml
файлы.
Вторая команда показывает, как обновить TypesA.types.ps1xml
повторно, например, если вы добавили или изменили тип в файле. Вы можете повторить предыдущую Update-TypeData
команду для TypesA.types.ps1xml
файла или выполнить команду без параметров, так как TypesA.types.ps1xml
уже находится в списке файлов типов для текущего сеанса.
Update-TypeData -PrependPath TypesA.types.ps1xml, TypesB.types.ps1xml
Update-TypeData -PrependPath TypesA.types.ps1xml
Пример 3. Добавление свойства скрипта в объекты DateTime
В этом примере используется Update-TypeData
для добавления свойства скрипта "Квартал" в объекты System.DateTime в текущем сеансе, например возвращаемых командлетомGet-Date
.
Update-TypeData -TypeName "System.DateTime" -MemberType ScriptProperty -MemberName "Quarter" -Value {
if ($this.Month -in @(1,2,3)) {"Q1"}
elseif ($this.Month -in @(4,5,6)) {"Q2"}
elseif ($this.Month -in @(7,8,9)) {"Q3"}
else {"Q4"}
}
(Get-Date).Quarter
Q1
Команда Update-TypeData
использует параметр TypeName для указания типа System.DateTime, параметра MemberName, чтобы указать имя нового свойства, свойство MemberType, чтобы указать тип ScriptProperty и параметр Value, чтобы указать скрипт, определяющий годовой квартал.
Значение свойства Value — это сценарий, вычисляющий текущий годовой квартал. Блок скрипта использует $this
автоматическую переменную для представления текущего экземпляра объекта и оператора In, чтобы определить, отображается ли значение месяца в каждом целочисленном массиве. Дополнительные сведения об операторе -in
см. в about_Comparison_Operators.
Вторая команда возвращает новое свойство Quarter текущей даты.
Пример 4. Обновление типа, отображающегося в списках по умолчанию
В этом примере показано, как задать свойства типа, отображаемого в списках по умолчанию, то есть если свойства не указаны. Так как данные типа не указаны в Types.ps1xml
файле, он действует только в текущем сеансе.
Update-TypeData -TypeName "System.DateTime" -DefaultDisplayPropertySet "DateTime, DayOfYear, Quarter"
Get-Date | Format-List
Thursday, March 15, 2012 12:00:00 AM
DayOfYear : 75
Quarter : Q1
Первая команда использует Update-TypeData
командлет для задания свойств списка по умолчанию для типа System.DateTime . С помощью параметра TypeName она определяет тип, а с помощью параметраDefaultDisplayPropertySet — свойства списка по умолчанию. Выбранные свойства включают новое свойство скрипта Квартал , добавленное в предыдущем примере.
Вторая команда использует Get-Date
командлет для получения объекта System.DateTime , представляющего текущую дату. Команда использует оператор конвейера (|
) для отправки объекта DateTime командлету Format-List
. Format-List
Так как команда не указывает свойства, отображаемые в списке, PowerShell использует значения по умолчанию, установленные командойUpdate-TypeData
.
Пример 5. Обновление данных типа для конвейерного объекта
Get-Module | Update-TypeData -MemberType ScriptProperty -MemberName "SupportsUpdatableHelp" -Value {
if ($this.HelpInfoUri) {$True} else {$False}
}
Get-Module -ListAvailable | Format-Table Name, SupportsUpdatableHelp
Name SupportsUpdatableHelp
---- ---------------------
Microsoft.PowerShell.Diagnostics True
Microsoft.PowerShell.Host True
Microsoft.PowerShell.Management True
Microsoft.PowerShell.Security True
Microsoft.PowerShell.Utility True
Microsoft.WSMan.Management True
PSDiagnostics False
PSScheduledJob True
PSWorkflow True
ServerManager True
TroubleshootingPack False
В этом примере показано, что при канале объекта Update-TypeData
Update-TypeData
добавляется расширенные данные типа для типа объекта.
Этот метод быстрее, чем с помощью командлета Get-Member
Get-Type
или метода для получения типа объекта. Однако при канале коллекции объектов Update-TypeData
он обновляет данные типа первого типа объекта, а затем возвращает ошибку для всех остальных объектов в коллекции, так как элемент уже определен в типе.
Первая команда использует Get-Module
командлет для получения модуля PSScheduledJob. Командный объект передает объект Update-TypeData
модуля командлету, который обновляет данные типа для типа System.Management.Automation.PSModuleInfo и типы, производные от него, например тип ModuleInfoGrouping, который Get-Module
возвращается при использовании параметра ListAvailable в команде.
Команды Update-TypeData
добавляют свойство скрипта SupportsUpdatableHelp ко всем импортированным модулям. Значение параметра Value — это скрипт, который возвращает $True
, если свойство HelpInfoUri модуля заполняется и в $False
противном случае.
Вторая команда передает объекты модуля из Get-Module
Format-Table
командлета, в котором отображаются свойства Name и SupportsUpdatableHelp всех модулей в списке.
Параметры
-AppendPath
Указывает путь к необязательным .ps1xml
файлам. Эти файлы загружаются в том порядке, в котором они были указаны, после загрузки встроенных файлов. Можно также передать значение Update-TypeData
AppendPath в .
Type: | String[] |
Aliases: | PSPath, Path |
Position: | 0 |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Confirm
Запрос подтверждения перед выполнением командлета.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-DefaultDisplayProperty
Указывает свойство типа, отображаемого командлетом Format-Wide
, если другие свойства не указаны.
Введите имя стандартного или расширенного свойства типа. В качестве значения этого параметра может выступать имя типа, добавленного в рамках той же команды.
Это значение действует только в том случае, если для типа в файле нет широких представлений Format.ps1xml
.
Этот параметр впервые появился в Windows PowerShell 3.0.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-DefaultDisplayPropertySet
Определяет одно или несколько свойств типа. Эти свойства отображаются командлетами Format-List
Format-Table
, а Format-Custom
командлеты не указываются.
Введите имена стандартных или расширенных свойств типа. В качестве значения этого параметра могут выступать имена типов, добавленных в рамках той же команды.
Это значение действует только в том случае, если нет списка, таблицы или пользовательских представлений соответственно, определенных для типа в Format.ps1xml
файле.
Этот параметр впервые появился в Windows PowerShell 3.0.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-DefaultKeyPropertySet
Определяет одно или несколько свойств типа. Эти свойства используются Group-Object
командлетами, Sort-Object
если другие свойства не указаны.
Введите имена стандартных или расширенных свойств типа. В качестве значения этого параметра могут выступать имена типов, добавленных в рамках той же команды.
Этот параметр впервые появился в Windows PowerShell 3.0.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Force
Указывает, что командлет использует указанные данные типа, даже если данные типа уже указаны для этого типа.
Этот параметр впервые появился в Windows PowerShell 3.0.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-InheritPropertySerializationSet
Указывает, наследуется ли набор свойств, сериализованных. Значение по умолчанию — $Null
. Допустимые значения для этого параметра:
$True
. набор свойств наследуется.$False
. набор свойств не наследуется.$Null
. наследование не определено.
Этот параметр действителен только в том случае, если значение параметра SerializationMethod равно SpecificProperties
. Если значение этого параметра равно $False
, требуется параметр PropertySerializationSet .
Этот параметр впервые появился в Windows PowerShell 3.0.
Type: | Nullable<T>[Boolean] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-MemberName
Определяет имя свойства или метода.
Вместе с параметрами TypeName, MemberType, Value и SecondValue этот параметр позволяет добавить или изменить свойство или метод типа.
Этот параметр впервые появился в Windows PowerShell 3.0.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-MemberType
Определяет тип элемента для добавления или изменения.
Вместе с параметрами TypeName, MemberType, Value и SecondValue этот параметр позволяет добавить или изменить свойство или метод типа. Допустимые значения для этого параметра:
- ПсевдонимProperty
- CodeMethod
- CodeProperty
- Примечаниеproperty
- ScriptMethod
- ScriptProperty
Сведения об этих значениях см. в разделе "Перечисление PSMemberTypes".
Этот параметр впервые появился в Windows PowerShell 3.0.
Type: | PSMemberTypes |
Accepted values: | NoteProperty, AliasProperty, ScriptProperty, CodeProperty, ScriptMethod, CodeMethod |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-PrependPath
Указывает путь к необязательным .ps1xml
файлам. Эти файлы загружаются в том порядке, в котором они были указаны, до загрузки встроенных файлов.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-PropertySerializationSet
Определяет имена сериализуемых свойств. Используйте этот параметр, если параметр SerializationMethod имеет значение SpecificProperties.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-SecondValue
Определяет дополнительные значения для элементов AliasProperty, ScriptProperty, CodeProperty или CodeMethod.
Используйте этот параметр с параметрами TypeName, MemberType, Value и SecondValue, чтобы добавить или изменить свойство или метод типа.
Если значение параметра MemberType равно AliasProperty
, значение параметра SecondValue должно быть типом данных. PowerShell преобразует (то есть приводит) значение свойства псевдонима к указанному типу. Например, если добавить свойство псевдонима, которое предоставляет альтернативное имя строкового свойства, можно также указать значение SecondValuesystem.Int32 , чтобы преобразовать псевдоним строковое значение в целое число.
Если значение параметра MemberType имеет значение ScriptProperty
, можно использовать параметр SecondValue для указания дополнительного блока скрипта. Блок скрипта в значении параметра Value получает значение переменной. Блок скрипта в значении параметра SecondValue устанавливает значение переменной.
Этот параметр впервые появился в Windows PowerShell 3.0.
Type: | Object |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-SerializationDepth
Определяет, сколько уровней объектов типа будут сериализованы как строки. Значение 1
по умолчанию сериализует объект и его свойства. Значение сериализации 0
объекта, но не его свойств. Значение сериализации 2
объекта, его свойств и любых объектов в значениях свойств.
Этот параметр впервые появился в Windows PowerShell 3.0.
Type: | Int32 |
Position: | Named |
Default value: | 1 |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-SerializationMethod
Указывает метод сериализации для типа. Метод сериализации определяет сериализуемые свойства типа и метод сериализации. Допустимые значения для этого параметра:
AllPublicProperties
. сериализуются все открытые свойства типа. Можно использовать параметр SerializationDepth, позволяющий включить сериализацию дочерних свойств.String
. типа сериализуется в виде строки. Можно использовать параметр StringSerializationSource, позволяющий указать свойство типа для использования в результате сериализации. В противном случае тип сериализуется с использованием метода объекта ToString.SpecificProperties
. Сериализируйте только указанные свойства этого типа. Параметр PropertySerializationSet позволяет указать, какие свойства типа требуют сериализации. Можно также использовать параметр InheritPropertySerializationSet, определяющий наследование набора свойств, и параметр SerializationDepth, определяющий сериализацию дочерних свойств.
В PowerShell методы сериализации хранятся во внутренних объектах PSStandardMembers .
Этот параметр впервые появился в Windows PowerShell 3.0.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-StringSerializationSource
Определяет имя свойства типа. Значение указанного свойства используется в качестве результате сериализации. Этот параметр действителен, только если значение параметра SerializationMethod имеет значение String.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-TargetTypeForDeserialization
Определяет, в какой типа должны конвертироваться объекты данного типа при десериализации.
Этот параметр впервые появился в Windows PowerShell 3.0.
Type: | Type |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-TypeAdapter
Указывает тип адаптера типа, например Microsoft.PowerShell.Cim.CimInstanceAdapter. Адаптер типа позволяет PowerShell получать элементы типа.
Этот параметр впервые появился в Windows PowerShell 3.0.
Type: | Type |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-TypeConverter
Определяет преобразователь типов для конвертации значений из одного типа в другой. Если для типа определен преобразователь, для конвертации используется экземпляр этого преобразователя.
Введите значение System.Type, которое является производным от класса System.ComponentModel.TypeConverter или System.Management.Automation.PSTypeConverter.
Этот параметр впервые появился в Windows PowerShell 3.0.
Type: | Type |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-TypeData
Указывает массив данных типа, которые этот командлет добавляет в сеанс. Введите переменную, содержащую объект TypeData или команду, которая получает объект TypeData, например Get-TypeData
команду. Можно также передать объект Update-TypeData
TypeData в .
Этот параметр впервые появился в Windows PowerShell 3.0.
Type: | TypeData[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-TypeName
Определяет имя типа для расширения.
Для типов в пространстве имен System вводятся краткие имена. В остальных случаях требуется полное имя типа. Подстановочные знаки не поддерживаются.
Имена типов можно передавать в Update-TypeData
. При отправке объекта Update-TypeData
Update-TypeData
в объект возвращает имя типа объекта и тип данных типа в тип объекта.
Вместе с параметрами MemberName, MemberType, Value и SecondValue этот параметр позволяет добавить или изменить свойство или метод типа.
Этот параметр впервые появился в Windows PowerShell 3.0.
Type: | String |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Value
Определяет значение свойства или метода.
Если вы добавляете AliasProperty
, CodeProperty
ScriptProperty
или CodeMethod
член, можно использовать параметр SecondValue для добавления дополнительных сведений.
Вместе с параметрами MemberName, MemberType, Value и SecondValue этот параметр позволяет добавить или изменить свойство или метод типа.
Этот параметр впервые появился в Windows PowerShell 3.0.
Type: | Object |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-WhatIf
Показывает, что произойдет при запуске командлета. Командлет не выполняется.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Входные данные
Можно передать строку, содержащую значения параметров AppendPath, TypeName или TypeData , в этот командлет.
Выходные данные
None
Этот командлет не возвращает выходные данные.
Связанные ссылки
PowerShell
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по