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 コマンドレットは、既存の Windows Management Instrumentation (WMI) クラスのインスタンスを削除します。

例 1: Win32 プロセスのすべてのインスタンスを閉じる

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

この例では、Notepad.exeのすべてのインスタンスを閉じます。

最初のコマンドは、メモ帳のインスタンスを起動します。

2 番目のコマンドでは、Get-WmiObject コマンドレットを使用して、Notepad.exeに対応するWin32_Processのインスタンスを取得し、 $np 変数に格納します。

3 番目のコマンドは、$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 変数に格納します。

2 番目のコマンドは、 $a 変数をパイプして Remove-WMIObjectし、フォルダーを削除します。

パラメーター

-AsJob

このコマンドレットがバックグラウンド ジョブとして実行されることを示します。 完了に時間のかかるコマンドを実行するには、このパラメーターを使用します。

Windows PowerShell 3.0 で導入された新しい CIM コマンドレットは、WMI コマンドレットと同じタスクを実行します。 CIM コマンドレットは WS-Management (WSMan) 標準と共通情報モデル (CIM) 標準に準拠しています。これにより、コマンドレットは同じ手法を使用して、Windows オペレーティング システムを実行するコンピューターとその他のオペレーティング システムを実行しているコンピューターを管理できます。 Remove-WmiObjectを使用する代わりに、Remove-CimInstance コマンドレットの使用を検討してください。

AsJob パラメーターを使用すると、バックグラウンド ジョブを表すオブジェクトが返され、コマンド プロンプトが表示されます。 ジョブが完了しても、引き続きセッションで作業できます。 Remove-WmiObjectリモート コンピューターに対して使用すると、ジョブがローカル コンピューターに作成され、リモート コンピューターからの結果がローカル コンピューターに自動的に返されます。 ジョブを管理するには、 Job 名詞 ( Job コマンドレット) を含むコマンドレットを使用します。 ジョブの結果を取得するには、 Receive-Job コマンドレットを使用します。

リモート コンピューターでこのパラメーターを使用するには、リモート処理用にローカル コンピューターとリモート コンピューターを構成する必要があります。 [管理者として実行] オプションを使用して Windows PowerShell を起動します。 詳細については、「about_Remote_Requirements」を参照してください。

Windows PowerShell バックグラウンド ジョブの詳細については、「 about_Jobs とabout_Remote_Jobs」を参照してください。

型:SwitchParameter
配置: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
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Authority

WMI 接続の認証に使用する機関を指定します。 標準の NTLM 認証または Kerberos 認証を指定できます。 NTLM を使用するには、機関設定を ntlmdomain:<DomainName> に設定します。ここで、 <DomainName> は有効な NTLM ドメイン名を識別します。 Kerberos を使用するには、kerberos:<DomainName>\<ServerName> を指定します。 ローカル コンピューターへの接続時に認証設定を指定することもできます。

型:String
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Class

このコマンドレットが削除する WMI クラスの名前を指定します。

型:String
配置:0
規定値:None
必須:True
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-ComputerName

このコマンドレットを実行するコンピューターの名前を指定します。 既定値はローカル コンピューターです。

1 台または複数のコンピューターの NetBIOS 名、IP アドレス、または完全修飾ドメイン名を入力します。 ローカル コンピューターを指定するには、コンピューター名、ドット (.)、または localhost を入力します。

このパラメーターは、Windows PowerShell リモート処理に依存しません。 コンピューターがリモート コマンドを実行するように構成されていない場合でも、 ComputerName パラメーターを使用できます。

型:String[]
Aliases:Cn
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Confirm

コマンドレットの実行前に確認を求めるメッセージが表示されます。

型:SwitchParameter
Aliases:cf
配置:Named
規定値:False
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Credential

この処理を実行するアクセス許可を持つユーザー アカウントを指定します。 既定値は現在のユーザーです。

User01 や Domain01\User01 などのユーザー名を入力するか、 PSCredential オブジェクト ( Get-Credential コマンドレットによって生成されたものなど) を入力します。 ユーザー名を入力すると、このコマンドレットによってパスワードの入力が求められます。

型:PSCredential
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-EnableAllPrivileges

このコマンドレットは、WMI 呼び出しを行うコマンドの前に、現在のユーザーのすべてのアクセス許可を有効にすることを示します。

型:SwitchParameter
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Impersonation

使用する偽装レベルを指定します。 このパラメーターの有効値は、次のとおりです。

  • 0: 既定値。 既定の偽装レベルのローカル レジストリを読み取ります。通常は 3: Impersonate に設定されます。
  • 1:アノニマス。 呼び出し元の資格情報は非表示になります。
  • 2:識別する。 オブジェクトによる呼び出し元の資格情報のクエリが許可されます。
  • 3:偽装。 オブジェクトによる呼び出し元の資格情報の使用が許可されます。
  • 4:代表。 オブジェクトが呼び出し元の資格情報の使用を他のオブジェクトに許可できるようにします。
型:ImpersonationLevel
指定可能な値:Default, Anonymous, Identify, Impersonate, Delegate
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-InputObject

入力として使用する ManagementObject オブジェクトを指定します。 このパラメーターを使用する場合、他のすべてのパラメーターが無視されます。

型:ManagementObject
配置:Named
規定値:None
必須:True
パイプライン入力を受け取る:True
ワイルドカード文字を受け取る:False

-Locale

WMI オブジェクトの優先ロケールを指定します。 Locale パラメーターは、MS_<LCID> 形式の配列として優先順序で指定されます。

型:String
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Namespace

Class パラメーターで使用するときに、参照先 WMI クラスが配置される WMI リポジトリ名前空間を指定します。

型:String
Aliases:NS
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Path

削除する WMI クラスの WMI オブジェクト パス、または WMI クラスのインスタンスの WMI オブジェクト パスを指定します。

型:String
配置:Named
規定値:None
必須:True
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-ThrottleLimit

このコマンドを実行するために確立できる最大コンカレント接続数を指定します。 このパラメーターは、 AsJob パラメーターと共に使用されます。 スロットル制限は現在のコマンドのみに適用され、セッションまたはコンピューターには適用されません。

型:Int32
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-WhatIf

コマンドレットの実行時に発生する内容を示します。 このコマンドレットは実行されません。

型:SwitchParameter
Aliases:wi
配置:Named
規定値:False
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

入力

ManagementObject

管理オブジェクトをこのコマンドレットにパイプできます。

出力

None, System.Management.Automation.RemotingJob

AsJob パラメーターを指定すると、このコマンドレットはジョブ オブジェクトを返します。 それ以外の場合、出力は生成されません。

メモ

Windows PowerShell には、 Remove-WmiObjectの次のエイリアスが含まれています。

  • rwmi