Update-TypeData

Aktualizacje danych typu rozszerzonego w sesji.

Składnia

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

Opis

Polecenie Update-TypeData cmdlet aktualizuje dane typu rozszerzonego w sesji przez ponowne załadowanie Types.ps1xml plików do pamięci i dodanie nowych danych typu rozszerzonego.

Domyślnie program PowerShell ładuje dane typu rozszerzonego zgodnie z potrzebami. Bez parametrów Update-TypeData ponownie ładuje wszystkie Types.ps1xml pliki, które zostały załadowane w sesji, w tym wszelkie pliki typu, które zostały dodane. Możesz użyć parametrów , Update-TypeData aby dodać nowe pliki typu i dodać i zastąpić rozszerzone dane typu.

Polecenie Update-TypeData cmdlet może służyć do wstępnego ładowania wszystkich danych typu. Ta funkcja jest szczególnie przydatna podczas opracowywania typów i ładowania tych nowych typów do celów testowych.

Począwszy od Windows PowerShell 3.0, można użyć Update-TypeData do dodawania i zastępowania danych typu rozszerzonego Types.ps1xml w sesji bez użycia pliku. Dane typu dodawane dynamicznie, czyli bez pliku, są dodawane tylko do bieżącej sesji. Aby dodać dane typu do wszystkich sesji, dodaj Update-TypeData polecenie do profilu programu PowerShell. Aby uzyskać więcej informacji, zobacz about_Profiles.

Ponadto, począwszy od Windows PowerShell 3.0, można użyć Get-TypeData polecenia cmdlet , aby pobrać typy rozszerzone w bieżącej sesji i Remove-TypeData polecenie cmdlet do usuwania typów rozszerzonych z bieżącej sesji.

Wyjątki występujące we właściwościach lub z dodawania Update-TypeData właściwości do polecenia nie zgłaszają błędów. Jest to pomijanie wyjątków, które wystąpiłyby w wielu typach typowych podczas formatowania i wyprowadzania. Jeśli uzyskujesz właściwości platformy .NET, możesz obejść pomijanie wyjątków przy użyciu składni metody, jak pokazano w poniższym przykładzie:

"hello".get_Length()

Należy pamiętać, że składnia metody może być używana tylko z właściwościami platformy .NET. Właściwości dodawane przez uruchomienie Update-TypeData polecenia cmdlet nie mogą używać składni metody.

Aby uzyskać więcej informacji na temat Types.ps1xml plików w programie PowerShell, zobacz about_Types.ps1xml.

Przykłady

Przykład 1. Aktualizowanie typów rozszerzonych

Update-TypeData

To polecenie aktualizuje konfigurację typu rozszerzonego Types.ps1xml z plików, które zostały już użyte w sesji.

Przykład 2. Wielokrotne aktualizowanie typów

W tym przykładzie pokazano, jak zaktualizować typy w pliku typu wiele razy w tej samej sesji.

Pierwsze polecenie aktualizuje konfigurację typu rozszerzonego Types.ps1xml z plików, najpierw przetwarza pliki TypesA.types.ps1xml i TypesB.types.ps1xml .

Drugie polecenie pokazuje, jak zaktualizować TypesA.types.ps1xml ponownie, na przykład w przypadku dodania lub zmiany typu w pliku. Możesz powtórzyć poprzednie polecenie dla TypesA.types.ps1xml pliku lub uruchomić Update-TypeData polecenie bez parametrów, ponieważ TypesA.types.ps1xml znajduje się już na liście plików typów dla bieżącej sesji.

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

Przykład 3. Dodawanie właściwości skryptu do obiektów DateTime

W tym przykładzie użyto Update-TypeData polecenia , aby dodać właściwość skryptu Quarter do obiektów System.DateTime w bieżącej sesji, takich jak te zwrócone przez Get-Date polecenie cmdlet.

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

Polecenie Update-TypeData używa parametru TypeName do określenia typu System.DateTime , parametru MemberName w celu określenia nazwy nowej właściwości, właściwości MemberType w celu określenia typu ScriptProperty i parametru Value w celu określenia skryptu określającego kwartał roczny.

Wartość właściwości Value jest skryptem, który oblicza bieżący kwartał roczny. Blok skryptu używa zmiennej automatycznej $this do reprezentowania bieżącego wystąpienia obiektu i operatora In w celu określenia, czy wartość miesiąca pojawia się w każdej tablicy całkowitej. Aby uzyskać więcej informacji na temat -in operatora, zobacz about_Comparison_Operators.

Drugie polecenie pobiera nową właściwość Quarter bieżącej daty.

Przykład 4: Aktualizowanie typu, który jest domyślnie wyświetlany na listach

W tym przykładzie pokazano, jak ustawić właściwości typu, które są domyślnie wyświetlane na listach, czyli wtedy, gdy nie określono żadnych właściwości. Ponieważ dane typu nie są określone w Types.ps1xml pliku, obowiązują tylko w bieżącej sesji.

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

Pierwsze polecenie używa Update-TypeData polecenia cmdlet do ustawienia domyślnych właściwości listy dla typu System.DateTime . Polecenie używa parametru TypeName do określenia typu i parametru DefaultDisplayPropertySet w celu określenia domyślnych właściwości listy. Wybrane właściwości obejmują nową właściwość skryptu Quarter , która została dodana w poprzednim przykładzie.

Drugie polecenie używa Get-Date polecenia cmdlet do pobrania obiektu System.DateTime , który reprezentuje bieżącą datę. Polecenie używa operatora potoku (|), aby wysłać obiekt DateTime do Format-List polecenia cmdlet. Format-List Ponieważ polecenie nie określa właściwości do wyświetlenia na liście, program PowerShell używa wartości domyślnych ustanowionych przez Update-TypeData polecenie .

Przykład 5. Aktualizowanie danych typu dla obiektu potokowego

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

W tym przykładzie pokazano, że podczas potoku obiektu do Update-TypeDataobiektu Update-TypeData dodaje rozszerzone dane typu dla typu obiektu.

Ta technika jest szybsza niż użycie Get-Member polecenia cmdlet lub Get-Type metody pobierania typu obiektu. Jednak w przypadku potoku kolekcji obiektów do Update-TypeDataprogramu program aktualizuje dane typu pierwszego typu obiektu, a następnie zwraca błąd dla wszystkich innych obiektów w kolekcji, ponieważ element członkowski jest już zdefiniowany w typie.

Pierwsze polecenie używa Get-Module polecenia cmdlet do pobrania modułu PSScheduledJob. Polecenie potokuje obiekt modułu Update-TypeData do polecenia cmdlet, które aktualizuje dane typu dla typu System.Management.Automation.PSModuleInfo i typów pochodnych, takich jak typ ModuleInfoGrouping zwracany Get-Module podczas korzystania z parametru ListAvailable w poleceniu.

Polecenia Update-TypeData dodaje właściwość skryptu SupportsUpdatableHelp do wszystkich zaimportowanych modułów. Wartość parametru Value jest skryptem, który zwraca $True wartość, jeśli właściwość HelpInfoUri modułu jest wypełniana i $False w inny sposób.

Drugie polecenie potokuje obiekty modułu z Get-Module do Format-Table polecenia cmdlet, które wyświetla właściwości Name i SupportsUpdatableHelp wszystkich modułów na liście.

Parametry

-AppendPath

Określa ścieżkę do opcjonalnych .ps1xml plików. Określone pliki są ładowane w kolejności, w której są wyświetlane po załadowaniu wbudowanych plików. Możesz również przekazać wartość AppendPath do Update-TypeDataelementu .

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

-Confirm

Monituje o potwierdzenie przed uruchomieniem polecenia cmdlet.

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

-DefaultDisplayProperty

Określa właściwość typu, który jest wyświetlany przez Format-Wide polecenie cmdlet, gdy nie określono żadnych innych właściwości.

Wpisz nazwę standardowej lub rozszerzonej właściwości typu. Wartość tego parametru może być nazwą typu, który jest dodawany w tym samym poleceniu.

Ta wartość jest efektywna tylko wtedy, gdy w pliku nie zdefiniowano żadnych szerokich widoków dla typu Format.ps1xml .

Ten parametr został wprowadzony w Windows PowerShell 3.0.

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

-DefaultDisplayPropertySet

Określa co najmniej jedną właściwość typu. Te właściwości są wyświetlane przez Format-Listpolecenia cmdlet , Format-Tablei Format-Custom , gdy nie określono żadnych innych właściwości.

Wpisz nazwy właściwości standardowych lub rozszerzonych typu. Wartość tego parametru może być nazwami typów, które są dodawane w tym samym poleceniu.

Ta wartość jest efektywna tylko wtedy, gdy nie ma odpowiednio żadnych list, tabel ani widoków niestandardowych zdefiniowanych dla typu w Format.ps1xml pliku.

Ten parametr został wprowadzony w Windows PowerShell 3.0.

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

-DefaultKeyPropertySet

Określa co najmniej jedną właściwość typu. Te właściwości są używane przez Group-Object polecenia cmdlet i Sort-Object , gdy nie określono żadnych innych właściwości.

Wpisz nazwy właściwości standardowych lub rozszerzonych typu. Wartość tego parametru może być nazwami typów, które są dodawane w tym samym poleceniu.

Ten parametr został wprowadzony w Windows PowerShell 3.0.

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

-Force

Wskazuje, że polecenie cmdlet używa danych określonego typu, nawet jeśli typ danych został już określony dla tego typu.

Ten parametr został wprowadzony w Windows PowerShell 3.0.

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

-InheritPropertySerializationSet

Wskazuje, czy zestaw właściwości, które są serializowane, jest dziedziczony. Wartość domyślna to $Null. Dopuszczalne wartości dla tego parametru to:

  • $True. Zestaw właściwości jest dziedziczony.
  • $False. Zestaw właściwości nie jest dziedziczony.
  • $Null. Dziedziczenie nie jest zdefiniowane.

Ten parametr jest prawidłowy tylko wtedy, gdy wartość parametru SerializationMethod to SpecificProperties. Gdy wartość tego parametru to $False, parametr PropertySerializationSet jest wymagany.

Ten parametr został wprowadzony w Windows PowerShell 3.0.

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

-MemberName

Określa nazwę właściwości lub metody.

Użyj tego parametru z parametrami TypeName, MemberType, Value i SecondValue , aby dodać lub zmienić właściwość lub metodę typu.

Ten parametr został wprowadzony w Windows PowerShell 3.0.

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

-MemberType

Określa typ elementu członkowskiego do dodania lub zmiany.

Użyj tego parametru z parametrami TypeName, MemberType, Value i SecondValue , aby dodać lub zmienić właściwość lub metodę typu. Dopuszczalne wartości dla tego parametru to:

  • AliasProperty
  • CodeMethod
  • CodeProperty
  • Uwagawłaściwość
  • ScriptMethod
  • ScriptProperty

Aby uzyskać informacje o tych wartościach, zobacz Wyliczenie PSMemberTypes.

Ten parametr został wprowadzony w 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

-PrependPath

Określa ścieżkę do opcjonalnych .ps1xml plików. Określone pliki są ładowane w kolejności, w której są wyświetlane przed załadowaniem wbudowanych plików.

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

-PropertySerializationSet

Określa nazwy właściwości, które są serializowane. Użyj tego parametru, gdy wartość parametru SerializationMethod to SpecificProperties.

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

-SecondValue

Określa dodatkowe wartości dla elementów członkowskich AliasProperty, ScriptProperty, CodeProperty lub CodeMethod .

Użyj tego parametru z parametrami TypeName, MemberType, Value i SecondValue , aby dodać lub zmienić właściwość lub metodę typu.

Gdy wartość parametru MemberType to AliasProperty, wartość parametru SecondValue musi być typem danych. Program PowerShell konwertuje (czyli rzutuje) wartość właściwości aliasu na określony typ. Jeśli na przykład dodasz właściwość aliasu, która udostępnia alternatywną nazwę właściwości ciągu, możesz również określić wartość SecondValue elementu System.Int32 , aby przekonwertować aliasowaną wartość ciągu na liczbę całkowitą.

Gdy wartość parametru MemberType to ScriptProperty, można użyć parametru SecondValue , aby określić dodatkowy blok skryptu. Blok skryptu w wartości parametru Value pobiera wartość zmiennej. Blok skryptu w wartości parametru SecondValue ustawił wartość zmiennej.

Ten parametr został wprowadzony w Windows PowerShell 3.0.

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

-SerializationDepth

Określa, ile poziomów obiektów typu są serializowane jako ciągi. Wartość 1 domyślna serializuje obiekt i jego właściwości. Wartość 0 serializuje obiekt, ale nie jego właściwości. Wartość 2 serializuje obiekt, jego właściwości i wszystkie obiekty w wartościach właściwości.

Ten parametr został wprowadzony w Windows PowerShell 3.0.

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

-SerializationMethod

Określa metodę serializacji dla typu. Metoda serializacji określa, które właściwości typu są serializowane, a technika używana do serializacji ich. Dopuszczalne wartości dla tego parametru to:

  • AllPublicProperties. Serializowanie wszystkich właściwości publicznych typu. Można użyć parametru SerializationDepth , aby określić, czy właściwości podrzędne są serializowane.
  • String. Serializowanie typu jako ciągu. Za pomocą elementu StringSerializationSource można określić właściwość typu, która ma być używana jako wynik serializacji. W przeciwnym razie typ jest serializowany przy użyciu metody ToString obiektu.
  • SpecificProperties. Serializuj tylko określone właściwości tego typu. Użyj parametru PropertySerializationSet , aby określić właściwości typu, który jest serializowany. Można również użyć parametru InheritPropertySerializationSet , aby określić, czy zestaw właściwości jest dziedziczony, a parametr SerializationDepth w celu określenia, czy właściwości podrzędne są serializowane.

W programie PowerShell metody serializacji są przechowywane w obiektach wewnętrznych PSStandardMembers .

Ten parametr został wprowadzony w Windows PowerShell 3.0.

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

-StringSerializationSource

Określa nazwę właściwości typu. Wartość określonej właściwości jest używana jako wynik serializacji. Ten parametr jest prawidłowy tylko wtedy, gdy wartość parametru SerializationMethod to String.

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

-TargetTypeForDeserialization

Określa typ, do którego obiektu tego typu są konwertowane podczas deserializacji.

Ten parametr został wprowadzony w Windows PowerShell 3.0.

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

-TypeAdapter

Określa typ karty typu, na przykład Microsoft.PowerShell.Cim.CimInstanceAdapter. Karta typu umożliwia programowi PowerShell uzyskanie elementów członkowskich typu.

Ten parametr został wprowadzony w Windows PowerShell 3.0.

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

-TypeConverter

Określa konwerter typów do konwertowania wartości między różnymi typami. Jeśli dla typu zdefiniowano konwerter typów, do konwersji jest używane wystąpienie konwertera typów.

Wprowadź wartość System.Type , która pochodzi z klas System.ComponentModel.TypeConverter lub System.Management.Automation.PSTypeConverter .

Ten parametr został wprowadzony w Windows PowerShell 3.0.

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

-TypeData

Określa tablicę danych typu, które to polecenie cmdlet dodaje do sesji. Wprowadź zmienną zawierającą obiekt TypeData lub polecenie, które pobiera obiekt TypeData , na przykład Get-TypeData polecenie. Możesz również potokować obiekt TypeData do Update-TypeDataobiektu .

Ten parametr został wprowadzony w Windows PowerShell 3.0.

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

-TypeName

Określa nazwę typu do rozszerzenia.

W przypadku typów w przestrzeni nazw systemu wprowadź krótką nazwę. W przeciwnym razie wymagana jest pełna nazwa typu. Symbole wieloznaczne nie są obsługiwane.

Nazwy typów potoków można przekazać do Update-TypeData. Podczas potoku obiektu do Update-TypeDataobiektu Update-TypeData pobiera nazwę typu obiektu i typ danych do typu obiektu.

Użyj tego parametru z parametrami MemberName, MemberType, Value i SecondValue , aby dodać lub zmienić właściwość lub metodę typu.

Ten parametr został wprowadzony w Windows PowerShell 3.0.

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

-Value

Określa wartość właściwości lub metody.

Jeśli dodasz element AliasPropertyczłonkowski , , CodePropertyScriptPropertylubCodeMethod, możesz użyć parametru SecondValue, aby dodać dodatkowe informacje.

Użyj tego parametru z parametrami MemberName, MemberType, Value i SecondValue , aby dodać lub zmienić właściwość lub metodę typu.

Ten parametr został wprowadzony w Windows PowerShell 3.0.

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

-WhatIf

Pokazuje, co się stanie po uruchomieniu polecenia cmdlet. Polecenie cmdlet nie zostało uruchomione.

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

Dane wejściowe

String

Możesz potokować ciąg zawierający wartości parametrów AppendPath, TypeName lub TypeData do Update-TypeData.

Dane wyjściowe

None

To polecenie cmdlet nie zwraca żadnych danych wyjściowych.