Informacje o Types.ps1XMLAbout Types.ps1xml

Krótki opisShort description

Wyjaśnia, jak używać Types.ps1xml plików do rozbudowania typów obiektów używanych w programie PowerShell.Explains how to use Types.ps1xml files to extend the types of objects that are used in PowerShell.

Długi opisLong description

Rozszerzone dane typów definiują dodatkowe właściwości i metody ("Members") typów obiektów w programie PowerShell.Extended type data defines additional properties and methods ("members") of object types in PowerShell. Istnieją dwie techniki dodawania danych typu rozszerzonego do sesji programu PowerShell.There are two techniques for adding extended type data to a PowerShell session.

  • Types.ps1xml plik: plik XML, który definiuje rozszerzone dane typu.Types.ps1xml file: An XML file that defines extended type data.
  • Update-TypeData: Polecenie cmdlet, które ładuje ponownie Types.ps1xml pliki i definiuje rozszerzone dane dla typów w bieżącej sesji.Update-TypeData: A cmdlet that reloads Types.ps1xml files and defines extended data for types in the current session.

W tym temacie opisano Types.ps1xml pliki.This topic describes Types.ps1xml files. Aby uzyskać więcej informacji o korzystaniu z Update-TypeData polecenia cmdlet do dodawania danych dynamicznego typu rozszerzonego do bieżącej sesji, zobacz Update-TypeData.For more information about using the Update-TypeData cmdlet to add dynamic extended type data to the current session see Update-TypeData.

Dane typu rozszerzonego — informacjeAbout extended type data

Rozszerzone dane typów definiują dodatkowe właściwości i metody ("Members") typów obiektów w programie PowerShell.Extended type data defines additional properties and methods ("members") of object types in PowerShell. Można rozłożyć dowolny typ obsługiwany przez program PowerShell i użyć dodanych właściwości i metod w taki sam sposób, jak właściwości, które są zdefiniowane dla typów obiektów.You can extend any type that is supported by PowerShell and use the added properties and methods in the same way that you use the properties that are defined on the object types.

Na przykład program PowerShell dodaje właściwość DateTime do wszystkich System.DateTime obiektów, takich jak te, które Get-Date zwraca polecenie cmdlet.For example, PowerShell adds a DateTime property to all System.DateTime objects, such as the ones that the Get-Date cmdlet returns.

(Get-Date).DateTime
Sunday, January 29, 2012 9:43:57 AM

Nie można znaleźć właściwości DateTime w opisie struktury System. DateTime , ponieważ program PowerShell dodaje właściwość i jest widoczna tylko w programie PowerShell.You won't find the DateTime property in the description of the System.DateTime structure, because PowerShell adds the property and it is visible only in PowerShell.

Program PowerShell wewnętrznie definiuje domyślny zestaw typów rozszerzonych.PowerShell internally defines a default set of extended types. Te informacje o typie są ładowane podczas każdej sesji programu PowerShell podczas uruchamiania.This type information is loaded in every PowerShell session at startup. Właściwość DateTime jest częścią tego zestawu domyślnego.The DateTime property is part of this default set. Przed uruchomieniem programu PowerShell 6 definicje typów były przechowywane Types.ps1xml w katalogu instalacyjnym programu PowerShell ( $PSHOME ).Prior to PowerShell 6, the type definitions were stored the Types.ps1xml file in the PowerShell installation directory ($PSHOME).

Dodawanie rozszerzonych danych typu do programu PowerShellAdding extended type data to PowerShell

Istnieją trzy źródła danych rozszerzonego typu w sesjach programu PowerShell.There are three sources of extended type data in PowerShell sessions.

  • Zdefiniowane przez program PowerShell i są ładowane automatycznie do każdej sesji programu PowerShell.The defined by PowerShell and is loaded automatically into every PowerShell session. Począwszy od programu PowerShell 6, te informacje są kompilowane w programie PowerShell i nie są już dostarczane w Types.ps1xml pliku.Beginning with PowerShell 6, this information is compiled into PowerShell and is no longer shipped in a Types.ps1xml file.

  • Types.ps1xmlPliki eksportowane przez moduły podczas importowania modułu do bieżącej sesji.The Types.ps1xml files that modules export are loaded when the module is imported into the current session.

  • Rozszerzone dane typu zdefiniowane za pomocą Update-TypeData polecenia cmdlet są dodawane tylko do bieżącej sesji.Extended type data that is defined by using the Update-TypeData cmdlet is added only to the current session. Nie jest on zapisywany w pliku.It is not saved in a file.

W sesji dane typu rozszerzonego z trzech źródeł są stosowane do obiektów w ten sam sposób i są dostępne we wszystkich obiektach określonego typu.In the session, the extended type data from the three sources is applied to objects in the same way and is available on all objects of the specified types.

Polecenia cmdlet TypeDataThe TypeData cmdlets

Następujące polecenia cmdlet są zawarte w module Microsoft. PowerShell. Utility w programie PowerShell 3,0 i nowszych.The following cmdlets are included in the Microsoft.PowerShell.Utility module in PowerShell 3.0 and later.

  • Get-TypeData: Pobiera rozszerzone dane typu w bieżącej sesji.Get-TypeData: Gets extended type data in the current session.
  • Update-TypeData: Ponownie ładuje Types.ps1xml pliki.Update-TypeData: Reloads Types.ps1xml files. Dodaje rozszerzone dane typu do bieżącej sesji.Adds extended type data to the current session.
  • Remove-TypeData: Usuwa rozszerzone dane typu z bieżącej sesji.Remove-TypeData: Removes extended type data from the current session.

Aby uzyskać więcej informacji na temat tych poleceń cmdlet, zobacz temat pomocy dla każdego polecenia cmdlet.For more information about these cmdlets, see the help topic for each cmdlet.

Wbudowane Types.ps1pliki XMLBuilt-in Types.ps1xml files

Types.ps1xmlPliki w $PSHOME katalogu są dodawane automatycznie do każdej sesji.The Types.ps1xml files in the $PSHOME directory are added automatically to every session.

Types.ps1xmlPlik w katalogu instalacyjnym programu PowerShell ( $PSHOME ) to plik tekstowy oparty na języku XML, który umożliwia dodawanie właściwości i metod do obiektów, które są używane w programie PowerShell.The Types.ps1xml file in the PowerShell installation directory ($PSHOME) is an XML-based text file that lets you add properties and methods to the objects that are used in PowerShell. Program PowerShell zawiera wbudowane Types.ps1xml pliki, które dodają kilka elementów do typów .NET, ale można tworzyć dodatkowe Types.ps1xml pliki, aby dodatkowo rozszerzać typy.PowerShell has built-in Types.ps1xml files that add several elements to the .NET types, but you can create additional Types.ps1xml files to further extend the types.

Na przykład domyślnie obiekty Array ( System.Array ) mają właściwość Length , która wyświetla liczbę obiektów w tablicy.For example, by default, array objects (System.Array) have a Length property that lists the number of objects in the array. Jednakże, ponieważ Długość nazwy nie opisuje jasno właściwości, program PowerShell dodaje właściwość Alias o nazwie Count , która wyświetla tę samą wartość.However, because the name Length does not clearly describe the property, PowerShell adds an alias property named Count that displays the same value. Poniższy kod XML dodaje właściwość Count do System.Array typu.The following XML adds the Count property to the System.Array type.

<Type>
  <Name>System.Array</Name>
  <Members>
    <AliasProperty>
      <Name>Count</Name>
      <ReferencedMemberName>
        Length
      </ReferencedMemberName>
    </AliasProperty>
  </Members>
</Type>

Aby uzyskać nowy AliasProperty , użyj Get-Member polecenia w dowolnej tablicy, jak pokazano w poniższym przykładzie.To get the new AliasProperty , use a Get-Member command on any array, as shown in the following example.

Get-Member -InputObject (1,2,3,4)

Polecenie zwraca następujące wyniki.The command returns the following results.

Name       MemberType    Definition
----       ----------    ----------
Count      AliasProperty Count = Length
Address    Method        System.Object& Address(Int32)
Clone      Method        System.Object Clone()
CopyTo     Method        System.Void CopyTo(Array array, Int32 index):
Equals     Method        System.Boolean Equals(Object obj)
Get        Method        System.Object Get(Int32)
# ...

W związku z tym można użyć właściwości Count lub właściwości Length tablic w programie PowerShell.As a result, you can use either the Count property or the Length property of arrays in PowerShell. Przykład:For example:

(1, 2, 3, 4).count
4
(1, 2, 3, 4).length
4

Tworzenie nowych plików XML Types.ps1Creating new Types.ps1xml files

.ps1xmlPliki, które są zainstalowane przy użyciu programu PowerShell, są podpisane cyfrowo, aby zapobiec naruszeniu, ponieważ formatowanie może zawierać bloki skryptów.The .ps1xml files that are installed with PowerShell are digitally signed to prevent tampering because the formatting can include script blocks. W związku z tym, aby dodać właściwość lub metodę do typu .NET, Utwórz własne Types.ps1xml pliki, a następnie dodaj je do sesji programu PowerShell.Therefore, to add a property or method to a .NET type, create your own Types.ps1xml files, and then add them to your PowerShell session.

Aby utworzyć nowy plik, Zacznij od skopiowania istniejącego Types.ps1xml pliku.To create a new file, start by copying an existing Types.ps1xml file. Nowy plik może mieć dowolną nazwę, ale musi mieć .ps1xml rozszerzenie nazwy pliku.The new file can have any name, but it must have a .ps1xml file name extension. Nowy plik można umieścić w dowolnym katalogu, który jest dostępny dla programu PowerShell, ale warto umieścić pliki w katalogu instalacyjnym programu PowerShell ( $PSHOME ) lub w podkatalogu katalogu instalacyjnego.You can place the new file in any directory that is accessible to PowerShell, but it is useful to place the files in the PowerShell installation directory ($PSHOME) or in a subdirectory of the installation directory.

Po zapisaniu nowego pliku Użyj Update-TypeData polecenia cmdlet, aby dodać nowy plik do sesji programu PowerShell.When you have saved the new file, use the Update-TypeData cmdlet to add the new file to your PowerShell session. Jeśli chcesz, aby typy miały pierwszeństwo przed wbudowanymi typami zdefiniowanymi, użyj parametru PrependData Update-TypeData polecenia cmdlet.If you want your types to take precedence over the built-in types that are defined, use the PrependData parameter of the Update-TypeData cmdlet. Update-TypeData ma wpływ tylko na bieżącą sesję.Update-TypeData affects only the current session. Aby wprowadzić zmiany we wszystkich przyszłych sesjach, wyeksportuj konsolę lub Dodaj Update-TypeData polecenie do profilu programu PowerShell.To make the change to all future sessions, export the console, or add the Update-TypeData command to your PowerShell profile.

Types.ps1XML i Add-MemberTypes.ps1xml and Add-Member

Types.ps1xmlPliki dodają właściwości i metody do wszystkich wystąpień obiektów określonego typu .NET w sesji programu PowerShell, której to dotyczy.The Types.ps1xml files add properties and methods to all the instances of the objects of the specified .NET type in the affected PowerShell session. Jeśli jednak zachodzi potrzeba dodania właściwości lub metod tylko do jednego wystąpienia obiektu, należy użyć Add-Member polecenia cmdlet.However, if you need to add properties or methods only to one instance of an object, use the Add-Member cmdlet.

Aby uzyskać więcej informacji, zobacz Dodawanie elementów członkowskich.For more information, see Add-Member.

Przykład: Dodawanie elementu członkowskiego wieku do obiektów FileInfoExample: Adding an Age member to FileInfo objects

Ten przykład pokazuje, jak dodać właściwość wieku do obiektów System. IO. FileInfo .This example shows how to add an Age property to System.IO.FileInfo objects. Wiek pliku to różnica między czasem jego tworzenia a bieżącym czasem w dniach.The age of a file is the difference between its creation time and the current time in days.

Ponieważ właściwość wieku jest obliczana przy użyciu bloku skryptu, Znajdź <ScriptProperty> tag, który ma być używany jako model dla nowej właściwości wieku .Because the Age property is calculated by using a script block, find a <ScriptProperty> tag to use as a model for the new Age property.

Zapisz kod XML do pliku $PSHOME\MyTypes.ps1xml .Save the follow XML code to the file $PSHOME\MyTypes.ps1xml.

<?xml version="1.0" encoding="utf-8" ?>
<Types>
  <Type>
    <Name>System.IO.FileInfo</Name>
    <Members>
      <ScriptProperty>
        <Name>Age</Name>
        <GetScriptBlock>
          ((Get-Date) - ($this.CreationTime)).Days
        </GetScriptBlock>
      </ScriptProperty>
    </Members>
  </Type>
</Types>

Uruchom Update-TypeData , aby dodać nowy Types.ps1xml plik do bieżącej sesji.Run Update-TypeData to add the new Types.ps1xml file to the current session. Polecenie używa parametru PrependData , aby umieścić nowy plik w kolejności pierwszeństwa wyższa niż pierwotne definicje.The command uses the PrependData parameter to place the new file in a precedence order higher than the original definitions.

Aby uzyskać więcej informacji na temat Update-TypeData , zobacz Update-TypeData.For more information about Update-TypeData, see Update-TypeData.

Update-Typedata -PrependPath $PSHOME\MyTypes.ps1xml

Aby przetestować zmianę, uruchom polecenie w Get-ChildItem celu pobrania pliku PowerShell.exe w $PSHOME katalogu, a następnie przeprowadź potok pliku do Format-List polecenia cmdlet, aby wyświetlić listę wszystkich właściwości pliku.To test the change, run a Get-ChildItem command to get the PowerShell.exe file in the $PSHOME directory, and then pipe the file to the Format-List cmdlet to list all of the properties of the file. W wyniku zmiany właściwość Age zostanie wyświetlona na liście.As a result of the change, the Age property appears in the list.

Get-ChildItem $PSHOME\pwsh.exe | Select-Object Age
142

Plik XML w Types.ps1plików XMLThe XML in Types.ps1xml files

Pełną definicję schematu można znaleźć w pliku Types. xsd w repozytorium kodu źródłowego programu PowerShell w witrynie GitHub.The full schema definition can be found in Types.xsd in the PowerShell source code repository on GitHub.

<Types>Tag otacza wszystkie typy, które są zdefiniowane w pliku.The <Types> tag encloses all of the types that are defined in the file. Powinien istnieć tylko jeden <Types> tag.There should be only one <Types> tag.

Każdy typ .NET wymieniony w pliku powinien być reprezentowany przez <Type> tag.Each .NET type mentioned in the file should be represented by a <Type> tag.

Tagi typu muszą zawierać następujące Tagi:The type tags must contain the following tags:

<Name>: Należy ująć nazwę typu .NET, którego to dotyczy.<Name>: Encloses the name of the affected .NET type.

<Members>: Ujmuje Tagi dla nowych właściwości i metod, które są zdefiniowane dla typu .NET.<Members>: Encloses the tags for the new properties and methods that are defined for the .NET type.

Wszystkie poniższe Tagi składowe mogą znajdować się wewnątrz <Members> znacznika.Any of the following member tags can be inside the <Members> tag.

<AliasProperty>: Definiuje nową nazwę istniejącej właściwości.<AliasProperty>: Defines a new name for an existing property.

<AliasProperty>Tag musi mieć <Name> tag, który określa nazwę nowej właściwości i <ReferencedMemberName> tag, który określa istniejącą właściwość.The <AliasProperty> tag must have a <Name> tag that specifies the name of the new property and a <ReferencedMemberName> tag that specifies the existing property.

Na przykład właściwość Count alias jest aliasem dla właściwości Length obiektów array.For example, the Count alias property is an alias for the Length property of array objects.

<Type>
  <Name>System.Array</Name>
  <Members>
    <AliasProperty>
      <Name>Count</Name>
      <ReferencedMemberName>Length</ReferencedMemberName>
    </AliasProperty>
  </Members>
</Type>

<CodeMethod>: Odwołuje się do statycznej metody klasy .NET.<CodeMethod>: References a static method of a .NET class.

<CodeMethod>Tag musi mieć <Name> tag, który określa nazwę nowej metody i <GetCodeReference> tag, który określa kod, w którym metoda jest zdefiniowana.The <CodeMethod> tag must have a <Name> tag that specifies the name of the new method and a <GetCodeReference> tag that specifies the code in which the method is defined.

Na przykład właściwość mode System.IO.DirectoryInfo obiektów to właściwość code zdefiniowana w dostawcy systemu plików programu PowerShell.For example, the Mode property of System.IO.DirectoryInfo objects is a code property defined in the PowerShell FileSystem provider.

<Type>
  <Name>System.IO.DirectoryInfo</Name>
  <Members>
    <CodeProperty>
      <Name>Mode</Name>
      <GetCodeReference>
        <TypeName>
          Microsoft.PowerShell.Commands.FileSystemProvider
        </TypeName>
        <MethodName>Mode</MethodName>
      </GetCodeReference>
    </CodeProperty>
  </Members>
</Type>

<CodeProperty>: Odwołuje się do statycznej metody klasy .NET.<CodeProperty>: References a static method of a .NET class.

<CodeProperty>Tag musi mieć <Name> tag, który określa nazwę nowej właściwości i <GetCodeReference> tag, który określa kod, w którym właściwość jest zdefiniowana.The <CodeProperty> tag must have a <Name> tag that specifies the name of the new property and a <GetCodeReference> tag that specifies the code in which the property is defined.

Na przykład właściwość mode System.IO.DirectoryInfo obiektów to właściwość code zdefiniowana w dostawcy systemu plików programu PowerShell.For example, the Mode property of System.IO.DirectoryInfo objects is a code property defined in the PowerShell FileSystem provider.

<Type>
  <Name>System.IO.DirectoryInfo</Name>
  <Members>
    <CodeProperty>
      <Name>Mode</Name>
      <GetCodeReference>
        <TypeName>
          Microsoft.PowerShell.Commands.FileSystemProvider
        </TypeName>
        <MethodName>Mode</MethodName>
      </GetCodeReference>
    </CodeProperty>
  </Members>
</Type>

<MemberSet>: Definiuje kolekcję elementów członkowskich (właściwości i metody).<MemberSet>: Defines a collection of members (properties and methods).

<MemberSet>Tagi są wyświetlane w tagach głównych <Members> .The <MemberSet> tags appear within the primary <Members> tags. Tagi muszą zawierać <Name> tag otaczający nazwę zestawu elementów członkowskich oraz tag pomocniczy <Members> , który otacza elementy członkowskie (właściwości i metody) w zestawie.The tags must enclose a <Name> tag surrounding the name of the member set and a secondary <Members> tag that surround the members (properties and methods) in the set. Każdy ze znaczników, które tworzą Właściwość (taką jak <NoteProperty> lub <ScriptProperty> ) lub metodę (taką jak <Method> lub), <ScriptMethod> może być członkiem zestawu.Any of the tags that create a property (such as <NoteProperty> or <ScriptProperty>) or a method (such as <Method> or <ScriptMethod>) can be members of the set.

W obszarze Types.ps1xml pliki <MemberSet> tag służy do definiowania widoków domyślnych obiektów .NET w programie PowerShell.In Types.ps1xml files, the <MemberSet> tag is used to define the default views of the .NET objects in PowerShell. W takim przypadku nazwa zestawu elementów członkowskich (wartość w <Name> tagach) jest zawsze PsStandardMembers , a nazwy właściwości (wartość <Name> tagu) są jedną z następujących:In this case, the name of the member set (the value within the <Name> tags) is always PsStandardMembers , and the names of the properties (the value of the <Name> tag) are one of the following:

  • DefaultDisplayProperty: Pojedyncza właściwość obiektu.DefaultDisplayProperty: A single property of an object.

  • DefaultDisplayPropertySet: Co najmniej jedna właściwość obiektu.DefaultDisplayPropertySet: One or more properties of an object.

  • DefaultKeyPropertySet: Co najmniej jedna właściwość klucza obiektu.DefaultKeyPropertySet: One or more key properties of an object. Właściwość klucza identyfikuje wystąpienia wartości właściwości, takie jak identyfikator liczby elementów w historii sesji.A key property identifies instances of property values, such as the ID number of items in a session history.

Na przykład poniższy kod XML definiuje domyślny sposób wyświetlania usług ( System.ServiceProcess.ServiceController obiektów) zwracanych przez Get-Service polecenie cmdlet.For example, the following XML defines the default display of services (System.ServiceProcess.ServiceController objects) that are returned by the Get-Service cmdlet. Definiuje zestaw elementów członkowskich o nazwie PsStandardMembers , który składa się z właściwości domyślnej z właściwością stan , Nazwa i DisplayName .It defines a member set named PsStandardMembers that consists of a default property set with the Status , Name , and DisplayName properties.

<Type>
  <Name>System.ServiceProcess.ServiceController</Name>
  <Members>
    <MemberSet>
      <Name>PSStandardMembers</Name>
      <Members>
        <PropertySet>
          <Name>DefaultDisplayPropertySet</Name>
          <ReferencedProperties>
            <Name>Status</Name>
            <Name>Name</Name>
            <Name>DisplayName</Name>
          </ReferencedProperties>
        </PropertySet>
      </Members>
    </MemberSet>
  </Members>
</Type>

<Method>: Odwołuje się do natywnej metody obiektu źródłowego.<Method>: References a native method of the underlying object.

<Methods>: Kolekcja metod obiektu.<Methods>: A collection of the methods of the object.

<NoteProperty>: Definiuje właściwość z wartością statyczną.<NoteProperty>: Defines a property with a static value.

<NoteProperty>Tag musi mieć <Name> tag, który określa nazwę nowej właściwości i <Value> tag, który określa wartość właściwości.The <NoteProperty> tag must have a <Name> tag that specifies the name of the new property and a <Value> tag that specifies the value of the property.

Na przykład poniższy kod XML tworzy właściwość status dla obiektów System. IO. DirectoryInfo .For example, the following XML creates a Status property for System.IO.DirectoryInfo objects. Wartość właściwości status jest zawsze zakończona sukcesem.The value of the Status property is always Success.

<Type>
  <Name>System.IO.DirectoryInfo</Name>
  <Members>
    <NoteProperty>
      <Name>Status</Name>
      <Value>Success</Value>
    </NoteProperty>
  </Members>
</Type>

<ParameterizedProperty>: Właściwości, które przyjmują argumenty i zwracają wartość.<ParameterizedProperty>: Properties that take arguments and return a value.

<Properties>: Kolekcja właściwości obiektu.<Properties>: A collection of the properties of the object.

<Property>: Właściwość obiektu podstawowego.<Property>: A property of the base object.

<PropertySet>: Definiuje kolekcję właściwości obiektu.<PropertySet>: Defines a collection of properties of the object.

<PropertySet>Tag musi mieć <Name> tag, który określa nazwę zestawu właściwości i <ReferencedProperty> tag, który określa właściwości.The <PropertySet> tag must have a <Name> tag that specifies the name of the property set and a <ReferencedProperty> tag that specifies the properties. Nazwy właściwości są zawarte w <Name> znaczniku.The names of the properties are enclosed in <Name> tag.

W Types.ps1xml programie <PropertySet> znaczniki są używane do definiowania zestawów właściwości dla domyślnego wyświetlania obiektu.In Types.ps1xml, <PropertySet> tags are used to define sets of properties for the default display of an object. Można zidentyfikować domyślne wyświetlania według wartości PsStandardMembers w <Name> tagu <MemberSet> taga.You can identify the default displays by the value PsStandardMembers in the <Name> tag of a <MemberSet> tag.

Na przykład poniższy kod XML tworzy właściwość stanu dla System.IO.DirectoryInfo obiektu.For example, the following XML creates a Status property for the System.IO.DirectoryInfo object. Wartość właściwości status jest zawsze zakończona sukcesem.The value of the Status property is always Success.

<Type>
  <Name>System.ServiceProcess.ServiceController</Name>
  <Members>
    <MemberSet>
      <Name>PSStandardMembers</Name>
      <Members>
        <PropertySet>
          <Name>DefaultDisplayPropertySet</Name>
          <ReferencedProperties>
            <Name>Status</Name>
            <Name>Name</Name>
            <Name>DisplayName</Name>
          </ReferencedProperties>
        </PropertySet>
      </Members>
    </MemberSet>
  </Members>
</Type>

<ScriptMethod>: Definiuje metodę, której wartość jest wynikiem skryptu.<ScriptMethod>: Defines a method whose value is the output of a script.

<ScriptMethod>Tag musi mieć <Name> tag, który określa nazwę nowej metody i <Script> tag, który zawiera blok skryptu, który zwraca wynik metody.The <ScriptMethod> tag must have a <Name> tag that specifies the name of the new method and a <Script> tag that encloses the script block that returns the method result.

Na przykład metody ConvertToDateTime i ConvertFromDateTime obiekty zarządzania ( System.System.Management.ManagementObject ) są metodami skryptu, które korzystają z ToDateTime ToDmtfDateTime metod statycznych System.Management.ManagementDateTimeConverter klasy i.For example, the ConvertToDateTime and ConvertFromDateTime methods of management objects (System.System.Management.ManagementObject) are script methods that use the ToDateTime and ToDmtfDateTime static methods of the System.Management.ManagementDateTimeConverter class.

<Type>
 <Name>System.Management.ManagementObject</Name>
 <Members>
 <ScriptMethod>
   <Name>ConvertToDateTime</Name>
   <Script>
   [System.Management.ManagementDateTimeConverter]::ToDateTime($args[0])
   </Script>
 </ScriptMethod>
 <ScriptMethod>
   <Name>ConvertFromDateTime</Name>
   <Script>
   [System.Management.ManagementDateTimeConverter]::ToDmtfDateTime($args[0])
   </Script>
 </ScriptMethod>
 </Members>
</Type>

<ScriptProperty>: Definiuje właściwość, której wartość jest wynikiem skryptu.<ScriptProperty>: Defines a property whose value is the output of a script.

<ScriptProperty>Tag musi mieć <Name> tag, który określa nazwę nowej właściwości i <GetScriptBlock> tag, który zawiera blok skryptu, który zwraca wartość właściwości.The <ScriptProperty> tag must have a <Name> tag that specifies the name of the new property and a <GetScriptBlock> tag that encloses the script block that returns the property value.

Na przykład właściwość VERSIONINFO obiektu System. IO. FileInfo jest właściwością skryptu, która daje w wyniku użycie właściwości FullName metody statycznej GetVersionInfo obiektów System. Diagnostics. FileVersionInfo .For example, the VersionInfo property of the System.IO.FileInfo object is a script property that results from using the FullName property of the GetVersionInfo static method of System.Diagnostics.FileVersionInfo objects.

<Type>
  <Name>System.IO.FileInfo</Name>
  <Members>
    <ScriptProperty>
      <Name>VersionInfo</Name>
      <GetScriptBlock>
      [System.Diagnostics.FileVersionInfo]::GetVersionInfo($this.FullName)
      </GetScriptBlock>
    </ScriptProperty>
  </Members>
</Type>

Aby uzyskać więcej informacji, zobacz zestaw SDK programu Windows PowerShell.For more information, see the Windows PowerShell Software Development Kit (SDK).

Update-TypeDataUpdate-TypeData

Aby załadować Types.ps1xml pliki do sesji programu PowerShell, uruchom Update-TypeData polecenie cmdlet.To load your Types.ps1xml files into a PowerShell session, run the Update-TypeData cmdlet. Jeśli chcesz, aby typy w pliku miały pierwszeństwo przed typami w wbudowanym Types.ps1xml pliku, Dodaj parametr PrependData Update-TypeData .If you want the types in your file to take precedence over types in the built-in Types.ps1xml file, add the PrependData parameter of Update-TypeData. Update-TypeData ma wpływ tylko na bieżącą sesję.Update-TypeData affects only the current session. Aby wprowadzić zmiany we wszystkich przyszłych sesjach, wyeksportuj sesję lub Dodaj Update-TypeData polecenie do profilu programu PowerShell.To make the change to all future sessions, export the session, or add the Update-TypeData command to your PowerShell profile.

Wyjątki występujące we właściwościach lub z dodawania właściwości do Update-TypeData polecenia nie zgłaszaj błędów do StdErr .Exceptions that occur in properties, or from adding properties to an Update-TypeData command, do not report errors to StdErr. Jest to pomijanie wyjątków, które występują w wielu typowych typach podczas formatowania i wyprowadzania.This is to suppress exceptions that would occur in many common types during formatting and outputting. W przypadku uzyskiwania właściwości platformy .NET można obejść pomijanie wyjątków przy użyciu składni metody zamiast tego, jak pokazano w następującym przykładzie:If you are getting .NET properties, you can work around the suppression of exceptions by using method syntax instead, as shown in the following example:

"hello".get_Length()

Należy zauważyć, że składnia metody może być używana tylko z właściwościami platformy .NET.Note that method syntax can only be used with .NET properties. Właściwości dodawane przez uruchomienie Update-TypeData polecenia cmdlet nie mogą używać składni metody.Properties that are added by running the Update-TypeData cmdlet cannot use method syntax.

Podpisywanie Types.ps1pliku XMLSigning a Types.ps1xml file

Aby chronić użytkowników Types.ps1xml pliku, możesz podpisać go przy użyciu podpisu cyfrowego.To protect users of your Types.ps1xml file, you can sign the file using a digital signature. Aby uzyskać więcej informacji, zobacz about_Signing.For more information, see about_Signing.

Zobacz teżSee also

about_Signingabout_Signing

Kopiuj — elementCopy-Item

Copy-zmieniona właściwość elementuCopy-ItemProperty

Pobierz element członkowskiGet-Member

Get-TypeDataGet-TypeData

Remove-TypeDataRemove-TypeData

Update-TypeDataUpdate-TypeData