Update-TypeData

Hiermee worden de uitgebreide typegegevens in de sessie bijgewerkt.

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 te laden in het Types.ps1xml geheugen en nieuwe uitgebreide typegegevens toe te voegen.

PowerShell laadt standaard uitgebreide gegevens van het type omdat deze nodig zijn. Zonder parameters Update-TypeData worden alle Types.ps1xml bestanden die in de sessie zijn geladen, opnieuw geladen, inclusief bestandstypen 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 in de sessie toevoegen en vervangen 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 in de huidige sessie op te halen en de Remove-TypeData cmdlet om uitgebreide typen uit de huidige sessie te verwijderen.

Uitzonderingen die voorkomen 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 in plaats daarvan 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 bijwerkt.

Met de eerste opdracht wordt de configuratie van het uitgebreide type 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, bijvoorbeeld 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 zonder parameters uitvoeren, omdat TypesA.types.ps1xml deze al in de lijst met typebestanden voor de huidige sessie staat.

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 Quarter-script toegevoegd aan System.DateTime-objecten in de huidige sessie, zoals de 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, de parameter MemberName op te geven 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 jaarkwartaal wordt berekend. Het scriptblok gebruikt de $this automatische variabele om het huidige exemplaar van het object en de In-operator weer te geven om te bepalen of de maandwaarde wordt weergegeven in elke matrix met gehele getallen. Zie about_Comparison_Operators voor meer informatie over de -in operator.

Met de tweede opdracht wordt de nieuwe eigenschap Quarter van de huidige datum ophaalt.

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

In dit voorbeeld ziet u hoe u de eigenschappen van een type instelt 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 van kracht 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 scripteigenschap Quarter die in een vorig 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 de Format-List opdracht niet de eigenschappen opgeeft die in de lijst moeten worden weergegeven, gebruikt PowerShell de standaardwaarden 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 doorsluist Update-TypeData, 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 doorsluist naar Update-TypeData, 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 geeft het moduleobject door aan de Update-TypeData cmdlet, waarmee de typegegevens voor het type System.Management.Automation.PSModuleInfo en de typen die hiervan zijn afgeleid, worden bijgewerkt, zoals het type ModuleInfoGrouping dat Get-Module wordt geretourneerd wanneer u de parameter ListAvailable in de opdracht gebruikt.

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

Met de tweede opdracht worden de moduleobjecten van Get-Module naar 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
Required:False
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
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DefaultDisplayProperty

Hiermee geeft u de eigenschap op van het type dat wordt weergegeven door de Format-Wide cmdlet wanneer er geen andere eigenschappen zijn 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 wordt toegevoegd in dezelfde opdracht.

Deze waarde is alleen van kracht 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
Required:False
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-List, Format-Tableen 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 als er respectievelijk geen lijst-, 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
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DefaultKeyPropertySet

Hiermee geeft u een of meer eigenschappen van het type. Deze eigenschappen worden door de Group-Object en Sort-Object cmdlets gebruikt wanneer er geen andere eigenschappen worden 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
Required:False
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
Required:False
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
Required:False
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
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-MemberType

Hiermee geeft u het type van het lid 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
  • Opmerking
  • ScriptMethod
  • ScriptProperty

Zie De opsomming PSMemberTypes voor 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
Required:False
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
Required:False
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 SerializationMethod SpecificProperties is.

Type:String[]
Position:Named
Default value:None
Required:False
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 gezegd, cast) de waarde van de aliaseigenschap naar het opgegeven type. Als u bijvoorbeeld een aliaseigenschap toevoegt die een alternatieve naam voor een tekenreekseigenschap biedt, 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
Required:False
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 ervan. Een waarde van het serialiseren van 2 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
Required:False
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
Required:False
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 string is.

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

-TargetTypeForDeserialization

Hiermee geeft u het type aan welk 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
Required:False
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
Required:False
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.TypeConverter of System.Management.Automation.PSTypeConverter .

Deze parameter is geïntroduceerd in Windows PowerShell 3.0.

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

-TypeData

Hiermee geeft u een matrix van het type gegevens op die door deze cmdlet aan de sessie worden toegevoegd. Voer een variabele in die een TypeData-object of een opdracht bevat 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
Required:True
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 van sluistekens sluistekens naar Update-TypeData. Wanneer u een object doorsluist Update-TypeDatanaar, 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
Required:True
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
Required:False
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
Required: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 deze cmdlet.

Uitvoerwaarden

None

Deze cmdlet retourneert geen uitvoer.