Win32_Service クラスの PauseService メソッド (CIMWin32 WMI プロバイダー)
PauseServiceWMI クラス メソッドは、サービスを一時停止状態にしようとします。
このトピックでは、マネージド オブジェクト形式 (MOF) 構文を使用します。 このメソッドの使用方法の詳細については、「メソッドの 呼び出し」を参照してください。
構文
uint32 PauseService();
パラメーター
このメソッドにはパラメーターはありません。
戻り値
次の一覧に記載されている値の 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
-
サービスは現在システムで一時停止されています。
注釈
停止または一時停止できるサービスを決定したら、 StopService メソッドと PauseService メソッドを使用してサービスを停止および一時停止できます。 サービスを一時停止するのではなく停止するか、またはその逆を行うかは、次のようないくつかの要因によって決まります。
- サービスを一時停止できますか? そうでない場合、唯一のオプションはサービスを停止することです。
- サービスに既に接続されているユーザーのクライアント要求を引き続き処理する必要がありますか? その場合、通常、サービスを一時停止すると、新しいクライアントへのアクセスを拒否しながら、既存のクライアントを処理できます。 これに対し、サービスを停止すると、すべてのクライアントが直ちに切断されます。
- サービスを再構成し、変更をすぐに有効にする必要がありますか? サービスの一時停止中にサービスのプロパティを変更することはできますが、サービスが実際に停止して再起動されるまで、ほとんどのプロパティは有効になりません。
サービスを停止するために必要なスクリプト コードは、サービスを一時停止するために必要なコードとほぼ同じです。
例
特定のアカウントで実行されているサービスの一時停止 VBScript サンプルでは、架空のサービス アカウント "Netsvc" で実行されているすべてのサービスを一時停止します。
次の 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.PauseService()
if RetVal = 0 then
WScript.Echo "Service paused"
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, $SupportsPause, $RetVal);
eval {$ServiceSet = Win32::OLE->GetObject("winmgmts:{impersonationLevel=impersonate}!\\\\.\\Root\\CIMv2")->
ExecQuery("SELECT * FROM Win32_Service WHERE Name='Schedule'"); };
unless($@)
{
foreach my $ServiceInst (in $ServiceSet)
{
if ($ServiceInst->{AcceptPause})
{
$RetVal = $ServiceInst->PauseService();
if ($RetVal == 0)
{
print "\nService paused\n";
}
else
{
if ($RetVal == 1)
{
print "\nPause not supported\n" ;
}
else
{
print "\nAn error occurred:", $RetVal, "\n";
}
}
}
else
{
print "\nService does not support pause\n";
}
}
}
else
{
print STDERR "\n", Win32::OLE->LastError, "\n";
}
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント |
Windows Vista |
サポートされている最小のサーバー |
Windows Server 2008 |
名前空間 |
Root\CIMv2 |
MOF |
|
[DLL] |
|