Win32_Service クラスの ResumeService メソッド (CIMWin32 WMI プロバイダー)
ResumeServiceWMI クラス メソッドは、参照されるサービスを再開された状態にしようとします。
このトピックでは、マネージド オブジェクト形式 (MOF) 構文を使用します。 このメソッドの使用方法の詳細については、「メソッドの 呼び出し」を参照してください。
構文
uint32 ResumeService();
パラメーター
このメソッドにはパラメーターはありません。
戻り値
次の一覧に記載されている値の 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
-
サービスは現在システムで一時停止されています。
注釈
停止しているサービスと一時停止されているサービスの間に実際的な違いはないようですが、2 つの状態は SCM とは異なって表示されます。 停止したサービスは、実行されていないサービスであり、サービス開始手順全体を実行する必要があります。 ただし、一時停止中のサービスはまだ実行中ですが、機能が中断されています。 このため、一時停止したサービスはサービス開始手順全体を実行する必要はありませんが、機能を再開するには別の手順が必要です。
停止されたサービスを開始したり、一時停止されたサービスを再開したりするには、適切な方法を使用する必要があります。 Win32_Serviceメソッド StartService と ResumeService は、次の状況で使用する必要があります。
- サービスが現在停止している場合は、 StartService メソッドを使用してサービスを再起動する必要があります。 ResumeService は、現在停止しているサービスを開始できません。
- サービスが一時停止されている場合は、 ResumeService を使用する必要があります。 一時停止中のサービスで StartService メソッドを使用すると、"サービスは既に実行されています" というメッセージが表示されます。ただし、再開サービス制御コードが送信されるまで、サービスは一時停止されたままになります。
例
一時停止中の自動開始サービスの再開サンプルでは、一時停止されている自動開始サービスが再起動されます。
次の VBScript コード サンプルでは、 Win32_Serviceのインスタンスから一時停止されたサービスを再開する方法について説明します。
注意
サービスは一時停止をサポートし、既に実行されている必要があります。
Set ServiceSet = GetObject("winmgmts:").ExecQuery("select * from Win32_Service where Name='Schedule'")
for each Service in ServiceSet
SupportsPause = Service.AcceptPause
if SupportsPause = true then
RetVal = Service.ResumeService()
if RetVal = 0 then
WScript.Echo "Service resumed"
else
if RetVal = 1 then
WScript.Echo "Pause not supported"
else WScript.Echo "An error occurred:" & RetVal
End If
End If
else
WScript.Echo "Service does not support pause"
end if
next
次の Perl コード サンプルでは、 Win32_Serviceのインスタンスから一時停止されたサービスを再開する方法について説明します。
注意
サービスは一時停止をサポートし、既に実行されている必要があります。
use strict;
use Win32::OLE;
my $ServiceSet;
eval { $ServiceSet = Win32::OLE->GetObject("winmgmts:{impersonationLevel=impersonate}!\\\\.\\Root\\CIMv2")->
ExecQuery("SELECT * FROM Win32_Service WHERE Name='Schedule'"); };
if (!$@ && defined $ServiceSet)
{
foreach my $Service (in $ServiceSet)
{
my $SupportsPause = $Service->{AcceptPause};
if ($SupportsPause)
{
my $RetVal = $Service->ResumeService();
if ($RetVal == 0)
{
print "\nService resumed\n";
}
else
{
if ($RetVal == 1)
{
print STDERR "\nPause not supported\n";
}
else
{
print STDERR "\nAn error occurred: ", $RetVal, "\n";
}
}
}
else
{
print "\nService does not support pause\n";
}
}
}
else
{
print STDERR Win32::OLE->LastError, "\n";
}
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント |
Windows Vista |
サポートされている最小のサーバー |
Windows Server 2008 |
名前空間 |
Root\CIMv2 |
MOF |
|
[DLL] |
|