Remove-WmiObject

删除现有 Windows Management Instrumentation (WMI) 类的实例。

语法

Remove-WmiObject
      [-Class] <String>
      [-AsJob]
      [-Impersonation <ImpersonationLevel>]
      [-Authentication <AuthenticationLevel>]
      [-Locale <String>]
      [-EnableAllPrivileges]
      [-Authority <String>]
      [-Credential <PSCredential>]
      [-ThrottleLimit <Int32>]
      [-ComputerName <String[]>]
      [-Namespace <String>]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Remove-WmiObject
      -InputObject <ManagementObject>
      [-AsJob]
      [-ThrottleLimit <Int32>]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Remove-WmiObject
      -Path <String>
      [-AsJob]
      [-Impersonation <ImpersonationLevel>]
      [-Authentication <AuthenticationLevel>]
      [-Locale <String>]
      [-EnableAllPrivileges]
      [-Authority <String>]
      [-Credential <PSCredential>]
      [-ThrottleLimit <Int32>]
      [-ComputerName <String[]>]
      [-Namespace <String>]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Remove-WmiObject
      [-AsJob]
      [-Impersonation <ImpersonationLevel>]
      [-Authentication <AuthenticationLevel>]
      [-Locale <String>]
      [-EnableAllPrivileges]
      [-Authority <String>]
      [-Credential <PSCredential>]
      [-ThrottleLimit <Int32>]
      [-ComputerName <String[]>]
      [-Namespace <String>]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Remove-WmiObject
      [-AsJob]
      [-Impersonation <ImpersonationLevel>]
      [-Authentication <AuthenticationLevel>]
      [-Locale <String>]
      [-EnableAllPrivileges]
      [-Authority <String>]
      [-Credential <PSCredential>]
      [-ThrottleLimit <Int32>]
      [-ComputerName <String[]>]
      [-Namespace <String>]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Remove-WmiObject
      [-AsJob]
      [-Impersonation <ImpersonationLevel>]
      [-Authentication <AuthenticationLevel>]
      [-Locale <String>]
      [-EnableAllPrivileges]
      [-Authority <String>]
      [-Credential <PSCredential>]
      [-ThrottleLimit <Int32>]
      [-ComputerName <String[]>]
      [-Namespace <String>]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]

说明

Remove-WmiObject cmdlet 删除现有 Windows Management Instrumentation(WMI)类的实例。

示例

示例 1:关闭 Win32 进程的所有实例

notepad
$np = Get-WmiObject -Query "select * from win32_process where name='notepad.exe'"
$np | Remove-WmiObject

此示例关闭 Notepad.exe的所有实例。

第一个命令启动记事本实例。

第二个命令使用 Get-WmiObject cmdlet 检索对应于 Notepad.exe的Win32_Process实例,然后将其存储在 $np 变量中。

第三个命令将$np变量中的对象传递给 Remove-WmiObject,这会删除 Notepad.exe的所有实例。

示例 2:删除文件夹

此命令删除 C:\Test 文件夹。

$a = Get-WMIObject -Query "Select * From Win32_Directory Where Name ='C:\\Test'"
$a | Remove-WMIObject

第一个命令使用 Get-WMIObject 来查询 C:\Test 文件夹,然后将对象存储在 $a 变量中。

第二个命令通过管道将 $a 变量传递给 Remove-WMIObject,这会删除文件夹。

参数

-AsJob

指示此 cmdlet 作为后台作业运行。 使用此参数可以运行需要很长时间才能完成的命令。

引入了 Windows PowerShell 3.0 的新 CIM cmdlet 执行与 WMI cmdlet 相同的任务。 CIM cmdlet 符合 WS-Management (WSMan) 标准和通用信息模型 (CIM) 标准,该标准使 cmdlet 能够使用相同的技术来管理运行 Windows作系统的计算机和运行其他作系统的计算机。 请考虑使用 Remove-CimInstance cmdlet,而不是使用 Remove-WmiObject

使用 AsJob 参数时,该命令返回表示后台作业的对象,然后显示命令提示符。 作业完成后,可以继续在会话中工作。 如果对远程计算机使用 Remove-WmiObject,则会在本地计算机上创建作业,并且远程计算机的结果会自动返回到本地计算机。 若要管理作业,请使用包含 作业 名词的 cmdlet(Job cmdlet)。 若要获取作业结果,请使用 Receive-Job cmdlet。

若要对远程计算机使用此参数,必须配置本地计算机和远程计算机进行远程处理。 使用“以管理员身份运行”选项启动 Windows PowerShell。 有关详细信息,请参阅 about_Remote_Requirements

有关 Windows PowerShell 后台作业的详细信息,请参阅 about_Jobs 和about_Remote_Jobs。

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

-Authentication

指定要用于 WMI 连接的身份验证级别。 此参数的可接受值为:

  • -1:未更改。
  • 0:默认值。
  • 1:无。 未执行身份验证。
  • 2:连接。 仅当客户端与应用程序建立关系时,才会执行身份验证。
  • 3:呼叫。 仅当应用程序收到请求时,才会在每个调用开始时执行身份验证。
  • 4:数据包。 对从客户端接收的所有数据执行身份验证。
  • 5:PacketIntegrity。 对客户端和应用程序之间传输的所有数据进行身份验证和验证。
  • 6:PacketPrivacy。 使用其他身份验证级别的属性,并且所有数据都已加密。
类型:AuthenticationLevel
接受的值:Default, None, Connect, Call, Packet, PacketIntegrity, PacketPrivacy, Unchanged
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-Authority

指定用于对 WMI 连接进行身份验证的颁发机构。 可以指定标准 NTLM 或 Kerberos 身份验证。 若要使用 NTLM,请将颁发机构设置设置为 ntlmdomain:<DomainName>,其中 <DomainName> 标识有效的 NTLM 域名。 若要使用 Kerberos,请指定 kerberos:<DomainName>\<ServerName>。 连接到本地计算机时,不能包含颁发机构设置。

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

-Class

指定此 cmdlet 删除的 WMI 类的名称。

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

-ComputerName

指定运行此 cmdlet 的计算机的名称。 默认值为本地计算机。

键入 NetBIOS 名称、IP 地址或一个或多个计算机的完全限定域名。 若要指定本地计算机,请键入计算机名称、点(.)或 localhost。

此参数不依赖于 Windows PowerShell 远程处理。 即使计算机未配置为运行远程命令,也可以使用 ComputerName 参数。

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

-Confirm

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

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

-Credential

指定有权执行此作的用户帐户。 默认值为当前用户。

键入用户名(如 User01 或 Domain01\User01),或输入 PSCredential 对象,例如由 Get-Credential cmdlet 生成的用户名。 如果键入用户名,此 cmdlet 会提示输入密码。

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

-EnableAllPrivileges

指示此 cmdlet 在发出 WMI 调用的命令之前启用当前用户的所有权限。

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

-Impersonation

指定要使用的模拟级别。 此参数的可接受值为:

  • 0:默认值。 读取默认模拟级别的本地注册表,该级别通常设置为 3:模拟。
  • 1:匿名。 隐藏调用方凭据。
  • 2:标识。 允许对象查询调用方凭据。
  • 3:模拟。 允许对象使用调用方凭据。
  • 4:委托。 允许对象允许其他对象使用调用方凭据。
类型:ImpersonationLevel
接受的值:Default, Anonymous, Identify, Impersonate, Delegate
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-InputObject

指定要用作输入的 ManagementObject 对象。 使用此参数时,将忽略所有其他参数。

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

-Locale

指定 WMI 对象的首选区域设置。 区域设置 参数按首选顺序指定为MS_<LCID> 格式的数组。

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

-Namespace

指定引用的 WMI 类与 参数一起使用时所引用的 WMI 存储库命名空间。

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

-Path

指定 WMI 类的 WMI 对象路径,或指定要删除的 WMI 类实例的 WMI 对象路径。

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

-ThrottleLimit

指定可建立以运行此命令的最大并发连接数。 此参数与 AsJob 参数一起使用。 限制限制仅适用于当前命令,不适用于会话或计算机。

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

-WhatIf

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

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

输入

ManagementObject

可以通过管道将管理对象传递给此 cmdlet。

输出

None, System.Management.Automation.RemotingJob

如果指定 AsJob 参数,则此 cmdlet 将返回作业对象。 否则,它不会生成任何输出。

备注

Windows PowerShell 包含以下 Remove-WmiObject别名:

  • rwmi