Update-TypeData
Uppdateringar data av utökad typ i sessionen.
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
Cmdleten Update-TypeData
uppdaterar data av utökad typ i sessionen genom att Types.ps1xml
läsa in filerna i minnet igen och lägga till nya utökade typdata.
Som standard läser PowerShell in utökade typdata efter behov. Utan parametrar Update-TypeData
läser du in alla filer som har Types.ps1xml
lästs in i sessionen igen, inklusive alla typer av filer som du har lagt till. Du kan använda parametrarna Update-TypeData
för för att lägga till nya typfiler och lägga till och ersätta utökade typdata.
Cmdleten Update-TypeData
kan användas för att förinläsa alla typdata. Den här funktionen är särskilt användbar när du utvecklar typer och vill läsa in de nya typerna i testsyfte.
Från och med Windows PowerShell 3.0 kan du använda Update-TypeData
för att lägga till och ersätta utökade typdata i sessionen utan att använda en Types.ps1xml
fil. Skriv data som läggs till dynamiskt, dvs. utan en fil, läggs bara till i den aktuella sessionen. Om du vill lägga till typdata i alla sessioner lägger du till ett Update-TypeData
kommando i PowerShell-profilen. Mer information finns i about_Profiles.
Från och med Windows PowerShell 3.0 kan du också använda cmdleten Get-TypeData
för att hämta de utökade typerna i den aktuella sessionen och cmdleten Remove-TypeData
för att ta bort utökade typer från den aktuella sessionen.
Undantag som inträffar i egenskaper, eller från att lägga till egenskaper i ett Update-TypeData
kommando, rapporterar inte fel. Detta är för att förhindra undantag som skulle inträffa i många vanliga typer under formatering och utdata. Om du får .NET-egenskaper kan du kringgå undertryckning av undantag med hjälp av metodsyntax i stället, som du ser i följande exempel:
"hello".get_Length()
Observera att metodsyntax endast kan användas med .NET-egenskaper. Egenskaper som läggs till genom att köra cmdleten Update-TypeData
kan inte använda metodsyntax.
Mer information om Types.ps1xml
filerna i PowerShell finns i about_Types.ps1xml.
Exempel
Exempel 1: Uppdatera utökade typer
Update-TypeData
Det här kommandot uppdaterar konfigurationen av den utökade typen från de Types.ps1xml
filer som redan har använts i sessionen.
Exempel 2: Uppdateringstyper flera gånger
Det här exemplet visar hur du uppdaterar typerna i en typfil flera gånger i samma session.
Det första kommandot uppdaterar konfigurationen Types.ps1xml
av den utökade typen från filerna och bearbetar TypesA.types.ps1xml
filerna och TypesB.types.ps1xml
först.
Det andra kommandot visar hur du uppdaterar TypesA.types.ps1xml
igen, till exempel om du har lagt till eller ändrat en typ i filen. Du kan antingen upprepa föregående kommando för TypesA.types.ps1xml
filen eller köra ett Update-TypeData
kommando utan parametrar, eftersom TypesA.types.ps1xml
det redan finns i typfillistan för den aktuella sessionen.
Update-TypeData -PrependPath TypesA.types.ps1xml, TypesB.types.ps1xml
Update-TypeData -PrependPath TypesA.types.ps1xml
Exempel 3: Lägga till en skriptegenskap i DateTime-objekt
I det här exemplet används Update-TypeData
för att lägga till egenskapen Kvartalsskript till System.DateTime-objekt i den aktuella sessionen, till exempel de som returneras av cmdleten 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
Kommandot Update-TypeData
använder parametern TypeName för att ange typen System.DateTime , parametern MemberName för att ange ett namn för den nya egenskapen, egenskapen MemberType för att ange typen ScriptProperty och parametern Value för att ange skriptet som avgör det årliga kvartalet.
Värdet för egenskapen Value är ett skript som beräknar det aktuella årliga kvartalet. Skriptblocket använder den $this
automatiska variabeln för att representera den aktuella instansen av objektet och In-operatorn för att avgöra om månadsvärdet visas i varje heltalsmatris. Mer information om operatorn finns i -in
about_Comparison_Operators.
Det andra kommandot hämtar den nya egenskapen Quarter för det aktuella datumet.
Exempel 4: Uppdatera en typ som visas i listor som standard
Det här exemplet visar hur du anger egenskaperna för en typ som visas i listor som standard, det vill säga när inga egenskaper anges. Eftersom typdata inte anges i en Types.ps1xml
fil gäller de endast i den aktuella sessionen.
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
Det första kommandot använder cmdleten Update-TypeData
för att ange standardlisteegenskaperna för typen System.DateTime . Kommandot använder parametern TypeName för att ange parametern type och DefaultDisplayPropertySet för att ange standardegenskaperna för en lista. De markerade egenskaperna inkluderar den nya egenskapen Kvartalsskript som lades till i ett tidigare exempel.
Det andra kommandot använder cmdleten Get-Date
för att hämta ett System.DateTime-objekt som representerar det aktuella datumet. Kommandot använder en pipelineoperator (|
) för att skicka DateTime-objektet till cmdleten Format-List
. Format-List
Eftersom kommandot inte anger vilka egenskaper som ska visas i listan använder PowerShell de standardvärden som har upprättats av Update-TypeData
kommandot.
Exempel 5: Uppdatera typdata för ett rörobjekt
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
Det här exemplet visar att när du skickar ett objekt till Update-TypeData
lägger Update-TypeData
till utökade typdata för objekttypen.
Den här tekniken går snabbare än att använda cmdleten Get-Member
Get-Type
eller metoden för att hämta objekttypen. Men om du skickar en samling objekt till Update-TypeData
uppdateras typdata för den första objekttypen och returnerar sedan ett fel för alla andra objekt i samlingen eftersom medlemmen redan har definierats för typen.
Det första kommandot använder cmdleten Get-Module
för att hämta modulen PSScheduledJob. Kommandot skickar modulobjektet till cmdleten Update-TypeData
, som uppdaterar typdata för typen System.Management.Automation.PSModuleInfo och de typer som härleds från den, till exempel typen ModuleInfoGrouping som Get-Module
returneras när du använder parametern ListAvailable i kommandot.
Kommandona Update-TypeData
lägger till skriptegenskapen SupportsUpdatableHelp i alla importerade moduler. Värdet för parametern Value är ett skript som returnerar $True
om egenskapen HelpInfoUri för modulen är ifylld och $False
i annat fall.
Det andra kommandot dirigerar modulobjekten från Get-Module
till cmdleten Format-Table
, som visar egenskaperna Namn och SupportsUpdatableHelp för alla moduler i en lista.
Parametrar
-AppendPath
Anger sökvägen till valfria .ps1xml
filer. De angivna filerna läses in i den ordning som de visas när de inbyggda filerna har lästs in. Du kan också skicka ett AppendPath-värde till Update-TypeData
.
Type: | String[] |
Aliases: | PSPath, Path |
Position: | 0 |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Confirm
Uppmanar dig att bekräfta innan du kör cmdleten.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-DefaultDisplayProperty
Anger egenskapen för den typ som visas av cmdleten Format-Wide
när inga andra egenskaper har angetts.
Ange namnet på en standard- eller utökad egenskap av typen. Värdet för den här parametern kan vara namnet på en typ som läggs till i samma kommando.
Det här värdet gäller endast när det inte finns några breda vyer definierade för typen i en Format.ps1xml
fil.
Den här parametern introducerades i Windows PowerShell 3.0.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-DefaultDisplayPropertySet
Anger en eller flera egenskaper av typen. Dessa egenskaper visas av Format-List
cmdletarna , Format-Table
och Format-Custom
när inga andra egenskaper har angetts.
Ange namnen på standard- eller utökade egenskaper för typen. Värdet för den här parametern kan vara namnen på de typer som läggs till i samma kommando.
Det här värdet gäller endast när det inte finns någon lista, tabell eller anpassade vyer som definierats för typen i en Format.ps1xml
fil.
Den här parametern introducerades i Windows PowerShell 3.0.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-DefaultKeyPropertySet
Anger en eller flera egenskaper av typen. Dessa egenskaper används av Group-Object
cmdletarna och Sort-Object
när inga andra egenskaper anges.
Ange namnen på standard- eller utökade egenskaper för typen. Värdet för den här parametern kan vara namnen på de typer som läggs till i samma kommando.
Den här parametern introducerades i Windows PowerShell 3.0.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Force
Anger att cmdleten använder angivna typdata, även om typdata redan har angetts för den typen.
Den här parametern introducerades i Windows PowerShell 3.0.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-InheritPropertySerializationSet
Anger om uppsättningen egenskaper som serialiseras ärvs. Standardvärdet är $Null
. De acceptabla värdena för den här parametern är:
$True
. Egenskapsuppsättningen ärvs.$False
. Egenskapsuppsättningen ärvs inte.$Null
. Arv har inte definierats.
Den här parametern är endast giltig när värdet för parametern SerializationMethod är SpecificProperties
. När värdet för den här parametern är $False
krävs parametern PropertySerializationSet .
Den här parametern introducerades i Windows PowerShell 3.0.
Type: | Nullable<T>[Boolean] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-MemberName
Anger namnet på en egenskap eller metod.
Använd den här parametern med parametrarna TypeName, MemberType, Value och SecondValue för att lägga till eller ändra en egenskap eller metod av en typ.
Den här parametern introducerades i Windows PowerShell 3.0.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-MemberType
Anger vilken typ av medlem som ska läggas till eller ändras.
Använd den här parametern med parametrarna TypeName, MemberType, Value och SecondValue för att lägga till eller ändra en egenskap eller metod av en typ. De acceptabla värdena för den här parametern är:
- AliasProperty
- CodeMethod
- CodeProperty
- Noteproperty
- ScriptMethod
- ScriptProperty
Information om dessa värden finns i PSMemberTypes Enumeration.
Den här parametern introducerades i 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
Anger sökvägen till de valfria .ps1xml
filerna. De angivna filerna läses in i den ordning som de visas innan de inbyggda filerna läses in.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-PropertySerializationSet
Anger namnen på egenskaper som serialiseras. Använd den här parametern när värdet för parametern SerializationMethod är SpecificProperties.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-SecondValue
Anger ytterligare värden för AliasProperty-, ScriptProperty-, CodeProperty- eller CodeMethod-medlemmar .
Använd den här parametern med parametrarna TypeName, MemberType, Value och SecondValue för att lägga till eller ändra en egenskap eller metod av en typ.
När värdet för parametern MemberType är AliasProperty
måste värdet för parametern SecondValue vara en datatyp. PowerShell konverterar (dvs. omvandlar) värdet för aliasegenskapen till den angivna typen. Om du till exempel lägger till en aliasegenskap som ger ett alternativt namn för en strängegenskap kan du också ange en SecondValue för System.Int32 för att konvertera värdet för aliassträngen till ett heltal.
När värdet för parametern MemberType är ScriptProperty
kan du använda parametern SecondValue för att ange ytterligare ett skriptblock. Skriptblocket i värdet för parametern Value hämtar värdet för en variabel. Skriptblocket i värdet för parametern SecondValue anger värdet för variabeln.
Den här parametern introducerades i Windows PowerShell 3.0.
Type: | Object |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-SerializationDepth
Anger hur många nivåer av typobjekt som serialiseras som strängar. Standardvärdet 1
serialiserar objektet och dess egenskaper. 0
Värdet serialiserar objektet, men inte dess egenskaper. 2
Värdet serialiserar objektet, dess egenskaper och alla objekt i egenskapsvärden.
Den här parametern introducerades i Windows PowerShell 3.0.
Type: | Int32 |
Position: | Named |
Default value: | 1 |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-SerializationMethod
Anger en serialiseringsmetod för typen. En serialiseringsmetod avgör vilka egenskaper av typen som serialiseras och vilken teknik som används för att serialisera dem. De acceptabla värdena för den här parametern är:
AllPublicProperties
. Serialisera alla offentliga egenskaper för typen. Du kan använda parametern SerializationDepth för att avgöra om underordnade egenskaper är serialiserade.String
. Serialisera typen som en sträng. Du kan använda StringSerializationSource för att ange en egenskap av typen som ska användas som serialiseringsresultat. Annars serialiseras typen med hjälp av ToString-metoden för objektet.SpecificProperties
. Serialisera endast de angivna egenskaperna för den här typen. Använd parametern PropertySerializationSet för att ange egenskaperna för den typ som serialiseras. Du kan också använda parametern InheritPropertySerializationSet för att avgöra om egenskapsuppsättningen ärvs och parametern SerializationDepth för att avgöra om underordnade egenskaper serialiseras.
I PowerShell lagras serialiseringsmetoder i interna PSStandardMembers-objekt .
Den här parametern introducerades i Windows PowerShell 3.0.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-StringSerializationSource
Anger namnet på en egenskap av typen. Värdet för den angivna egenskapen används som serialiseringsresultat. Den här parametern är endast giltig när värdet för parametern SerializationMethod är String.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-TargetTypeForDeserialization
Anger vilken typ av objekt av den här typen som konverteras när de deserialiseras.
Den här parametern introducerades i Windows PowerShell 3.0.
Type: | Type |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-TypeAdapter
Anger typen av ett typkort, till exempel Microsoft.PowerShell.Cim.CimInstanceAdapter. Med ett typkort kan PowerShell hämta medlemmar av en typ.
Den här parametern introducerades i Windows PowerShell 3.0.
Type: | Type |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-TypeConverter
Anger en typkonverterare för att konvertera värden mellan olika typer. Om en typkonverterare definieras för en typ används en instans av typkonverteraren för konverteringen.
Ange ett System.Type-värde som härleds från klasserna System.ComponentModel.TypeConverter eller System.Management.Automation.PSTypeConverter .
Den här parametern introducerades i Windows PowerShell 3.0.
Type: | Type |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-TypeData
Anger en matris med typdata som den här cmdleten lägger till i sessionen. Ange en variabel som innehåller ett TypeData-objekt eller ett kommando som hämtar ett TypeData-objekt , till exempel ett Get-TypeData
kommando. Du kan också skicka ett TypeData-objekt till Update-TypeData
.
Den här parametern introducerades i Windows PowerShell 3.0.
Type: | TypeData[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-TypeName
Anger namnet på den typ som ska utökas.
För typer i systemnamnområdet anger du det korta namnet. Annars krävs det fullständiga typnamnet. Jokertecken stöds inte.
Du kan skicka namn på pipe-typ till Update-TypeData
. När du skickar ett objekt till Update-TypeData
Update-TypeData
hämtar du typnamnet för objektet och skriver data till objekttypen.
Använd den här parametern med parametrarna MemberName, MemberType, Value och SecondValue för att lägga till eller ändra en egenskap eller metod av en typ.
Den här parametern introducerades i Windows PowerShell 3.0.
Type: | String |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Value
Anger värdet för egenskapen eller metoden.
Om du lägger till en AliasProperty
, CodeProperty
, ScriptProperty
eller CodeMethod
medlem kan du använda parametern SecondValue för att lägga till ytterligare information.
Använd den här parametern med parametrarna MemberName, MemberType, Value och SecondValue för att lägga till eller ändra en egenskap eller metod av en typ.
Den här parametern introducerades i Windows PowerShell 3.0.
Type: | Object |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-WhatIf
Visar vad som skulle hända om cmdleten kördes. Cmdleten körs inte.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Indata
Du kan skicka en sträng som innehåller värdena för parametrarna AppendPath, TypeName eller TypeData till Update-TypeData
.
Utdata
None
Den här cmdleten returnerar inga utdata.