Update-TypeData

Aktualisiert die erweiterten Typdaten in der Sitzung.

Syntax

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

Beschreibung

Das Update-TypeData Cmdlet aktualisiert die erweiterten Typdaten in der Sitzung, indem die Dateien in den Types.ps1xml Arbeitsspeicher neu geladen und neue erweiterte Typdaten hinzugefügt werden.

Standardmäßig lädt PowerShell erweiterte Typdaten nach Bedarf. Ohne Parameter laden Sie alle Types.ps1xml Dateien neu, Update-TypeData die sie in der Sitzung geladen hat, einschließlich aller Typdateien, die Sie hinzugefügt haben. Sie können die Parameter Update-TypeData verwenden, um neue Typdateien hinzuzufügen und erweiterte Typdaten hinzuzufügen und zu ersetzen.

Das Update-TypeData Cmdlet kann verwendet werden, um alle Typdaten vorab zu laden. Diese Funktion ist besonders nützlich, wenn Sie Typen entwickeln und diese neuen Typen zu Testzwecken laden möchten.

Ab Windows PowerShell 3.0 können Sie erweiterte Update-TypeData Typdaten in der Sitzung hinzufügen und ersetzen, ohne eine Types.ps1xml Datei zu verwenden. Typdaten die dynamisch, d. h. ohne Datei, hinzugefügt werden, werden nur zur aktuellen Sitzung hinzugefügt. Um allen Sitzungen die Typdaten hinzuzufügen, fügen Sie Ihrem PowerShell-Profil einen Update-TypeData Befehl hinzu. Weitere Informationen finden Sie unter about_Profiles.

Außerdem können Sie ab Windows PowerShell 3.0 das Get-TypeData Cmdlet verwenden, um die erweiterten Typen in der aktuellen Sitzung und das Remove-TypeData Cmdlet abzurufen, um erweiterte Typen aus der aktuellen Sitzung zu löschen.

Ausnahmen, die in Eigenschaften auftreten, oder vom Hinzufügen von Eigenschaften zu einem Update-TypeData Befehl, melden keine Fehler. Dadurch werden Ausnahmen unterdrückt, die während der Formatierung und Ausgabe in vielen gängigen Typen auftreten würden. Wenn Sie .NET-Eigenschaften abrufen, können Sie stattdessen mithilfe der Methodensyntax die Unterdrückung von Ausnahmen umgehen, wie im folgenden Beispiel gezeigt:

"hello".get_Length()

Beachten Sie, dass die Methodensyntax nur mit .NET-Eigenschaften verwendet werden kann. Eigenschaften, die durch Ausführen des Update-TypeData Cmdlets hinzugefügt werden, können keine Methodensyntax verwenden.

Weitere Informationen zu den Types.ps1xml Dateien in PowerShell finden Sie unter about_Types.ps1xml.

Beispiele

Beispiel 1: Aktualisieren erweiterter Typen

Update-TypeData

Mit diesem Befehl wird die konfiguration des erweiterten Typs aus den Types.ps1xml Dateien aktualisiert, die bereits in der Sitzung verwendet wurden.

Beispiel 2: Mehrfache Aktualisierungstypen

In diesem Beispiel wird gezeigt, wie die Typen in einer Typdatei mehrmals in derselben Sitzung aktualisiert werden.

Der erste Befehl aktualisiert die konfiguration des erweiterten Typs aus den Types.ps1xml Dateien, verarbeitet zuerst die TypesA.types.ps1xml Dateien und TypesB.types.ps1xml Dateien.

Der zweite Befehl zeigt, wie Sie die TypesA.types.ps1xml Aktualisierung erneut ausführen, z. B. wenn Sie einen Typ in der Datei hinzugefügt oder geändert haben. Sie können entweder den vorherigen Befehl für die TypesA.types.ps1xml Datei wiederholen oder einen Update-TypeData Befehl ohne Parameter ausführen, da TypesA.types.ps1xml sich bereits in der Typdateiliste für die aktuelle Sitzung befindet.

Update-TypeData -PrependPath TypesA.types.ps1xml, TypesB.types.ps1xml
Update-TypeData -PrependPath TypesA.types.ps1xml

Beispiel 3: Hinzufügen einer Skripteigenschaft zu DateTime-Objekten

In diesem Beispiel wird Update-TypeData die Eigenschaft "Quarter "-Skript zu System.DateTime-Objekten in der aktuellen Sitzung hinzugefügt, z. B. die vom Get-Date Cmdlet zurückgegebenen.

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

Der Update-TypeData Befehl verwendet den TypeName-Parameter , um den System.DateTime-Typ , den MemberName-Parameter anzugeben, um einen Namen für die neue Eigenschaft anzugeben, die MemberType-Eigenschaft , um den ScriptProperty-Typ anzugeben, und den Value-Parameter , um das Skript anzugeben, das das jährliche Quartal bestimmt.

Der Wert der Value-Eigenschaft ist ein Skript, das das aktuelle Jahresquartal berechnet. Der Skriptblock verwendet die $this automatische Variable, um die aktuelle Instanz des Objekts und den In-Operator darzustellen, um zu bestimmen, ob der Monatswert in jedem ganzzahligen Array angezeigt wird. Weitere Informationen zum -in Operator finden Sie unter about_Comparison_Operators.

Der zweite Befehl ruft die neue Quarter-Eigenschaft des aktuellen Datums ab.

Beispiel 4: Aktualisieren eines Typs, der standardmäßig in Listen angezeigt wird

In diesem Beispiel wird gezeigt, wie die Eigenschaften eines Typs festgelegt werden, der standardmäßig in Listen angezeigt wird, d. h., wenn keine Eigenschaften angegeben werden. Da die Typdaten in einer Types.ps1xml Datei nicht angegeben sind, ist sie nur in der aktuellen Sitzung wirksam.

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

Der erste Befehl verwendet das Update-TypeData Cmdlet, um die Standardlisteneigenschaften für den System.DateTime-Typ festzulegen. Der Befehl verwendet den TypeName-Parameter , um den Typ und den DefaultDisplayPropertySet-Parameter anzugeben, um die Standardeigenschaften für eine Liste anzugeben. Die ausgewählten Eigenschaften enthalten die neue Quartalsskripteigenschaft , die in einem vorherigen Beispiel hinzugefügt wurde.

Der zweite Befehl verwendet das Get-Date Cmdlet, um ein System.DateTime-Objekt abzurufen, das das aktuelle Datum darstellt. Der Befehl verwendet einen Pipelineoperator (|), um das DateTime-Objekt an das Format-List Cmdlet zu senden. Da der Format-List Befehl die eigenschaften, die in der Liste angezeigt werden sollen, nicht angibt, verwendet PowerShell die Standardwerte, die Update-TypeData vom Befehl erstellt wurden.

Beispiel 5: Aktualisieren von Typdaten für ein weitergeleitetes Objekt

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

In diesem Beispiel wird veranschaulicht, dass beim Pipen eines Objekts Update-TypeDataUpdate-TypeData an den Objekttyp erweiterte Typdaten für den Objekttyp hinzugefügt werden.

Diese Technik ist schneller als die Verwendung des Get-Member Cmdlets oder der Get-Type Methode zum Abrufen des Objekttyps. Wenn Sie jedoch eine Auflistung von Objekten an Update-TypeDatapipen, aktualisiert sie die Typdaten des ersten Objekttyps und gibt dann einen Fehler für alle anderen Objekte in der Auflistung zurück, da das Element bereits für den Typ definiert ist.

Der erste Befehl verwendet das Get-Module Cmdlet, um das PSScheduledJob-Modul abzurufen. Der Befehl leitet das Modulobjekt an das Update-TypeData Cmdlet weiter, wodurch die Typdaten für den System.Management.Automation.PSModuleInfo-Typ und die daraus abgeleiteten Typen aktualisiert werden, z. B. der ModulInfoGrouping-Typ Get-Module , der zurückgegeben wird, wenn Sie den Parameter ListAvailable im Befehl verwenden.

Mit Update-TypeData den Befehlen wird die Skripteigenschaft SupportsUpdatableHelp allen importierten Modulen hinzugefügt. Der Wert des Value-Parameters ist ein Skript, das zurückgibt $True , wenn die HelpInfoUri-Eigenschaft des Moduls aufgefüllt wird und $False andernfalls.

Mit dem zweiten Befehl werden die Modulobjekte von Get-Module dem Format-Table Cmdlet geleitet, in dem die Eigenschaften Name und SupportsUpdatableHelp aller Module in einer Liste angezeigt werden.

Parameter

-AppendPath

Gibt den Pfad zu optionalen .ps1xml Dateien an. Die angegebenen Dateien werden in der Reihenfolge geladen, in der sie nach dem Laden der integrierten Dateien aufgelistet sind. Sie können auch einen AppendPath-Wert an Update-TypeData.

Type:String[]
Aliases:PSPath, Path
Position:0
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Confirm

Hiermit werden Sie vor der Ausführung des Cmdlets zur Bestätigung aufgefordert.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DefaultDisplayProperty

Gibt die Eigenschaft des Typs an, der Format-Wide vom Cmdlet angezeigt wird, wenn keine anderen Eigenschaften angegeben werden.

Geben Sie den Namen einer Standardeigenschaft oder erweiterten Eigenschaft des Typs ein. Der Wert dieses Parameters kann der Name eines Typs sein, der im selben Befehl hinzugefügt wird.

Dieser Wert ist nur wirksam, wenn für den Typ in einer Format.ps1xml Datei keine breiten Ansichten definiert sind.

Dieser Parameter wurde in Windows PowerShell 3.0 eingeführt.

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

-DefaultDisplayPropertySet

Gibt eine oder mehrere Eigenschaften des Typs an. Diese Eigenschaften werden von den Format-ListCmdlets angezeigtFormat-Custom, Format-Tablewenn keine anderen Eigenschaften angegeben werden.

Geben Sie die Namen der Standardeigenschaften oder erweiterten Eigenschaften des Typs ein. Der Wert dieses Parameters kann der Name von Typen sein, die im selben Befehl hinzugefügt werden.

Dieser Wert ist nur wirksam, wenn es keine Listen-, Tabellen- oder benutzerdefinierten Ansichten gibt, die für den Typ in einer Format.ps1xml Datei definiert sind.

Dieser Parameter wurde in Windows PowerShell 3.0 eingeführt.

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

-DefaultKeyPropertySet

Gibt eine oder mehrere Eigenschaften des Typs an. Diese Eigenschaften werden von den Group-Object Und-Cmdlets Sort-Object verwendet, wenn keine anderen Eigenschaften angegeben werden.

Geben Sie die Namen der Standardeigenschaften oder erweiterten Eigenschaften des Typs ein. Der Wert dieses Parameters kann der Name von Typen sein, die im selben Befehl hinzugefügt werden.

Dieser Parameter wurde in Windows PowerShell 3.0 eingeführt.

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

-Force

Gibt an, dass das Cmdlet die angegebenen Typdaten verwendet, auch wenn typdaten bereits für diesen Typ angegeben wurden.

Dieser Parameter wurde in Windows PowerShell 3.0 eingeführt.

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

-InheritPropertySerializationSet

Gibt an, ob der Satz von Eigenschaften, die serialisiert werden, geerbt wird. Der Standardwert ist $Null. Zulässige Werte für diesen Parameter:

  • $True. Der Eigenschaftensatz wird geerbt.
  • $False. Der Eigenschaftensatz wird nicht geerbt.
  • $Null. Die Vererbung ist nicht definiert.

Dieser Parameter ist nur gültig, wenn der Wert des SerializationMethod-Parameters lautet SpecificProperties. Wenn der Wert dieses Parameters lautet $False, ist der PropertySerializationSet-Parameter erforderlich.

Dieser Parameter wurde in Windows PowerShell 3.0 eingeführt.

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

-MemberName

Gibt den Namen einer Eigenschaft oder Methode an.

Verwenden Sie diesen Parameter mit den Parametern TypeName, MemberType, Value und SecondValue , um eine Eigenschaft oder Methode eines Typs hinzuzufügen oder zu ändern.

Dieser Parameter wurde in Windows PowerShell 3.0 eingeführt.

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

-MemberType

Gibt den Typ des Members an, der hinzugefügt oder geändert werden soll.

Verwenden Sie diesen Parameter mit den Parametern TypeName, MemberType, Value und SecondValue , um eine Eigenschaft oder Methode eines Typs hinzuzufügen oder zu ändern. Zulässige Werte für diesen Parameter:

  • AliasProperty
  • CodeMethod
  • CodeProperty
  • Hinweiseigenschaft
  • ScriptMethod
  • ScriptProperty

Informationen zu diesen Werten finden Sie unter PSMemberTypes-Aufzählung.

Dieser Parameter wurde in Windows PowerShell 3.0 eingeführt.

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

Gibt den Pfad zu den optionalen .ps1xml Dateien an. Die angegebenen Dateien werden in der Reihenfolge geladen, in der sie vor dem Laden der integrierten Dateien aufgelistet sind.

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

-PropertySerializationSet

Gibt die Namen der Eigenschaften an, die serialisiert werden. Verwenden Sie diesen Parameter, wenn der Wert des SerializationMethod-Parameters "SpecificProperties" lautet.

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

-SecondValue

Gibt zusätzliche Werte für AliasProperty-, ScriptProperty-, CodeProperty- oder CodeMethod-Member an.

Verwenden Sie diesen Parameter mit den Parametern TypeName, MemberType, Value und SecondValue , um eine Eigenschaft oder Methode eines Typs hinzuzufügen oder zu ändern.

Wenn der Wert des MemberType-Parameters lautet AliasProperty, muss der Wert des SecondValue-Parameters ein Datentyp sein. PowerShell konvertiert (d. h. wandelt den Wert der Aliaseigenschaft in den angegebenen Typ um. Wenn Sie beispielsweise eine Aliaseigenschaft hinzufügen, die einen alternativen Namen für eine Zeichenfolgeneigenschaft bereitstellt, können Sie auch einen SecondValue von System.Int32 angeben, um den aliasierten Zeichenfolgenwert in eine ganze Zahl zu konvertieren.

Wenn der Wert des MemberType-Parameters lautet ScriptProperty, können Sie den Parameter SecondValue verwenden, um einen zusätzlichen Skriptblock anzugeben. Der Skriptblock im Wert des Value-Parameters ruft den Wert einer Variablen ab. Der Skriptblock im Wert des SecondValue-Parameters legt den Wert der Variablen fest.

Dieser Parameter wurde in Windows PowerShell 3.0 eingeführt.

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

-SerializationDepth

Gibt an, wie viele Ebenen von Objekten des Typs als Zeichenfolgen serialisiert werden. Der Standardwert 1 serialisiert das Objekt und dessen Eigenschaften. Ein Wert der Serialisierung des 0 Objekts, aber nicht deren Eigenschaften. Ein Wert der Serialisierung des 2 Objekts, seiner Eigenschaften und aller Objekte in Eigenschaftswerten.

Dieser Parameter wurde in Windows PowerShell 3.0 eingeführt.

Type:Int32
Position:Named
Default value:1
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SerializationMethod

Gibt eine Serialisierungsmethode für den Typ an. Eine Serialisierungsmethode bestimmt, welche Eigenschaften des Typs serialisiert werden und mit welchem Verfahren sie serialisiert werden. Zulässige Werte für diesen Parameter:

  • AllPublicProperties. Serialisieren alle öffentlichen Eigenschaften des Typs. Mit dem Parameter SerializationDepth können Sie ermitteln, ob untergeordnete Eigenschaften serialisiert werden.
  • String. Serialisieren den Typ als eine Zeichenfolge. Sie können die StringSerializationSource verwenden, um eine Eigenschaft des Typs anzugeben, die als Serialisierungsergebnis verwendet werden soll. Andernfalls wird der Typ mithilfe der ToString-Methode des Objekts serialisiert.
  • SpecificProperties. Serialisieren Sie nur die angegebenen Eigenschaften dieses Typs. Verwenden Sie den PropertySerializationSet-Parameter , um die Eigenschaften des typs anzugeben, der serialisiert wird. Sie können auch den Parameter InheritPropertySerializationSet verwenden, um zu bestimmen, ob der Eigenschaftensatz geerbt wird, und den Parameter SerializationDepth , um zu bestimmen, ob untergeordnete Eigenschaften serialisiert werden.

In PowerShell werden Serialisierungsmethoden in internen PSStandardMembers-Objekten gespeichert.

Dieser Parameter wurde in Windows PowerShell 3.0 eingeführt.

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

-StringSerializationSource

Gibt den Namen einer Eigenschaft des Typs an. Der Wert der angegebenen Eigenschaft wird als das Ergebnis der Serialisierung verwendet. Dieser Parameter ist nur gültig, wenn der Wert des SerializationMethod-Parameters "String" lautet.

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

-TargetTypeForDeserialization

Gibt den Typ an, in den Objekte dieses Typs konvertiert werden, wenn sie deserialisiert werden.

Dieser Parameter wurde in Windows PowerShell 3.0 eingeführt.

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

-TypeAdapter

Gibt den Typ eines Typadapters an, z . B. Microsoft.PowerShell.Cim.CimInstanceAdapter. Ein Typadapter ermöglicht PowerShell das Abrufen der Member eines Typs.

Dieser Parameter wurde in Windows PowerShell 3.0 eingeführt.

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

-TypeConverter

Gibt einen Typkonverter zum Konvertieren von Werten zwischen verschiedenen Typen an. Wenn ein Typkonverter für einen Typ definiert ist, wird eine Instanz des Typkonverters für die Konvertierung verwendet.

Geben Sie einen System.Type-Wert ein, der von den Klassen System.ComponentModel.TypeConverter oder System.Management.Automation.PSTypeConverter abgeleitet wird.

Dieser Parameter wurde in Windows PowerShell 3.0 eingeführt.

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

-TypeData

Gibt ein Array von Typdaten an, das dieses Cmdlet der Sitzung hinzufügt. Geben Sie eine Variable ein, die ein TypeData-Objekt oder einen Befehl enthält, der ein TypeData-Objekt abruft, z. B. einen Get-TypeData Befehl. Sie können auch ein TypeData-Objekt an Update-TypeData.

Dieser Parameter wurde in Windows PowerShell 3.0 eingeführt.

Type:TypeData[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-TypeName

Gibt den Namen des zu erweiternden Typs an.

Geben Sie für Typen im Systemnamespace den Kurznamen ein. Für andere Typen ist der vollständige Typname erforderlich. Platzhalter werden nicht unterstützt.

Sie können Typnamen Update-TypeDataan . Wenn Sie ein Objekt Update-TypeDataan die Striche zuweisen, Update-TypeData ruft den Typnamen des Objekts und die Typdaten an den Objekttyp ab.

Verwenden Sie diesen Parameter mit den Parametern "MemberName", "MemberType", "Value" und "SecondValue", um eine Eigenschaft oder Methode eines Typs hinzuzufügen oder zu ändern.

Dieser Parameter wurde in Windows PowerShell 3.0 eingeführt.

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

-Value

Gibt den Wert der Eigenschaft oder Methode an.

Wenn Sie einen , oder ein Element hinzufügen, können Sie den Parameter SecondValue verwenden, um zusätzliche Informationen hinzuzufügen.CodeMethodScriptPropertyCodePropertyAliasProperty

Verwenden Sie diesen Parameter mit den Parametern "MemberName", "MemberType", "Value" und "SecondValue", um eine Eigenschaft oder Methode eines Typs hinzuzufügen oder zu ändern.

Dieser Parameter wurde in Windows PowerShell 3.0 eingeführt.

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

-WhatIf

Zeigt, was geschieht, wenn das Cmdlet ausgeführt wird. Das Cmdlet wird nicht ausgeführt.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Eingaben

String

Sie können eine Zeichenfolge mit den Werten der Parameter "AppendPath", "TypeName" oder "TypeData " an dieses Cmdlet weiterleiten.

Ausgaben

None

Dieses Cmdlet gibt keine Ausgabe zurück.