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 rozszerzonego typu, ponieważ są potrzebne. Bez parametrów Update-TypeData
załaduje ponownie wszystkie pliki, które zostały załadowane w sesji, w tym wszelkie Types.ps1xml
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ć dane typu rozszerzonego.
Polecenie Update-TypeData
cmdlet może służyć do wstępnego ładowania wszystkich typów danych. Ta funkcja jest szczególnie przydatna podczas opracowywania typów i ładowania tych nowych typów do celów testowych.
Począwszy od programu 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 programu 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, aby usunąć typy rozszerzone z bieżącej sesji.
Wyjątki występujące we właściwościach lub od dodawania właściwości do Update-TypeData
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 dodane 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ę rozszerzonego Types.ps1xml
typu 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ę rozszerzonego Types.ps1xml
typu 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 zwracane 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 to skrypt, 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 wyświetlanego na listach domyślnie
W tym przykładzie pokazano, jak ustawić właściwości typu wyświetlanego na listach domyślnie, 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, aby ustawić domyślne 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 reprezentującego 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-TypeData
obiektu Update-TypeData
dodaje rozszerzone dane typu dla typu obiektu.
Ta technika jest szybsza niż użycie Get-Member
polecenia cmdlet lub Get-Type
metody w celu uzyskania typu obiektu. Jednak w przypadku potoku kolekcji obiektów do Update-TypeData
programu 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 na 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 od niego, takich jak typ ModuleInfoGrouping zwracany Get-Module
podczas używania 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
, 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-TypeData
elementu .
Typ: | String[] |
Aliases: | PSPath, Path |
Position: | 0 |
wartość domyślna: | None |
Wymagane: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Confirm
Monituje o potwierdzenie przed uruchomieniem polecenia cmdlet.
Typ: | SwitchParameter |
Aliases: | cf |
Position: | Named |
wartość domyślna: | False |
Wymagane: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-DefaultDisplayProperty
Określa właściwość typu wyświetlanego Format-Wide
przez 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 nie ma szerokich widoków zdefiniowanych dla typu w Format.ps1xml
pliku.
Ten parametr został wprowadzony w programie Windows PowerShell 3.0.
Typ: | String |
Position: | Named |
wartość domyślna: | None |
Wymagane: | False |
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-List
polecenia cmdlet , Format-Table
i 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 skuteczna tylko wtedy, gdy nie ma odpowiednio żadnych widoków list, tabel ani niestandardowych zdefiniowanych dla typu w Format.ps1xml
pliku.
Ten parametr został wprowadzony w programie Windows PowerShell 3.0.
Typ: | String[] |
Position: | Named |
wartość domyślna: | None |
Wymagane: | False |
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 programie Windows PowerShell 3.0.
Typ: | String[] |
Position: | Named |
wartość domyślna: | None |
Wymagane: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Force
Wskazuje, że polecenie cmdlet używa danych określonego typu, nawet jeśli dane typu zostały już określone dla tego typu.
Ten parametr został wprowadzony w programie Windows PowerShell 3.0.
Typ: | SwitchParameter |
Position: | Named |
wartość domyślna: | None |
Wymagane: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-InheritPropertySerializationSet
Wskazuje, czy zestaw właściwości, które są serializowane, jest dziedziczony. Domyślna wartość to $Null
. Dopuszczalne wartości 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 programie Windows PowerShell 3.0.
Typ: | Nullable<T>[Boolean] |
Position: | Named |
wartość domyślna: | None |
Wymagane: | False |
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 programie Windows PowerShell 3.0.
Typ: | String |
Position: | Named |
wartość domyślna: | None |
Wymagane: | False |
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 tego parametru to:
- AliasProperty
- CodeMethod
- CodeProperty
- Uwagawłaściwość
- ScriptMethod
- ScriptProperty
Aby uzyskać informacje o tych wartościach, zobacz PSMemberTypes, wyliczenie.
Ten parametr został wprowadzony w programie Windows PowerShell 3.0.
Typ: | PSMemberTypes |
akceptowane wartości: | NoteProperty, AliasProperty, ScriptProperty, CodeProperty, ScriptMethod, CodeMethod |
Position: | Named |
wartość domyślna: | None |
Wymagane: | False |
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.
Typ: | String[] |
Position: | Named |
wartość domyślna: | None |
Wymagane: | False |
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 ma wartość SpecificProperties.
Typ: | String[] |
Position: | Named |
wartość domyślna: | None |
Wymagane: | False |
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 rzutowania) 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 programie Windows PowerShell 3.0.
Typ: | Object |
Position: | Named |
wartość domyślna: | None |
Wymagane: | False |
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 wszelkie obiekty w wartościach właściwości.
Ten parametr został wprowadzony w programie Windows PowerShell 3.0.
Typ: | Int32 |
Position: | Named |
wartość domyślna: | 1 |
Wymagane: | False |
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, oraz technikę, która jest używana do serializacji ich. Dopuszczalne wartości tego parametru to:
AllPublicProperties
. Serializuj wszystkie właściwości publiczne typu. Można użyć parametru SerializationDepth , aby określić, czy właściwości podrzędne są serializowane.String
. Serializuj typ jako ciąg. Element StringSerializationSource umożliwia określenie właściwości 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óre są serializowane. 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 programie Windows PowerShell 3.0.
Typ: | String |
Position: | Named |
wartość domyślna: | None |
Wymagane: | False |
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.
Typ: | String |
Position: | Named |
wartość domyślna: | None |
Wymagane: | False |
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 programie Windows PowerShell 3.0.
Typ: | Type |
Position: | Named |
wartość domyślna: | None |
Wymagane: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-TypeAdapter
Określa typ adaptera typu, taki jak Microsoft.PowerShell.Cim.CimInstanceAdapter. Adapter typu umożliwia programowi PowerShell pobranie elementów członkowskich typu.
Ten parametr został wprowadzony w programie Windows PowerShell 3.0.
Typ: | Type |
Position: | Named |
wartość domyślna: | None |
Wymagane: | False |
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 konwerter typów jest zdefiniowany dla typu, do konwersji jest używane wystąpienie konwertera typów.
Wprowadź wartość System.Type pochodzącą z klas System.ComponentModel.TypeConverter lub System.Management.Automation.PSTypeConverter.
Ten parametr został wprowadzony w programie Windows PowerShell 3.0.
Typ: | Type |
Position: | Named |
wartość domyślna: | None |
Wymagane: | False |
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ż przekazać obiekt TypeData do Update-TypeData
obiektu .
Ten parametr został wprowadzony w programie Windows PowerShell 3.0.
Typ: | TypeData[] |
Position: | 0 |
wartość domyślna: | None |
Wymagane: | True |
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 potoku można przekazać do Update-TypeData
. Podczas potoku obiektu do Update-TypeData
obiektu 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 programie Windows PowerShell 3.0.
Typ: | String |
Position: | Named |
wartość domyślna: | None |
Wymagane: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Value
Określa wartość właściwości lub metody.
Jeśli dodasz element członkowski AliasProperty
, CodeProperty
, ScriptProperty
lub CodeMethod
, 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 programie Windows PowerShell 3.0.
Typ: | Object |
Position: | Named |
wartość domyślna: | None |
Wymagane: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-WhatIf
Pokazuje, co się stanie po uruchomieniu polecenia cmdlet. Polecenie cmdlet nie zostało uruchomione.
Typ: | SwitchParameter |
Aliases: | wi |
Position: | Named |
wartość domyślna: | False |
Wymagane: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Dane wejściowe
Możesz potokować ciąg zawierający wartości parametrów AppendPath, TypeName lub TypeData do tego polecenia cmdlet.
Dane wyjściowe
None
To polecenie cmdlet nie zwraca żadnych danych wyjściowych.
Linki powiązane
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla