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
できます。 動的、つまりファイルを使用せずに追加される型データは、現在のセッションのみに追加されます。 すべてのセッションに型データを追加するには、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-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 つまたは複数のプロパティを指定します。 これらのプロパティは、他のプロパティが 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パラメーターと共にこのパラメーターを使用して、型のプロパティまたはメソッドを追加または変更します。 このパラメーターの有効値は、次のとおりです。
- 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、ScriptProperty、CodeProperty、または CodeMethod メンバーの追加値を指定します。
TypeName、MemberType、Value、SecondValue パラメーターと共にこのパラメーターを使用して、型のプロパティまたはメソッドを追加または変更します。
MemberType パラメーターの値が指定されている場合、SecondValue パラメーターの値はAliasProperty
データ型である必要があります。 PowerShell は、エイリアス プロパティの値を指定した型に変換 (つまりキャスト) します。 たとえば、文字列プロパティの代替名を提供するエイリアス プロパティを追加する場合は、System.Int32 の SecondValue を指定して、エイリアス化された文字列値を整数に変換することもできます。
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、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
プロパティまたはメソッドの値を指定します。
、、、またはCodeMethod
メンバーをAliasProperty
追加する場合は、SecondValue パラメーターを使用して追加情報を追加できます。 ScriptProperty
CodeProperty
このパラメーターを 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 の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示