Remove-TypeData

从当前会话中删除扩展的类型。

语法

Remove-TypeData
      -TypeData <TypeData>
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Remove-TypeData
      [-TypeName] <String>
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Remove-TypeData
      -Path <String[]>
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]

说明

Remove-TypeData cmdlet 从当前会话中删除扩展类型数据。 此 cmdlet 只影响当前会话和当前会话中创建的会话。

在 PowerShell 中,可以通过在 Update-TypeData 命令和 Types.ps1xml 文件中定义属性和方法,将属性和方法添加到对象。 Remove-TypeData 从当前会话中删除扩展属性和方法。 Remove-TypeData 不会删除 Types.ps1xml 文件,也不会删除 Types.ps1xml 文件中的任何扩展类型定义。 有关 Types.ps1xml 文件的详细信息,请参阅 about_Types.ps1xml

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

示例

示例 1:删除指定类型的类型数据

此示例将从会话中删除所有 System.Array 类型的类型数据,包括通过 Types.ps1xml 文件添加的类型数据和通过使用 Update-TypeData cmdlet 添加到会话的动态类型数据。

Remove-TypeData -TypeName System.Array

示例 2:从会话中删除扩展数据类型

此示例展示了从会话中移除扩展类型数据的效果。 第一个 Get-TypeData 获取 System.DateTime 类型的扩展类型数据。 输出表明,一个 DateTime 属性已添加到 PowerShell 中的所有 System.DateTime 对象。 Get-Date cmdlet 返回 System.DateTime 对象。 该命令使用点表示法来获取 Get-Date 返回的 System.DateTime 对象的 DateTime 属性的值。

Get-TypeData System.DateTime
(Get-Date).DateTime
Get-TypeData System.DateTime | Remove-TypeData
(Get-Date).DateTime

TypeName        Members
--------        -------
System.DateTime {[DateTime, System.Management.Automation.Runspaces.ScriptPropertyData]}

Friday, January 20, 2012 9:01:00 PM

下一个 Get-TypeData cmdlet 可用于获取 System.DateTime 类型的所有扩展类型数据,并通过管道将该数据传递到 Remove-TypeData cmdlet 以删除扩展类型数据。 最后一个 Get-Date cmdlet 展示了删除 System.DateTime 类型的扩展类型数据的效果。 由于 System.DateTime 属性不再存在,因此用于获取其值的命令将不返回任何内容。

示例 3:删除模块的扩展类型

此示例移除模块对象的所有扩展类型数据。 当通过管道将对象传递给 Remove-TypeData 时,Remove-TypeData 将获取该对象类型的名称并移除该类型的所有对象的所有类型数据。

Get-Module | Remove-TypeData

示例 4:删除指定模块中的扩展类型

此示例使用 Remove-TypeData cmdlet 的 Path 参数来移除通过 PSScheduledJob 和 PSWorkflow 模块添加的 Types.ps1xml 文件中定义的扩展类型。 此命令不会影响使用 Update-TypeData cmdlet 添加的动态类型数据。 仅当已将模块导入当前会话时,此命令才能够成功执行。

Remove-TypeData -Path "$PSHOME\Modules\PSScheduledJob", "$PSHOME\Modules\PSWorkflow\PSWorkflow.types.ps1xml"

若要详细了解模块,请参阅 about_Modules

示例 5:从远程会话中删除扩展类型

此示例从远程会话中移除扩展类型。 此命令使用 Invoke-Command cmdlet 来移除 $S 变量中的会话中所有 CIM 类型的扩展类型数据。

Invoke-Command -Session $S {Get-TypeData -TypeName *CIM* | Remove-TypeData}

参数

-Confirm

提示你在运行 cmdlet 之前进行确认。

类型:SwitchParameter
别名:cf
Position:Named
默认值:False
必需:False
接受管道输入:False
接受通配符:False

-Path

指定此 cmdlet 将从会话扩展类型数据中删除的文件数组。 此参数是必需的。

请输入一个或多个 Types.ps1xml 文件的路径和文件名。 不支持通配符。 如果省略路径,则默认位置为当前目录。

类型:String[]
Position:Named
默认值:None
必需:True
接受管道输入:False
接受通配符:False

-TypeData

指定此 cmdlet 将从会话中删除的类型数据。 此参数是必需的。 请输入包含 TypeData 对象的变量 (System.Management.Automation.Runspaces.TypeData),或输入可获取 TypeData 对象的命令(例如 Get-TypeData 命令)。 还可以通过管道将 TypeData 对象传递给 Remove-TypeData

类型:TypeData
Position:Named
默认值:None
必需:True
接受管道输入:True
接受通配符:False

-TypeName

指定此 cmdlet 将删除其所有扩展类型数据的类型。 对于 System 命名空间中的类型,请输入其短名称。 否则,必须输入完整类型名称。 不支持通配符。

可以通过管道将类型名称传递给 Remove-TypeData。 当通过管道将对象传递给 Remove-TypeData 时,Remove-TypeData 将获取该对象的类型名称并删除该对象类型的所有类型数据。

类型:String
Position:0
默认值:None
必需:True
接受管道输入:True
接受通配符:False

-WhatIf

显示运行该 cmdlet 时会发生什么情况。 cmdlet 未运行。

类型:SwitchParameter
别名:wi
Position:Named
默认值:False
必需:False
接受管道输入:False
接受通配符:False

输入

TypeData

可以通过管道将 TypeData 对象(例如 Get-TypeData cmdlet 返回的对象)传递给此 cmdlet。

String

可以通过管道将包含类型名称的字符串传递给此 cmdlet。 当通过管道将对象传递给此 cmdlet 时,它将获取该对象的类型名称并移除该对象类型的所有类型数据。

输出

None

此 cmdlet 不返回任何输出。

备注

Remove-TypeData 只移除当前会话中的扩展类型数据。 它无法删除位于计算机上的但未添加到当前会话的扩展类型数据,例如模块中定义的但未导入到当前会话中的扩展类型数据。