Win32_BaseService 類別的 Create 方法
CreateWMI 類別方法會建立新的服務。 LoadOrderGroup參數代表定義執行相依性的系統服務群組。 服務必須依照「載入順序群組」所指定的順序起始,因為服務彼此相依。 這些相依服務需要有前項服務才能正常運作。
本主題使用 Managed 物件格式 (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[]
);
參數
-
名稱 [in]
-
要安裝至 Create 方法的服務名稱。 字串長度上限為 256 個字元。 服務控制管理員資料庫會保留字元的大小寫,但服務名稱比較一律不區分大小寫。 正斜線 (/) 和雙斜線 (\) 是不正確服務名稱字元。
-
DisplayName [in]
-
服務的顯示名稱。 這個字串的最大長度為 256 個字元。 名稱會在服務控制管理員中保留大小寫。 DisplayName 比較一律不區分大小寫。
條件約束:接受與 Name 參數相同的值。
範例:「Atdisk」。
-
PathName [in]
-
實作服務之可執行檔的完整路徑。
範例:「\SystemRoot\System32\drivers\afd.sys」。
-
ServiceType [in]
-
提供給呼叫這些服務之進程的服務類型。 值為點陣圖。
-
核心驅動程式 (1)
-
檔案系統驅動程式 (2)
-
配接 器 (4)
-
辨識器驅動程式 (8)
-
自有進程 (16)
-
共用進程 (32)
-
256
-
互動式程式
ErrorControl [in]
如果 Create 方法無法啟動,則錯誤嚴重性。 如果發生失敗,此值表示啟動程式所採取的動作。 系統會記錄所有錯誤。
忽略 (0)
不通知使用者。
標準 (1)
通知使用者。
嚴重 (2)
使用上次的正確組態重新啟動系統。
重大 (3)
系統嘗試以良好的組態啟動。
StartMode [in]
Windows 基底服務的啟動模式。
開機啟動 (「開機」)
作業系統載入器啟動的裝置驅動程式。 這個值只適用於驅動程式服務。
系統啟動 (「System」)
作業系統初始化程式啟動的裝置驅動程式。 這個值只適用於驅動程式服務。
自動啟動 (「自動」)
要由服務控制管理員在系統啟動期間自動啟動的服務。
需求開始 (「手動」)
當進程呼叫 StartService 方法時,服務控制管理員要啟動的服務。
Disabled (「Disabled」)
無法再啟動的服務。
DesktopInteract [in]
如果 為 true,服務可以建立或與桌面上的視窗通訊。
StartName [in]
服務執行所在的帳戶名稱。 根據服務類型而定,帳戶名稱的格式可能是 「DomainName\Username」。 服務進程會在執行時,使用這兩種形式之一來記錄。 如果帳戶屬於內建網域,則可以指定 「.\Username」。 如果指定 Null ,服務會以 LocalSystem 帳戶登入。 對於核心或系統層級驅動程式, StartName 包含驅動程式物件名稱 (,也就是 \FileSystem\Rdr 或 \Driver\Xns) 輸入與輸出 (I/O) 系統用來載入設備磁碟機。 如果指定 Null ,驅動程式會以以服務名稱為基礎的 I/O 系統所建立的預設物件名稱執行。 範例:DWDOM\管理員。
StartPassword [in]
StartName參數所指定帳戶名稱的密碼。 如果您未變更密碼,請指定 Null 。 如果此服務沒有密碼,請指定空字串。
LoadOrderGroup [in]
與新服務相關聯的組名。 載入順序群組包含在登錄中,並決定將服務載入作業系統的順序。 如果指標為 Null ,或指向空字串,則服務不屬於群組。 群組之間的相依性應該列在 LoadOrderGroupDependencies 參數中。 首先會啟動載入排序群組清單中的服務,後面接著不在載入排序群組清單中的服務,後面接著不屬於群組的服務。 登錄具有位於下列位置的載入排序群組清單:
\ HKEY_LOCAL_MACHINE系統\CurrentControlSet\控制\ServiceGroupOrder
LoadOrderGroupDependencies [in]
必須在此服務之前啟動的載入排序群組陣列。 陣列中的每個專案都會以 Null 分隔,且清單會以兩個 Null 值終止。 在 Visual Basic 或腳本中,您可以傳遞 vbArray。 如果指標為 Null ,或指向空字串,則服務沒有相依性。 組名前面必須加上 Winsvc.h 檔案中定義的SC_GROUP_IDENTIFIER () 字元,才能區分它與服務名稱,因為服務和服務群組會共用相同的命名空間。 對群組的相依性表示,如果嘗試啟動群組的所有成員之後,至少有一個群組成員正在執行,則此服務可以執行。
ServiceDependencies [in]
陣列,包含此服務啟動之前必須啟動的服務名稱。 陣列中的每個專案都會以 Null 分隔,且清單會以兩個 Null 值終止。 在 Visual Basic 或腳本中,您可以傳遞 vbArray。 如果指標為 Null,或指向空字串,則服務沒有相依性。 相依于服務表示只有在相依的服務正在執行時,才能執行此服務。
傳回值
傳回下列清單中所列的其中一個值或任何其他值,以指出錯誤。
-
「成功」
-
0
要求已被接受。
-
不支援
-
1
不支援此要求。
-
拒絕存取
-
2
使用者沒有必要的存取權。
-
執行中的相依服務
-
3
無法停止此服務,因為與它相依的其他服務正在執行中。
-
不正確服務控制
-
4
要求的控制碼無效,或是服務不接受此控制碼。
-
服務無法接受控制項
-
5
要求的控制程式代碼無法傳送至服務,因為服務的狀態 (Win32_BaseService。狀態 屬性) 等於 0、1 或 2。
-
服務未作用中
-
6
尚未啟動服務。
-
服務要求逾時
-
7
服務並未及時回應啟動要求。
-
未知失敗
-
8
互動式程式。
-
找不到路徑
-
9
找不到服務可執行檔的目錄路徑。
-
服務已執行
-
10
服務已在執行中。
-
服務資料庫鎖定
-
11
要加入新服務的資料庫已被鎖定。
-
服務相依性已刪除
-
12
已經從系統中移除這個服務所依賴的相依性。
-
服務相依性失敗
-
13
服務在相依的服務中找不到所需的服務。
-
服務已停用
-
14
已經從系統中停用服務。
-
服務登入失敗
-
15
此服務未通過驗證,無法在系統上執行。
-
標示要刪除的服務
-
16
此服務正從系統中移除。
-
服務無線程
-
17
服務沒有執行緒。
-
狀態迴圈相依性
-
18
啟動服務時有循環的相依性。
-
狀態重複名稱
-
19
有一個服務在相同名稱下執行。
-
狀態不正確名稱
-
20
服務名稱中有不正確字元。
-
狀態不正確參數
-
21
不正確參數已傳遞至服務。
-
狀態不正確服務帳戶
-
22
此服務執行所在的帳戶無效,或缺少執行服務的許可權。
-
狀態服務存在
-
23
服務存在於系統可使用之服務的資料庫中。
-
服務已暫停
-
24
服務目前在系統中暫停。
-
其他
-
25 4294967295
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 |
Windows Vista |
最低支援的伺服器 |
Windows Server 2008 |
命名空間 |
Root\CIMV2 |
MOF |
|
DLL |
|