Win32_Service クラスの Create メソッド (CIMWin32 WMI プロバイダー)
CreateWMI クラス メソッドは、新しいシステム サービスを作成します。
このトピックでは、マネージド オブジェクト形式 (MOF) 構文を使用します。 このメソッドの使用方法の詳細については、「メソッドの 呼び出し」を参照してください。
構文
uint32 Create(
[in] string Name,
[in] string DisplayName,
[in] string PathName,
[in] uint8 ServiceType,
[in] uint8 ErrorControl,
[in] string StartMode,
[in] boolean DesktopInteract,
[in] string StartName,
[in] string StartPassword,
[in] string LoadOrderGroup,
[in] string LoadOrderGroupDependencies[],
[in] string ServiceDependencies[]
);
パラメーター
-
Name [in]
-
Create メソッドにインストールするサービスの名前。 文字列の最大長は 256 文字です。 Service Control Manager データベースでは文字の大文字と小文字が保持されますが、サービス名の比較では常に大文字と小文字が区別されません。 スラッシュ (/) と 2 つのバックスラッシュ (\) は無効なサービス名文字です。
-
DisplayName [in]
-
サービスの表示名。 この文字列の長さは最大 256 文字です。 名前は、Service Control Manager で大文字と小文字が保持されます。 DisplayName の比較では、常に大文字と小文字が区別されません。
制約: Name パラメーターと同じ値を受け入れます。
例: "Atdisk"
-
PathName [in]
-
サービスを実装する実行可能ファイルへの完全修飾パス。
例: "\SystemRoot\System32\drivers\afd.sys"
-
ServiceType [in]
-
それらを呼び出すプロセスに提供されるサービスの種類。
-
1 (0x1)
-
カーネル ドライバー
-
2 (0x2)
-
ファイル システム ドライバー
-
4 (0x4)
-
アダプター
-
8 (0x8)
-
Recognizer ドライバー
-
16 (0x10)
-
独自のプロセス
-
32 (0x20)
-
共有プロセス
-
256 (0x100)
-
対話型プロセス
ErrorControl [in]
Create メソッドの起動に失敗した場合のエラーの重大度。 値は、エラーが発生した場合にスタートアップ プログラムによって実行されるアクションを示します。 すべてのエラーはシステムによってログに記録されます。
0
ユーザーへの通知が行われません。
1
ユーザーへの通知が行われます。
2
システムは最後の正しい構成で再起動されます。
3
システムは、適切な構成から開始しようとします。
StartMode [in]
Windows 基本サービスの開始モード。
ブート
オペレーティング システム ローダーによって起動されたデバイス ドライバー。 この値は、ドライバー サービスに対してのみ指定できます。
システム
オペレーティング システムの初期化プロセスによって開始されたデバイス ドライバー。 この値は、ドライバー サービスに対してのみ指定できます。
自動
システムの起動時に Service Control Manager によって自動的に開始されるサービス。
手動
プロセスが StartService メソッドを呼び出したときに、サービス コントロール マネージャーによって開始されるサービス。
無効
開始できなくなったサービス。
DesktopInteract [in]
true の場合、サービスはデスクトップ上のウィンドウを作成または通信できます。
StartName [in]
サービスを実行するアカウント名。 サービスの種類によっては、アカウント名が DomainName\Username またはユーザー プリンシパル名 (UPN) 形式 (Username@DomainName) の形式である場合があります。 サービス プロセスは、実行時にこれら 2 つの形式のいずれかを使用してログに記録されます。 アカウントが組み込みドメインに属している場合は、.\Username を指定できます。 NULL を指定した場合、サービスは LocalSystem アカウントとしてログオンします。 カーネルまたはシステム レベルのドライバーの場合、 StartName には、入力および出力 (I/O) システムがデバイス ドライバーの読み込みに使用するドライバー オブジェクト名 (つまり、\FileSystem\Rdr または \Driver\Xns) が含まれます。 NULL を指定した場合、ドライバーは、サービス名に基づいて I/O システムによって作成された既定のオブジェクト名で実行されます。 例: DWDOM\管理。
StartPassword [in]
StartName パラメーターで指定されたアカウント名のパスワード。 パスワードを変更しない場合は 、NULL を 指定します。 サービスがパスワードを持っていない場合は、空の文字列を指定します。
LoadOrderGroup [in]
新しいサービスに関連付けられているグループ名。 読み込み順序グループはレジストリに含まれており、サービスがオペレーティング システムに読み込まれる順序を決定します。 ポインターが NULL の場合、または空の文字列を指している場合、サービスはグループに属していません。 グループ間の依存関係は 、LoadOrderGroupDependencies パラメーターに一覧表示する必要があります。 読み込み順序付けグループ リスト内のサービスが最初に開始され、次に、読み込み順序グループの一覧にないグループ内のサービスが続き、その後にグループに属していないサービスが続きます。 レジストリには、次の場所にある読み込み順序付けグループの一覧があります。
Hkey_local_machine\システム\CurrentControlSet\コントロール\ServiceGroupOrder
LoadOrderGroupDependencies [in]
このサービスの前に開始する必要がある読み込み順序付けグループの配列。 配列内の各項目は NULL で区切られ、リストは 2 つの NULL 値で終了します。 Visual Basic またはスクリプトでは、vbArray を渡すことができます。 ポインターが NULL の場合、または空の文字列を指している場合、サービスには依存関係がありません。 サービスとサービス グループは同じ名前空間を共有するため、サービス名と区別するには、グループ名の前に SC_GROUP_IDENTIFIER (Winsvc.h ファイルで定義) 文字を付ける必要があります。 グループへの依存関係は、グループのすべてのメンバーを開始しようとした後に、グループの少なくとも 1 つのメンバーが実行されている場合に、このサービスを実行できることを意味します。
ServiceDependencies [in]
このサービスを開始する前に開始する必要があるサービスの名前を含む 配列。 配列内の各項目は NULL で区切られ、リストは 2 つの NULL 値で終了します。 Visual Basic またはスクリプトでは、vbArray を渡すことができます。 ポインターが NULL の場合、または空の文字列を指している場合、サービスには依存関係はありません。 サービスへの依存関係は、依存するサービスが実行されている場合にのみ、このサービスを実行できることを意味します。
戻り値
次の一覧に記載されている値の 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 つの方法のいずれかでインストールされます。 ただし、一部のサービス (特に社内で作成されたもの) にはインストール プログラムがない場合があります。 これらのインスタンスでは、 Create メソッドを使用してプログラムでサービスをインストールできます。
名前にもかかわらず、Create メソッドは実際にはサービスを作成しません。既存のサービスをインストールするだけです。 このコマンドを使用するには、サービス実行可能ファイルをコンピューターにコピーし、 Create を使用してサービスをインストールする必要があります。
Create メソッドは Change メソッドに似ています。 どちらの場合も、サービスのプロパティは パラメーターとして メソッドに渡されます。 Change メソッドで使用されるパラメーターと同様に、これらのパラメーターが渡される順序は非常に重要です。
LoadOrderGroup パラメーターは、実行依存関係を定義するシステム サービスのグループを表します。 サービスは相互に依存するため、ロード注文グループで指定された順序でサービスを開始する必要があります。 これらの依存サービスが正しく機能するには、継続元サービスが存在する必要があります。
例
次の VBScript では、DbService という名前のサービスがインストールされます
Const OWN_PROCESS = 16
Const NOT_INTERACTIVE = True
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set objService = objWMIService.Get("Win32_BaseService")
errReturn = objService.Create ("DbService", "Personnel Database", _
"c:\windows\system32\db.exe", OWN_PROCESS ,2 ,"Automatic" , _
NOT_INTERACTIVE ,".\LocalSystem" ,"")
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント |
Windows Vista |
サポートされている最小のサーバー |
Windows Server 2008 |
名前空間 |
Root\CIMV2 |
MOF |
|
[DLL] |
|