Update-TypeData

Aktualizace data rozšířeného typu v relaci.

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

Rutina Update-TypeData aktualizuje data rozšířeného typu v relaci opětovným načtením Types.ps1xml souborů do paměti a přidáním nových dat rozšířeného typu.

PowerShell ve výchozím nastavení načte rozšířená data typu podle potřeby. Bez parametrů Update-TypeData znovu načte všechny Types.ps1xml soubory, které se načetly v relaci, včetně všech souborů typu, které jste přidali. Parametry můžete použít k přidání souborů nového typu a přidání a nahrazení dat rozšířeného Update-TypeData typu.

Rutinu Update-TypeData lze použít k předběžnému načtení všech dat typu. Tato funkce je užitečná zejména při vývoji typů a chcete tyto nové typy načíst pro účely testování.

Počínaje windows PowerShellem 3.0 můžete v Update-TypeData relaci přidávat a nahrazovat rozšířená data typů bez použití Types.ps1xml souboru. Data typu, která se přidávají dynamicky, tj. bez souboru, se přidají pouze do aktuální relace. Pokud chcete přidat data typu do všech relací, přidejte do profilu PowerShellu Update-TypeData příkaz. Další informace najdete v tématu about_Profiles.

Počínaje windows PowerShellem 3.0 můžete také pomocí rutiny Get-TypeData získat rozšířené typy v aktuální relaci a rutinu Remove-TypeData k odstranění rozšířených typů z aktuální relace.

Výjimky, ke kterým dochází ve vlastnostech nebo při přidávání vlastností do Update-TypeData příkazu, neoznamují chyby. To je potlačení výjimek, které by se vyskytly v mnoha běžných typech při formátování a výstupu. Pokud získáváte vlastnosti rozhraní .NET, můžete místo toho obejít potlačení výjimek pomocí syntaxe metody, jak je znázorněno v následujícím příkladu:

"hello".get_Length()

Všimněte si, že syntaxi metody lze použít pouze s vlastnostmi .NET. Vlastnosti přidané spuštěním rutiny nemůžou Update-TypeData používat syntaxi metody.

Další informace o souborech v PowerShellu Types.ps1xml najdete v tématu about_Types.ps1xml.

Příklady

Příklad 1: Aktualizace rozšířených typů

Update-TypeData

Tento příkaz aktualizuje konfiguraci rozšířeného typu ze Types.ps1xml souborů, které již byly použity v relaci.

Příklad 2: Aktualizace typů několikrát

Tento příklad ukazuje, jak aktualizovat typy v souboru typu vícekrát ve stejné relaci.

První příkaz aktualizuje konfiguraci rozšířeného Types.ps1xml typu ze souborů a nejprve zpracuje TypesA.types.ps1xml soubory TypesB.types.ps1xml .

Druhý příkaz ukazuje, jak znovu aktualizovat TypesA.types.ps1xml , například pokud jste přidali nebo změnili typ souboru. Předchozí příkaz TypesA.types.ps1xml pro soubor můžete opakovat nebo spustit Update-TypeData příkaz bez parametrů, protože TypesA.types.ps1xml už je v seznamu typů pro aktuální relaci.

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

Příklad 3: Přidání vlastnosti skriptu do objektů DateTime

Tento příklad používá Update-TypeData k přidání vlastnosti skriptu čtvrtletí do objektů System.DateTime v aktuální relaci, například ty, které vrací rutina 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

Příkaz Update-TypeData používá parametr TypeName k určení system.DateTime typ, MemberName parametr zadat název pro novou vlastnost, MemberType vlastnost zadat Typ ScriptProperty a Value parametr zadat skript, který určuje roční čtvrtletí.

Hodnota vlastnosti Value je skript, který vypočítá aktuální roční čtvrtletí. Blok skriptu používá automatickou $this proměnnou k reprezentaci aktuální instance objektu a operátor In k určení, zda se hodnota měsíce zobrazí v každém celočíselném poli. Další informace o operátoru -in najdete v tématu about_Comparison_Operators.

Druhý příkaz získá novou vlastnost Čtvrtletí aktuálního data.

Příklad 4: Aktualizace typu, který se zobrazuje ve výchozím nastavení v seznamech

Tento příklad ukazuje, jak nastavit vlastnosti typu, který se ve výchozím nastavení zobrazuje v seznamech, to znamená, že pokud nejsou zadány žádné vlastnosti. Vzhledem k tomu, že data typu nejsou zadána v Types.ps1xml souboru, je platná pouze v aktuální relaci.

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

První příkaz použije rutinu Update-TypeData k nastavení výchozích vlastností seznamu pro typ System.DateTime . Příkaz pomocí parametru TypeName určuje typ a DefaultDisplayPropertySet parametr k určení výchozích vlastností pro seznam. Vybrané vlastnosti zahrnují novou vlastnost skriptu čtvrtletí přidanou v předchozím příkladu.

Druhý příkaz používá rutinu Get-Date k získání objektu System.DateTime , který představuje aktuální datum. Příkaz používá operátor kanálu (|) k odeslání objektu DateTime do rutiny Format-List . Format-List Vzhledem k tomu, že příkaz nezadává vlastnosti, které se mají zobrazit v seznamu, používá PowerShell výchozí hodnoty vytvořené příkazemUpdate-TypeData.

Příklad 5: Aktualizace dat typu pro objekt s kanálem

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

Tento příklad ukazuje, že když předáte objekt do Update-TypeData, Update-TypeData přidá rozšířená data typu pro typ objektu.

Tato technika je rychlejší než použití Get-Member rutiny Get-Type nebo metody k získání typu objektu. Pokud však předáte kolekci objektů Update-TypeData, aktualizuje data typu prvního typu objektu a pak vrátí chybu pro všechny ostatní objekty v kolekci, protože člen je již definován v typu.

První příkaz pomocí rutiny Get-Module získá modul PSScheduledJob. Příkaz předá objekt modulu do Update-TypeData rutiny, která aktualizuje data typu System.Management.Automation.PSModuleInfoa typy odvozené z ní, například ModuleInfoGrouping typ, který Get-Module se vrátí při použití parametru ListAvailable v příkazu.

Příkazy Update-TypeData přidají vlastnost skriptu SupportsUpdatableHelp do všech importovaných modulů. Hodnota parametru Value je skript, který vrátí $True , pokud je vlastnost HelpInfoUri modulu naplněna a $False jinak.

Druhý příkaz předá objekty modulu z Get-ModuleFormat-Table rutiny, která zobrazí vlastnosti Name a SupportsUpdatableHelp všech modulů v seznamu.

Parametry

-AppendPath

Určuje cestu k volitelným .ps1xml souborům. Zadané soubory se načtou v pořadí, v jakém jsou uvedeny po načtení předdefinovaných souborů. Hodnotu AppendPath lze také převést na Update-TypeDatahodnotu .

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

-Confirm

Před spuštěním rutiny zobrazí výzvu k potvrzení.

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

-DefaultDisplayProperty

Určuje vlastnost typu, který se zobrazí rutinou Format-Wide , pokud nejsou zadány žádné jiné vlastnosti.

Zadejte název standardní nebo rozšířené vlastnosti typu. Hodnota tohoto parametru může být název typu přidaného ve stejném příkazu.

Tato hodnota je efektivní pouze v případě, že pro typ v Format.ps1xml souboru nejsou definována žádná široká zobrazení.

Tento parametr byl představen ve Windows PowerShellu 3.0.

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

-DefaultDisplayPropertySet

Určuje jednu nebo více vlastností typu. Tyto vlastnosti se zobrazí v Format-Listpřípadě, Format-Tableže nejsou zadány žádné jiné vlastnosti, a Format-Custom rutiny.

Zadejte názvy standardních nebo rozšířených vlastností typu. Hodnota tohoto parametru může být názvy typů, které jsou přidány ve stejném příkazu.

Tato hodnota platí pouze v případě, že pro typ v Format.ps1xml souboru nejsou definovány žádné seznamy, tabulky nebo vlastní zobrazení.

Tento parametr byl představen ve Windows PowerShellu 3.0.

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

-DefaultKeyPropertySet

Určuje jednu nebo více vlastností typu. Tyto vlastnosti používají Group-Object rutiny, Sort-Object pokud nejsou zadány žádné jiné vlastnosti.

Zadejte názvy standardních nebo rozšířených vlastností typu. Hodnota tohoto parametru může být názvy typů, které jsou přidány ve stejném příkazu.

Tento parametr byl představen ve Windows PowerShellu 3.0.

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

-Force

Označuje, že rutina používá zadaná data typu, i když už byla pro tento typ zadána data typu.

Tento parametr byl představen ve Windows PowerShellu 3.0.

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

-InheritPropertySerializationSet

Určuje, zda sada vlastností, které jsou serializovány je zděděna. Výchozí hodnota je $Null. Tento parametr přijímá tyto hodnoty:

  • $True. Sada vlastností je zděděna.
  • $False. Sada vlastností není zděděna.
  • $Null. Dědičnost není definována.

Tento parametr je platný pouze v případě, že hodnota SerializationMethod parametru je SpecificProperties. Pokud je $Falsehodnota tohoto parametru , je parametr PropertySerializationSet povinný.

Tento parametr byl představen ve Windows PowerShellu 3.0.

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

-MemberName

Určuje název vlastnosti nebo metody.

Tento parametr použijte s parametry TypeName, MemberType, Value a SecondValue pro přidání nebo změnu vlastnosti nebo metody typu.

Tento parametr byl představen ve Windows PowerShellu 3.0.

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

-MemberType

Určuje typ člena, který chcete přidat nebo změnit.

Tento parametr použijte s parametry TypeName, MemberType, Value a SecondValue pro přidání nebo změnu vlastnosti nebo metody typu. Tento parametr přijímá tyto hodnoty:

  • AliasProperty
  • CodeMethod
  • CodeProperty
  • Poznámka:
  • SkriptMethod
  • ScriptProperty

Informace o těchto hodnotách naleznete v tématu PSMemberTypes – výčet.

Tento parametr byl představen ve Windows PowerShellu 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

Určuje cestu k volitelným .ps1xml souborům. Zadané soubory se načtou v pořadí, v jakém jsou uvedeny před načtením předdefinovaných souborů.

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

-PropertySerializationSet

Určuje názvy vlastností, které jsou serializovány. Tento parametr použijte, pokud je hodnota SerializationMethod parametr SpecificProperties.

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

-SecondValue

Určuje další hodnoty pro aliasProperty, ScriptProperty, CodeProperty nebo CodeMethod členy.

Tento parametr použijte s parametry TypeName, MemberType, Value a SecondValue pro přidání nebo změnu vlastnosti nebo metody typu.

Pokud je AliasPropertyhodnota parametru MemberType , hodnota parametru SecondValue musí být datový typ. PowerShell převede hodnotu vlastnosti aliasu (to znamená přetypování) na zadaný typ. Pokud například přidáte vlastnost aliasu, která poskytuje alternativní název pro vlastnost řetězce, můžete také zadat Hodnotu SecondValue system.Int32 pro převod hodnoty řetězce aliasu na celé číslo.

Pokud je hodnota Parametr MemberType , můžete použít Parametr SecondValue k zadání dalšího bloku ScriptPropertyskriptu. Blok skriptu v hodnotě parametru Value získá hodnotu proměnné. Blok skriptu v hodnotě parametru SecondValue nastavil hodnotu proměnné.

Tento parametr byl představen ve Windows PowerShellu 3.0.

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

-SerializationDepth

Určuje, kolik úrovní objektů typu jsou serializovány jako řetězce. Výchozí hodnota 1 serializuje objekt a jeho vlastnosti. Hodnota 0 serializuje objekt, ale ne jeho vlastnosti. Hodnota 2 serializuje objekt, jeho vlastnosti a všechny objekty v hodnotách vlastností.

Tento parametr byl představen ve Windows PowerShellu 3.0.

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

-SerializationMethod

Určuje metodu serializace pro typ. Metoda serializace určuje, které vlastnosti typu jsou serializovány a technika, která se používá k jejich serializaci. Tento parametr přijímá tyto hodnoty:

  • AllPublicProperties. Serializovat všechny veřejné vlastnosti typu. Pomocí parametru SerializationDepth můžete určit, zda jsou podřízené vlastnosti serializovány.
  • String. Serializovat typ jako řetězec. StringSerializationSource můžete použít k určení vlastnosti typu, který se má použít jako výsledek serializace. V opačném případě typ je serializován pomocí ToString metoda objektu.
  • SpecificProperties. Serializovat pouze zadané vlastnosti tohoto typu. Pomocí PropertySerializationSet parametru zadejte vlastnosti typu, které jsou serializovány. Můžete také použít InheritPropertySerializationSet parametr určit, zda je sada vlastností zděděna a SerializationDepth parametr určit, zda podřízené vlastnosti jsou serializovány.

V PowerShellu jsou metody serializace uložené v interních objektech PSStandardMembers .

Tento parametr byl představen ve Windows PowerShellu 3.0.

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

-StringSerializationSource

Určuje název vlastnosti typu. Hodnota zadané vlastnosti se používá jako výsledek serializace. Tento parametr je platný pouze v případě, že hodnota SerializationMethod parametru je String.

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

-TargetTypeForDeserialization

Určuje typ, na který objekt tohoto typu je převeden při deserializaci.

Tento parametr byl představen ve Windows PowerShellu 3.0.

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

-TypeAdapter

Určuje typ adaptéru typu, například Microsoft.PowerShell.Cim.CimInstanceAdapter. Adaptér typu umožňuje PowerShellu získat členy typu.

Tento parametr byl představen ve Windows PowerShellu 3.0.

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

-TypeConverter

Určuje převaděč typů pro převod hodnot mezi různými typy. Pokud je pro typ definován převaděč typů, použije se pro převod instance převaděče typů.

Zadejte hodnotu System.Type odvozenou z třídy System.ComponentModel.TypeConverter nebo System.Management.Automation.PSTypeConverter.

Tento parametr byl představen ve Windows PowerShellu 3.0.

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

-TypeData

Určuje pole dat typu, která tato rutina přidá do relace. Zadejte proměnnou obsahující objekt TypeData nebo příkaz, který získá objekt TypeData , například Get-TypeData příkaz. Objekt TypeData můžete také převést na Update-TypeData.

Tento parametr byl představen ve Windows PowerShellu 3.0.

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

-TypeName

Určuje název typu, který se má rozšířit.

Pro typy v oboru názvů systému zadejte krátký název. V opačném případě se vyžaduje úplný název typu. Zástupné znaky se nepodporují.

Názvy typů svislých razítek můžete zadat do Update-TypeData. Když předáte objekt Update-TypeDatado , Update-TypeData získá název typu objektu a typ dat do typu objektu.

Tento parametr použijte s parametry MemberName, MemberType, Value a SecondValue pro přidání nebo změnu vlastnosti nebo metody typu.

Tento parametr byl představen ve Windows PowerShellu 3.0.

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

-Value

Určuje hodnotu vlastnosti nebo metody.

Pokud přidáte parametr AliasProperty, CodeProperty, ScriptPropertynebo CodeMethod člen, můžete pomocí parametru SecondValue přidat další informace.

Tento parametr použijte s parametry MemberName, MemberType, Value a SecondValue pro přidání nebo změnu vlastnosti nebo metody typu.

Tento parametr byl představen ve Windows PowerShellu 3.0.

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

-WhatIf

Zobrazuje, co by se stalo při spuštění rutiny. Rutina není spuštěna.

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

Vstupy

String

Do této rutiny můžete převést řetězec obsahující hodnoty parametrů AppendPath, TypeName nebo TypeData .

Výstupy

None

Tato rutina nevrátí žádný výstup.