次の方法で共有


Win32_Service クラスの Delete メソッド (CIMWin32 WMI プロバイダー)

DELETEWMI クラス メソッドは、既存のサービスを削除します。

このトピックでは、マネージド オブジェクト形式 (MOF) 構文を使用します。 このメソッドの使用方法の詳細については、「メソッドの 呼び出し」を参照してください。

構文

uint32 Delete();

パラメーター

このメソッドにはパラメーターはありません。

戻り値

次の一覧に記載されている値の 1 つ、またはエラーを示すその他の値を返します。 その他のエラー コードについては、「 WMI エラー定数 」または 「WbemErrorEnum」を参照してください。 一般的な HRESULT 値については、「 システム エラー コード」を参照してください。

0

要求が受け入れられました。

1

要求はサポートされていません。

2

ユーザーは必要なアクセス権を持っていませんでした。

3

そのサービスは、実行中の他のサービスが依存しているので停止できません。

4

要求された制御コードは有効でないか、またはサービスを受け入れ可能ではありません。

5

サービスの状態 (Win32_BaseServiceのため、要求された制御コードをサービスに送信できません。State プロパティ) は、0、1、または 2 と等しくなります。

6

サービスは開始されていません。

7

サービスは適切な時間内に開始要求に応答しませんでした。

8

サービスの開始時に不明なエラーが発生しました。

9

サービス実行可能ファイルへのディレクトリ パスが見つかりませんでした。

"10"

サービスは既に実行されています。

11

新しいサービスを追加するデータベースはロックされています。

12

このサービスが依存する依存関係がシステムから削除されました。

13

サービスは依存関係のあるサービスから必要なサービスを見つけられませんでした。

14

サービスはシステムから無効になっています。

15

サービスにはシステムで実行するための正しい認証がありません。

16

このサービスはシステムから削除されています。

17

サービスに実行スレッドがありません。

18

サービスは起動時に循環依存関係を持ちます。

19

サービスは同じ名前で実行されています。

20

サービス名に無効な文字が含まれています。

21

無効なパラメーターがサービスに渡されました。

22

このサービスを実行するアカウントが無効であるか、サービスを実行するためのアクセス許可がありません。

23

サービスは、システムから利用できるサービスのデータベースにあります。

24

サービスは現在システムで一時停止されています。

注釈

organizationが変わると、特定のコンピューターから特定のサービスを削除する場合があります。 社内およびサードパーティのサービスは WMI を使用して削除できますが、オペレーティング システム サービスは Sysocmgr.exe を使用して削除できます。

サービスを削除する準備をするときは、次の情報に注意してください。

  • サービスを削除する前に、サービスを停止する必要があります。 delete コマンドを発行するときにサービスが実行されている場合、サービスは削除対象としてマークされますが、停止して開いているすべてのハンドルが閉じられるまで、サービスは引き続き実行されます。

    サービスが停止しない場合、そのサービスは削除されません。

  • サービスを削除しても、サービスの実行可能ファイルは削除されません。

    WMI を使用してサービスを削除すると、HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Servicesに関連するレジストリ エントリが削除されます。 その結果、サービスはインストールされなくなり、サービス スナップインから使用できなくなります。 ただし、WMI は実行可能ファイルを削除しないため、サービスを簡単に再インストールできます。 実行可能ファイルを削除するには、パス名を取得してからファイルを削除する必要があります。

  • WMI を使用して基本 Windows 2000 サービス (DHCP など) を削除すると、そのサービスのレジストリ エントリが削除されますが、[管理ツール] メニューからショートカットが削除されたり、Windows コンポーネント ウィザードからサービスが削除されたりすることはありません。 これにより、コンピューターの構成方法を判断しようとしているすべてのユーザーが混乱する可能性があります。

    たとえば、WMI スクリプトを使用して DHCP サービスを削除すると、DHCP サービスはサービス スナップインに表示されなくなります。 ただし、DHCP コンソールへの機能しないショートカットは [管理ツール] メニューに残り、Windows コンポーネント ウィザードを起動すると、DHCP サービスがインストールされていることを示します。

    このため、Sysocmgr.exeを使用して Windows 2000 サービスをプログラムで削除する必要があります。

次の VBScript コード サンプルでは、サービスを削除する方法について説明します。

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
 & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colListOfServices = objWMIService.ExecQuery _
 ("SELECT * FROM Win32_Service WHERE Name = 'DbService'")
For Each objService in colListOfServices
 objService.StopService()
 objService.Delete()
Next

次の Perl コード サンプルでは、サービスを削除する方法について説明します。

use strict;
use Win32::OLE;

my ($Service, $ServiceSet) ;
eval {$ServiceSet = Win32::OLE->GetObject("winmgmts:{impersonationLevel=impersonate}")->
 ExecQuery("SELECT * FROM Win32_Service WHERE Name='MyService'");};
unless($@)
{
 foreach $Service (in $ServiceSet)
 {
  my $RetVal = $Service->Delete();
  if ($RetVal == 0)  
  {
   print "Service deleted \n"; 
  }
  else  
  {
   print "Delete failed: %d", $RetVal;
  }
 }
}
else
{
 print STDERR Win32::OLE->LastError, "\n";
}

要件

要件
サポートされている最小のクライアント
Windows Vista
サポートされている最小のサーバー
Windows Server 2008
名前空間
Root\CIMV2
MOF
CIMWin32.mof
[DLL]
CIMWin32.dll

こちらもご覧ください

オペレーティング システム クラス

Win32_Service

WMI タスク: サービス