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
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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
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.
Verwante koppelingen
Feedback
Feedback verzenden en weergeven voor