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 загружает данные расширенных типов по мере необходимости. Без параметров перезагружает все Types.ps1xml
файлы, Update-TypeData
загруженные в сеансе, включая файлы всех типов, которые вы добавили. Параметры можно использовать для добавления новых файлов типов, а также добавления и замены данных расширенного 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
, например, если вы добавили или изменили тип в файле. Вы можете либо повторить предыдущую команду для TypesA.types.ps1xml
файла, либо выполнить Update-TypeData
команду без параметров, так как TypesA.types.ps1xml
уже находится в списке типов файлов для текущего сеанса.
Update-TypeData -PrependPath TypesA.types.ps1xml, TypesB.types.ps1xml
Update-TypeData -PrependPath TypesA.types.ps1xml
Пример 3. Добавление свойства скрипта в объекты DateTime
В этом примере используется для Update-TypeData
добавления свойства скрипта Quarter к объектам 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 — свойства списка по умолчанию. Выбранные свойства включают новое свойство скрипта Quarter , которое было добавлено в предыдущем примере.
Вторая команда использует 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
. Эти файлы загружаются в том порядке, в котором они были указаны, после загрузки встроенных файлов. Вы также можете передать значение AppendPath в Update-TypeData
.
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-Custom
, Format-Table
если другие свойства не указаны.
Введите имена стандартных или расширенных свойств типа. В качестве значения этого параметра могут выступать имена типов, добавленных в рамках той же команды.
Это значение действует только при отсутствии списка, таблицы или пользовательских представлений, соответственно определенных для типа в 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 этот параметр позволяет добавить или изменить свойство или метод типа. Допустимые значения для этого параметра:
- ПсевдонимСвойства
- CodeMethod
- CodeProperty
- Примечаниесвойства
- 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
команду. Вы также можете передать объект TypeData по конвейеру в Update-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
Этот командлет не возвращает выходные данные.