次の方法で共有


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-TypeDataUpdate-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-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

型の 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 つまたは複数のプロパティを指定します。 これらのプロパティは、 コマンドレットと Sort-Object コマンドレットでGroup-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。 このパラメーターの値が の場合は $FalsePropertySerializationSet パラメーターが必要です。

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

Type:Nullable<T>[Boolean]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-MemberName

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

このパラメーターを TypeNameMemberTypeValue、および SecondValue パラメーターと共に使用して、型のプロパティまたはメソッドを追加または変更できます。

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

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

-MemberType

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

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

  • 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

AliasPropertyScriptPropertyCodeProperty、または CodeMethod メンバーの追加値を指定します。

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

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

MemberType パラメーターの値が の場合はScriptPropertySecondValue パラメーターを使用して、追加のスクリプト ブロックを指定できます。 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-TypeDataUpdate-TypeDataパイプすると、オブジェクトの型名と型データがオブジェクト型に取得されます。

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

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

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

-Value

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

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

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

このパラメーターは 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

AppendPathTypeName、または TypeData パラメーターの値を含む文字列をこのコマンドレットにパイプできます。

出力

None

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