Update-TypeData

Uppdateringar utökade typdata 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 de utökade typdata 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 lästs in i sessionen igen, inklusive alla typer av Types.ps1xml 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 din PowerShell-profil. 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å undertryckningen 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.ps1xmlTypesB.types.ps1xml filerna 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ägg 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 har angetts. Eftersom typdata inte anges i en Types.ps1xml fil är de endast effektiva 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 typen och parametern DefaultDisplayPropertySet för att ange standardegenskaperna för en lista. De valda 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 de 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 rör ett objekt till lägger Update-TypeData du till Update-TypeDatautökade typdata för objekttypen.

Den här tekniken går snabbare än att använda cmdleten Get-MemberGet-Type eller metoden för att hämta objekttypen. Men om du skickar en samling objekt till Update-TypeDatauppdaterar den 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 modulinfogruppstypen som Get-Module returneras när du använder parametern ListAvailable i kommandot.

Kommandona Update-TypeData lägger till skriptegenskapen SupportsUpdatableHelp till 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 på annat sätt.

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

-DefaultDisplayPropertySet

Anger en eller flera egenskaper av typen. De här egenskaperna visas av Format-Listcmdletarna , Format-Tableoch 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 den uppsättning 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 $Falsekrä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 AliasPropertymå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 det aliaserade strängvärdet till ett heltal.

När värdet för parametern MemberType är ScriptPropertykan 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 eventuella 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 av typen. Du kan använda parametern SerializationDepth för att avgöra om underordnade egenskaper serialiseras.
  • 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 metoden ToString 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 som konverterar 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 ange namn på pipe-typ till Update-TypeData. När du rör ett objekt till Update-TypeDataUpdate-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 , , eller CodeMethod medlem kan du använda parametern SecondValue för att lägga till ytterligare ScriptPropertyinformation. CodePropertyAliasProperty

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

String

Du kan skicka en sträng som innehåller värdena för parametrarna AppendPath, TypeName eller TypeData till den här cmdleten.

Utdata

None

Den här cmdleten returnerar inga utdata.