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-TypeDataTypes.ps1xmlできます。 動的、つまりファイルを使用せずに追加される型データは、現在のセッションのみに追加されます。 すべてのセッションに型データを追加するには、PowerShell プロファイルに Update-TypeData コマンドを追加します。 詳細については、「about_Profiles」を参照してください。

また、Windows PowerShell 3.0 以降では、コマンドレットを Get-TypeData 使用して現在のセッションの拡張型を取得し、コマンドレットを Remove-TypeData 使用して現在のセッションから拡張型を削除できます。

プロパティで発生する例外、またはプロパティをコマンドに追加した場合の Update-TypeData 例外は、エラーを報告しません。 これは、書式設定および出力の際に、多くの一般的な型で発生する例外を抑制します。 .NET プロパティを取得する場合は、次の例に示すように、代わりにメソッド構文を使用して例外の抑制を回避できます。

"hello".get_Length()

メソッドの構文は、.NET プロパティでのみ使用できることに注意してください。 コマンドレットを実行 Update-TypeData して追加されたプロパティは、メソッド構文を使用できません。

PowerShell のTypes.ps1xmlファイルの詳細については、「about_Types.ps1xml」を参照してください

例 1: 拡張型を更新する

Update-TypeData

このコマンドは、セッションで既に Types.ps1xml 使用されているファイルから拡張型の構成を更新します。

例 2: 型を複数回更新する

この例では、同じセッションで型ファイル内の型を複数回更新する方法を示します。

最初のコマンドは、拡張型の構成をファイルから更新しTypes.ps1xml、最初にファイルとTypesB.types.ps1xmlファイルをTypesA.types.ps1xml処理します。

2 番目のコマンドは、ファイル内の型を 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現在のセッションの System.DateTime オブジェクト (コマンドレットから返されたものなど) に Quarter スクリプト プロパティを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を参照してください

2 番目のコマンドは、現在の日付の新しい 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 スクリプト プロパティが含まれます。

2 番目のコマンドでは、コマンドレットを 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 型の型データと、そこから派生した型 (コマンドで ListAvailable パラメーターを使用するときに返される Get-Module ModuleInfoGrouping 型など) が更新されます。

このコマンドは Update-TypeData 、インポートされたすべてのモジュールに SupportsUpdatableHelp スクリプト プロパティを追加します。 Value パラメーターの値は、モジュールの HelpInfoUri プロパティが設定されている場合、$Falseそれ以外の場合に返す$Trueスクリプトです。

2 番目のコマンドは、モジュール オブジェクトをコマンドレットにGet-ModuleFormat-Tableパイプします。このコマンドレットには、一覧内のすべてのモジュールの Name プロパティと SupportsUpdatableHelp プロパティが表示されます

パラメーター

-AppendPath

省略可能 .ps1xml なファイルへのパスを指定します。 指定されたファイルは、組み込みファイルが読み込まれた後にリストされる順序で、読み込まれます。 AppendPathUpdate-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

型の 1 つまたは複数のプロパティを指定します。 これらのプロパティは、他のプロパティが 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

型の 1 つまたは複数のプロパティを指定します。 これらのプロパティは、他のプロパティが 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、ValueSecondValueパラメーターと共にこのパラメーターを使用して、型のプロパティまたはメソッドを追加または変更します。

このパラメーターは Windows PowerShell 3.0 で導入されました。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-MemberType

追加または変更するメンバーの型を指定します。

TypeName、MemberType、ValueSecondValueパラメーターと共にこのパラメーターを使用して、型のプロパティまたはメソッドを追加または変更します。 このパラメーターの有効値は、次のとおりです。

  • AliasProperty
  • CodeMethod
  • CodeProperty
  • Noteproperty
  • 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、ScriptPropertyCodePropertyまたは CodeMethod メンバーの追加値を指定します。

TypeName、MemberType、ValueSecondValue パラメーターと共にこのパラメーターを使用して、型のプロパティまたはメソッドを追加または変更します。

MemberType パラメーターの値が指定されている場合、SecondValue パラメーターの値はAliasPropertyデータ型である必要があります。 PowerShell は、エイリアス プロパティの値を指定した型に変換 (つまりキャスト) します。 たとえば、文字列プロパティの代替名を提供するエイリアス プロパティを追加する場合は、System.Int32SecondValue を指定して、エイリアス化された文字列値を整数に変換することもできます。

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.ComponentModel.TypeConverter クラスまたは System.Management.Automation.PSTypeConverter クラスから派生した System.Type 値を入力します。

このパラメーターは 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、MemberTypeValue、SecondValue の各パラメーターと共に使用して、型のプロパティまたはメソッドを追加または変更します。

このパラメーターは Windows PowerShell 3.0 で導入されました。

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Value

プロパティまたはメソッドの値を指定します。

、、、またはCodeMethodメンバーをAliasProperty追加する場合は、SecondValue パラメーターを使用して追加情報を追加できます。 ScriptPropertyCodeProperty

このパラメーターを MemberName、MemberTypeValue、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

このコマンドレットは、出力を返しません。