共用方式為


(CIMWin32 WMI 提供者) 建立 Win32_Service 類別的方法

CreateWMI 類別方法會建立新的系統服務。

本主題使用 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 (0x1)

核心驅動程式

2 (0x2)

檔案系統驅動程式

4 (0x4)

配接器

8 (0x8)

辨識器驅動程式

16 (0x10)

自有進程

32 (0x20)

共用程式

256 (0x100)

互動式程式

ErrorControl [in]

如果 Create 方法無法啟動,則錯誤嚴重性。 如果發生失敗,此值表示啟動程式所採取的動作。 系統會記錄所有錯誤。

0

不通知使用者。

1

通知使用者。

2

使用上次的正確組態重新啟動系統。

3

系統嘗試以良好的組態啟動。

StartMode [in]

Windows 基底服務的啟動模式。

Boot

作業系統載入器啟動的裝置驅動程式。 這個值只適用於驅動程式服務。

系統

作業系統初始化程式啟動的裝置驅動程式。 這個值只適用於驅動程式服務。

自動

服務控制管理員在系統啟動期間自動啟動的服務。

手動

當進程呼叫 StartService 方法時,服務控制管理員要啟動的服務。

已停用

無法再啟動的服務。

DesktopInteract [in]

如果 為 true,服務可以建立或與桌面上的視窗通訊。

StartName [in]

服務執行所在的帳戶名稱。 視服務類型而定,帳戶名稱的格式可能是 DomainName\Username 或 User Principal Name (UPN) 格式 (Username@DomainName) 。 服務進程會在執行時,使用這兩種形式之一來記錄。 如果帳戶屬於內建網域,則可以指定 .\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,或指向空字串,則服務沒有相依性。 相依于服務表示只有在相依的服務正在執行時,才能執行此服務。

傳回值

傳回下列清單中所列的其中一個值,或任何其他值,以指出錯誤。 如需其他錯誤碼,請參閱 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

服務目前在系統中暫停。

備註

服務通常會以下列兩種方式之一安裝:作為作業系統安裝的一部分,或使用服務開發人員提供的安裝程式。 不過,某些服務,特別是內部建立的服務可能沒有安裝程式。 在這些情況下,您可以使用 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
CIMWin32.mof
DLL
CIMWin32.dll

另請參閱

作業系統類別

Win32_Service

WMI 工作:服務