Update-TypeData

Updates de uitgebreide typegegevens in de sessie.

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

Description

De Update-TypeData cmdlet werkt de uitgebreide typegegevens in de sessie bij door de bestanden opnieuw in het Types.ps1xml geheugen te laden en nieuwe uitgebreide typegegevens toe te voegen.

Standaard worden uitgebreide gegevens van het type PowerShell geladen, omdat deze nodig zijn. Zonder parameters Update-TypeData laadt u alle Types.ps1xml bestanden die in de sessie zijn geladen, inclusief alle typebestanden die u hebt toegevoegd. U kunt de parameters gebruiken om Update-TypeData nieuwe typebestanden toe te voegen en uitgebreide typegegevens toe te voegen en te vervangen.

De Update-TypeData cmdlet kan worden gebruikt om alle typegegevens vooraf te laden. Deze functie is met name handig wanneer u typen ontwikkelt en deze nieuwe typen wilt laden voor testdoeleinden.

Vanaf Windows PowerShell 3.0 kunt Update-TypeData u uitgebreide typegegevens toevoegen en vervangen in de sessie zonder een Types.ps1xml bestand te gebruiken. Typ gegevens die dynamisch worden toegevoegd, dus zonder een bestand, worden alleen toegevoegd aan de huidige sessie. Als u de typegegevens aan alle sessies wilt toevoegen, voegt u een Update-TypeData opdracht toe aan uw PowerShell-profiel. Zie about_Profiles voor meer informatie.

Vanaf Windows PowerShell 3.0 kunt u ook de Get-TypeData cmdlet gebruiken om de uitgebreide typen op te halen in de huidige sessie en de Remove-TypeData cmdlet om uitgebreide typen uit de huidige sessie te verwijderen.

Uitzonderingen die optreden in eigenschappen of van het toevoegen van eigenschappen aan een Update-TypeData opdracht, melden geen fouten. Dit is om uitzonderingen te onderdrukken die in veel algemene typen voorkomen tijdens het opmaken en uitvoeren. Als u .NET-eigenschappen krijgt, kunt u de onderdrukking van uitzonderingen omzeilen met behulp van de syntaxis van de methode, zoals wordt weergegeven in het volgende voorbeeld:

"hello".get_Length()

Houd er rekening mee dat de syntaxis van de methode alleen kan worden gebruikt met .NET-eigenschappen. Eigenschappen die worden toegevoegd door de cmdlet uit te voeren, kunnen geen syntaxis van de Update-TypeData methode gebruiken.

Zie about_Types.ps1xml voor meer informatie over de Types.ps1xml bestanden in PowerShell.

Voorbeelden

Voorbeeld 1: Uitgebreide typen bijwerken

Update-TypeData

Met deze opdracht wordt de configuratie van het uitgebreide type bijgewerkt van de Types.ps1xml bestanden die al in de sessie zijn gebruikt.

Voorbeeld 2: Typen meerdere keren bijwerken

In dit voorbeeld ziet u hoe u de typen in een typebestand meerdere keren in dezelfde sessie kunt bijwerken.

Met de eerste opdracht wordt de uitgebreide typeconfiguratie bijgewerkt van de Types.ps1xml bestanden en worden de TypesA.types.ps1xml bestanden TypesB.types.ps1xml eerst verwerkt.

De tweede opdracht laat zien hoe u het TypesA.types.ps1xml opnieuw kunt bijwerken, zoals u kunt doen als u een type in het bestand hebt toegevoegd of gewijzigd. U kunt de vorige opdracht voor het TypesA.types.ps1xml bestand herhalen of een Update-TypeData opdracht uitvoeren zonder parameters, omdat TypesA.types.ps1xml deze zich al in de lijst met bestandstypen voor de huidige sessie bevindt.

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

Voorbeeld 3: Een scripteigenschap toevoegen aan DateTime-objecten

In dit voorbeeld wordt Update-TypeData de eigenschap Kwartaalscript toegevoegd aan System.DateTime-objecten in de huidige sessie, zoals objecten die door de Get-Date cmdlet worden geretourneerd.

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

De Update-TypeData opdracht gebruikt de parameter TypeName om het type System.DateTime op te geven, de parameter MemberName om een naam op te geven voor de nieuwe eigenschap, de eigenschap MemberType om het type ScriptProperty op te geven en de parameter Waarde om het script op te geven dat het jaarlijkse kwartaal bepaalt.

De waarde van de eigenschap Waarde is een script waarmee het huidige jaarlijkse kwartaal wordt berekend. Het scriptblok maakt gebruik van de $this automatische variabele om het huidige exemplaar van het object en de Operator In weer te geven om te bepalen of de maandwaarde in elke matrix met gehele getallen wordt weergegeven. Zie about_Comparison_Operators voor meer informatie over de -in operator.

Met de tweede opdracht wordt de nieuwe kwartaaleigenschap van de huidige datum weergegeven.

Voorbeeld 4: Een type bijwerken dat standaard wordt weergegeven in lijsten

In dit voorbeeld ziet u hoe u de eigenschappen instelt van een type dat standaard wordt weergegeven in lijsten, dat wil gezegd, wanneer er geen eigenschappen zijn opgegeven. Omdat de typegegevens niet zijn opgegeven in een Types.ps1xml bestand, is dit alleen effectief in de huidige sessie.

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

De eerste opdracht gebruikt de Update-TypeData cmdlet om de standaardlijsteigenschappen voor het type System.DateTime in te stellen. De opdracht gebruikt de parameter TypeName om het type en de parameter DefaultDisplayPropertySet op te geven om de standaardeigenschappen voor een lijst op te geven. De geselecteerde eigenschappen bevatten de nieuwe eigenschap Quarter-script die in een eerder voorbeeld is toegevoegd.

De tweede opdracht gebruikt de Get-Date cmdlet om een System.DateTime-object op te halen dat de huidige datum vertegenwoordigt. De opdracht maakt gebruik van een pijplijnoperator (|) om het DateTime-object naar de Format-List cmdlet te verzenden. Omdat met de Format-List opdracht niet de eigenschappen worden opgegeven die in de lijst moeten worden weergegeven, worden in PowerShell de standaardwaarden gebruikt die door de Update-TypeData opdracht zijn ingesteld.

Voorbeeld 5: Typegegevens bijwerken voor een gesluisd object

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 dit voorbeeld ziet u dat wanneer u een object Update-TypeDatadoorsluist, Update-TypeData uitgebreide typegegevens voor het objecttype toevoegt.

Deze techniek is sneller dan het gebruik van de Get-Member cmdlet of de Get-Type methode om het objecttype op te halen. Als u echter een verzameling objecten Update-TypeDatadoorgeeft, worden de typegegevens van het eerste objecttype bijgewerkt en wordt vervolgens een fout geretourneerd voor alle andere objecten in de verzameling, omdat het lid al is gedefinieerd voor het type.

De eerste opdracht gebruikt de Get-Module cmdlet om de PSScheduledJob-module op te halen. De opdracht voert het moduleobject uit naar de Update-TypeData cmdlet, waarmee de typegegevens voor het type System.Management.Automation.PSModuleInfo worden bijgewerkt en de typen die hiervan zijn afgeleid, zoals het Type ModuleInfoGrouping dat Get-Module wordt geretourneerd wanneer u de parameter ListAvailable in de opdracht gebruikt.

Met Update-TypeData de opdrachten wordt de eigenschap SupportsUpdatableHelp-script toegevoegd aan alle geïmporteerde modules. De waarde van de waardeparameter is een script dat retourneert $True als de eigenschap HelpInfoUri van de module wordt ingevuld en $False anders.

Met de tweede opdracht worden de moduleobjecten naar Get-Module de Format-Table cmdlet uitgevoerd, waarin de eigenschappen Name en SupportsUpdatableHelp van alle modules in een lijst worden weergegeven.

Parameters

-AppendPath

Hiermee geeft u het pad naar optionele .ps1xml bestanden. De opgegeven bestanden worden geladen in de volgorde waarin ze worden vermeld nadat de ingebouwde bestanden zijn geladen. U kunt ook een AppendPath-waarde doorsluisen naar Update-TypeData.

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

Hiermee wordt u gevraagd om bevestiging voordat u de cmdlet uitvoert.

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

Hiermee geeft u de eigenschap van het type dat wordt weergegeven door de Format-Wide cmdlet wanneer er geen andere eigenschappen worden opgegeven.

Typ de naam van een standaardeigenschap of uitgebreide eigenschap van het type. De waarde van deze parameter kan de naam zijn van een type dat in dezelfde opdracht wordt toegevoegd.

Deze waarde is alleen effectief wanneer er geen brede weergaven zijn gedefinieerd voor het type in een Format.ps1xml bestand.

Deze parameter is geïntroduceerd in Windows PowerShell 3.0.

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

Hiermee geeft u een of meer eigenschappen van het type. Deze eigenschappen worden weergegeven door de Format-ListFormat-Table, en Format-Custom cmdlets wanneer er geen andere eigenschappen zijn opgegeven.

Typ de namen van standaard- of uitgebreide eigenschappen van het type. De waarde van deze parameter kan de namen zijn van typen die in dezelfde opdracht worden toegevoegd.

Deze waarde is alleen van kracht wanneer er geen lijst- of tabel- of aangepaste weergaven zijn gedefinieerd voor het type in een Format.ps1xml bestand.

Deze parameter is geïntroduceerd in Windows PowerShell 3.0.

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

Hiermee geeft u een of meer eigenschappen van het type. Deze eigenschappen worden gebruikt door de Group-Object en Sort-Object cmdlets wanneer er geen andere eigenschappen zijn opgegeven.

Typ de namen van standaard- of uitgebreide eigenschappen van het type. De waarde van deze parameter kan de namen zijn van typen die in dezelfde opdracht worden toegevoegd.

Deze parameter is geïntroduceerd in Windows PowerShell 3.0.

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

Geeft aan dat de cmdlet gebruikmaakt van de opgegeven typegegevens, zelfs als er al typegegevens voor dat type zijn opgegeven.

Deze parameter is geïntroduceerd in Windows PowerShell 3.0.

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

Geeft aan of de set eigenschappen die worden geserialiseerd, wordt overgenomen. De standaardwaarde is $Null. De aanvaardbare waarden voor deze parameter zijn:

  • $True. De eigenschappenset wordt overgenomen.
  • $False. De eigenschappenset wordt niet overgenomen.
  • $Null. Overname is niet gedefinieerd.

Deze parameter is alleen geldig wanneer de waarde van de parameter SerializationMethod is SpecificProperties. Wanneer de waarde van deze parameter is $False, is de parameter PropertySerializationSet vereist.

Deze parameter is geïntroduceerd in Windows PowerShell 3.0.

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

Hiermee geeft u de naam van een eigenschap of methode.

Gebruik deze parameter met de parameters TypeName, MemberType, Value en SecondValue om een eigenschap of methode van een type toe te voegen of te wijzigen.

Deze parameter is geïntroduceerd in Windows PowerShell 3.0.

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

Hiermee geeft u het type lid op dat moet worden toegevoegd of gewijzigd.

Gebruik deze parameter met de parameters TypeName, MemberType, Value en SecondValue om een eigenschap of methode van een type toe te voegen of te wijzigen. De aanvaardbare waarden voor deze parameter zijn:

  • AliasProperty
  • CodeMethod
  • CodeProperty
  • Noteproperty
  • ScriptMethod
  • ScriptProperty

Zie DE opsomming PSMemberTypes voor meer informatie over deze waarden.

Deze parameter is geïntroduceerd in Windows PowerShell 3.0.

Type:PSMemberTypes
Accepted values:NoteProperty, AliasProperty, ScriptProperty, CodeProperty, ScriptMethod, CodeMethod
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-PrependPath

Hiermee geeft u het pad naar de optionele .ps1xml bestanden. De opgegeven bestanden worden geladen in de volgorde waarin ze worden vermeld voordat de ingebouwde bestanden worden geladen.

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

Hiermee geeft u de namen van eigenschappen die worden geserialiseerd. Gebruik deze parameter wanneer de waarde van de parameter SerializationMethodSpecificProperties is.

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

Hiermee geeft u aanvullende waarden op voor leden van AliasProperty, ScriptProperty, CodeProperty of CodeMethod .

Gebruik deze parameter met de parameters TypeName, MemberType, Value en SecondValue om een eigenschap of methode van een type toe te voegen of te wijzigen.

Wanneer de waarde van de parameter MemberType is AliasProperty, moet de waarde van de parameter SecondValue een gegevenstype zijn. PowerShell converteert (dat wil zeggen, cast) de waarde van de aliaseigenschap naar het opgegeven type. Als u bijvoorbeeld een aliaseigenschap toevoegt die een alternatieve naam biedt voor een tekenreekseigenschap, kunt u ook een SecondValue van System.Int32 opgeven om de waarde van de aliastekenreeks te converteren naar een geheel getal.

Wanneer de waarde van de parameter MemberType is ScriptProperty, kunt u de parameter SecondValue gebruiken om een extra scriptblok op te geven. Het scriptblok in de waarde van de parameter Waarde haalt de waarde van een variabele op. Het scriptblok in de waarde van de parameter SecondValue stelt de waarde van de variabele in.

Deze parameter is geïntroduceerd in Windows PowerShell 3.0.

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

Hiermee geeft u op hoeveel niveaus van het type objecten worden geserialiseerd als tekenreeksen. De standaardwaarde 1 serialiseert het object en de eigenschappen ervan. Een waarde van 0 serialiseert het object, maar niet de eigenschappen. Een waarde van 2 het serialiseert het object, de eigenschappen en eventuele objecten in eigenschapswaarden.

Deze parameter is geïntroduceerd in Windows PowerShell 3.0.

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

Hiermee geeft u een serialisatiemethode voor het type. Een serialisatiemethode bepaalt welke eigenschappen van het type worden geserialiseerd en welke techniek wordt gebruikt om ze te serialiseren. De aanvaardbare waarden voor deze parameter zijn:

  • AllPublicProperties. Serialiseer alle openbare eigenschappen van het type. U kunt de parameter SerializationDepth gebruiken om te bepalen of onderliggende eigenschappen worden geserialiseerd.
  • String. Serialiseer het type als een tekenreeks. U kunt de StringSerializationSource gebruiken om een eigenschap op te geven van het type dat moet worden gebruikt als het serialisatieresultaat. Anders wordt het type geserialiseerd met behulp van de ToString-methode van het object.
  • SpecificProperties. Serialiseer alleen de opgegeven eigenschappen van dit type. Gebruik de parameter PropertySerializationSet om de eigenschappen op te geven van het type dat wordt geserialiseerd. U kunt ook de parameter InheritPropertySerializationSet gebruiken om te bepalen of de eigenschappenset is overgenomen en de parameter SerializationDepth om te bepalen of onderliggende eigenschappen worden geserialiseerd.

In PowerShell worden serialisatiemethoden opgeslagen in interne PSStandardMembers-objecten .

Deze parameter is geïntroduceerd in Windows PowerShell 3.0.

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

Hiermee geeft u de naam van een eigenschap van het type. De waarde van de opgegeven eigenschap wordt gebruikt als het serialisatieresultaat. Deze parameter is alleen geldig wanneer de waarde van de parameter SerializationMethod tekenreeks is.

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

Hiermee geeft u het type op waarnaar het object van dit type wordt geconverteerd wanneer ze worden gedeserialiseerd.

Deze parameter is geïntroduceerd in Windows PowerShell 3.0.

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

Hiermee geeft u het type adapter, zoals Microsoft.PowerShell.Cim.CimInstanceAdapter. Met een typeadapter kan PowerShell de leden van een type ophalen.

Deze parameter is geïntroduceerd in Windows PowerShell 3.0.

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

Hiermee geeft u een typeconversieprogramma om waarden tussen verschillende typen te converteren. Als een typeconversieprogramma is gedefinieerd voor een type, wordt een exemplaar van het typeconversieprogramma gebruikt voor de conversie.

Voer een System.Type-waarde in die is afgeleid van de klassen System.ComponentModel.Type Converter of System.Management.Automation.PSType Converter .

Deze parameter is geïntroduceerd in Windows PowerShell 3.0.

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

Hiermee geeft u een matrix van het type gegevens op die deze cmdlet aan de sessie toevoegt. Voer een variabele in die een TypeData-object bevat of een opdracht waarmee een TypeData-object wordt opgehaald, zoals een Get-TypeData opdracht. U kunt ook een TypeData-object doorsluisen naar Update-TypeData.

Deze parameter is geïntroduceerd in Windows PowerShell 3.0.

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

Hiermee geeft u de naam van het type dat moet worden uitgebreid.

Voer de korte naam in voor typen in de systeemnaamruimte . Anders is de volledige typenaam vereist. Jokertekens worden niet ondersteund.

U kunt namen doorsluisen naar Update-TypeData. Wanneer u een object Update-TypeDatadoorsluist, Update-TypeData haalt u de typenaam van het object op en typt u gegevens naar het objecttype.

Gebruik deze parameter met de parameters MemberName, MemberType, Value en SecondValue om een eigenschap of methode van een type toe te voegen of te wijzigen.

Deze parameter is geïntroduceerd in Windows PowerShell 3.0.

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

Hiermee geeft u de waarde van de eigenschap of methode.

Als u een AliasProperty, CodePropertyScriptPropertyof CodeMethod lid toevoegt, kunt u de parameter SecondValue gebruiken om aanvullende informatie toe te voegen.

Gebruik deze parameter met de parameters MemberName, MemberType, Value en SecondValue om een eigenschap of methode van een type toe te voegen of te wijzigen.

Deze parameter is geïntroduceerd in Windows PowerShell 3.0.

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

Hiermee wordt weergegeven wat er zou gebeuren als u de cmdlet uitvoert. De cmdlet wordt niet uitgevoerd.

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

Invoerwaarden

String

U kunt een tekenreeks met de waarden van de parameters AppendPath, TypeName of TypeData doorsluisen naar Update-TypeData.

Uitvoerwaarden

None

Deze cmdlet retourneert geen uitvoer.