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-TypeDataUpdate-TypeData добавляется расширенные данные типа для типа объекта.

Этот метод быстрее, чем с помощью командлета Get-MemberGet-Type или метода для получения типа объекта. Однако при канале коллекции объектов Update-TypeDataон обновляет данные типа первого типа объекта, а затем возвращает ошибку для всех остальных объектов в коллекции, так как элемент уже определен в типе.

Первая команда использует Get-Module командлет для получения модуля PSScheduledJob. Командный объект передает объект Update-TypeData модуля командлету, который обновляет данные типа для типа System.Management.Automation.PSModuleInfo и типы, производные от него, например тип ModuleInfoGrouping, который Get-Module возвращается при использовании параметра ListAvailable в команде.

Команды Update-TypeData добавляют свойство скрипта SupportsUpdatableHelp ко всем импортированным модулям. Значение параметра Value — это скрипт, который возвращает $True , если свойство HelpInfoUri модуля заполняется и в $False противном случае.

Вторая команда передает объекты модуля из Get-ModuleFormat-Table командлета, в котором отображаются свойства Name и SupportsUpdatableHelp всех модулей в списке.

Параметры

-AppendPath

Указывает путь к необязательным .ps1xml файлам. Эти файлы загружаются в том порядке, в котором они были указаны, после загрузки встроенных файлов. Можно также передать значение Update-TypeDataAppendPath в .

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-ListFormat-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-TypeDataTypeData в .

Этот параметр впервые появился в 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-TypeDataUpdate-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, CodePropertyScriptPropertyили 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

Входные данные

String

Можно передать строку, содержащую значения параметров AppendPath, TypeName или TypeData , в этот командлет.

Выходные данные

None

Этот командлет не возвращает выходные данные.