Get-TypeData

获取当前会话中的扩展类型数据。

语法

Get-TypeData
   [[-TypeName] <String[]>]
   [<CommonParameters>]

说明

cmdlet Get-TypeData 获取当前会话中的扩展类型数据。 这包括按 Types.ps1xml 文件添加到会话的类型数据和通过使用 cmdlet 的 参数添加的 Update-TypeData 动态类型数据。

可以使用返回的扩展类型数据 Get-TypeData 来检查会话中的类型数据,并将其发送到 Update-TypeDataRemove-TypeData cmdlet。

扩展类型数据将属性和方法添加到 PowerShell 中的 对象。 可采用与使用对象类型中所定义的属性和方法相同的方式来使用已添加的属性和方法。 但是,在编写脚本时,请注意,添加的属性和方法可能不会出现在每个 PowerShell 会话中。

有关文件的详细信息 Types.ps1xml ,请参阅 about_Types.ps1xml。 有关 cmdlet 添加的 Update-TypeData 动态类型数据的详细信息,请参阅 Update-TypeData

此 cmdlet 是在 Windows PowerShell 3.0 中引入的。

示例

示例 1:获取所有扩展类型数据

此示例获取当前会话中的所有扩展类型数据。

Get-TypeData

示例 2:按名称获取类型

此示例获取当前会话中名称包含 Eventing 的所有类型。

"*Eventing*" | Get-TypeData

TypeName                                                  Members
--------                                                  -------
System.Diagnostics.Eventing.Reader.EventLogConfiguration  {}System.Diagnostics.Eventing.Reader.EventLogRecord
                                                          {}System.Diagnostics.Eventing.Reader.ProviderMetadata
                                                          {[ProviderName, System.Management.Automation.Runspaces.AliasProper...

示例 3:获取创建属性值的脚本块

此示例获取创建 EventLogEntry 对象的 EventID 属性值的脚本块。

(Get-TypeData *EventLogEntry*).Members.EventID

GetScriptBlock                     SetScriptBlock     IsHidden Name
--------------                     --------------     -------- ----
$this.get_EventID() -band 0xFFFF                         False EventID

示例 4:获取为指定对象定义属性的脚本块

此示例获取在 PowerShell 中定义 System.DateTime 对象的 DateTime 属性的脚本块。

(Get-TypeData -TypeName System.DateTime).Members["DateTime"].GetScriptBlock
if ((& { Set-StrictMode -Version 1; $this.DisplayHint }) -ieq  "Date") {
    "{0}" -f $this.ToLongDateString()
}
elseif ((& { Set-StrictMode -Version 1; $this.DisplayHint }) -ieq "Time") {
    "{0}" -f  $this.ToLongTimeString()
}
else {
    "{0} {1}" -f $this.ToLongDateString(), $this.ToLongTimeString()
}

命令使用 Get-TypeData cmdlet 获取 System.DataTime 类型的扩展类型数据。 该命令将获取 TypeData 对象的 Members 属性。

Members 属性包含由扩展类型数据定义的属性和方法的哈希表。 Members 哈希表中的每个键均为某个属性或方法名称,每个值均为该属性或方法值的定义。

命令获取 Members 中的 DateTime 密钥及其 GetScriptBlock 属性值。

输出显示脚本块,该脚本块创建 PowerShell 中每个 System.DateTime 对象的 DateTime 属性的值。

参数

-TypeName

仅将类型数据指定为具有指定名称的类型的数组。 默认情况下, Get-TypeData 获取会话中的所有类型。

输入类型名称或名称模式。 即使对于 System 命名空间中的类型,也需要全名或带通配符的名称模式。 支持通配符,参数名称 TypeName 是可选的。 还可以通过管道将类型名称传递给 Get-TypeData

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

输入

String

可以通过管道将类型名称传递给 Get-TypeData

输出

TypeData

备注

Get-TypeData 仅获取当前会话中的扩展类型数据。 它不获取位于计算机上但未添加到当前会话中的扩展类型数据,例如在模块中定义但未导入到当前会话中的扩展类型。