1. 程式人生 > >SC命令建立和刪除windows服務

SC命令建立和刪除windows服務

命令格式:

sc [servername] create Servicename [Optionname= Optionvalues]

servername

可選,可以使用雙斜線,如\\\\myserver,也可以是\\\\192.168.0.1來操作遠端計算機。如果在本地計算機上操作就不用新增任何引數。

Servicename

在登錄檔中為service key制定的名稱。注意這個名稱是不同於顯示名稱的(這個名稱可以用net start和服務控制面板看到),而SC是使用服務鍵名來鑑別服務的。

Optionname 

    這個optionname和optionvalues引數允許你指定操作命令引數的名稱和數值。注意,這一點很重要在操作名稱和等號之間是沒有空格的。

    如果你想要看每個命令的可以用的optionvalues,你可以使用sc command這樣的格式。這會為你提供詳細的幫助。

Optionvalues

    為optionname的引數的名稱指定它的數值。有效數值範圍常常限制於哪一個引數的optionname。如果要列表請用sc command來詢問每個命令。

Optionname--Optionvalues描述

type=----own, share, interact, kernel, filesys

關於建立服務的型別,選項值包括驅動程式使用的型別,預設是share。

start=----boot, sys tem, auto, demand, disabled

關於啟動服務的型別,選項值包括驅動程式使用的型別,預設是demand(手動)。

error=----normal, severe, critical, ignore

當服務在匯入失敗錯誤的嚴重性,預設是normal。

binPath=--(string)

服務二進位制檔案的路徑名,這裡沒有預設值,這個字串是必須設定的。

group=----(string)

這個服務屬於的組,這個組的列表儲存在登錄檔中的ServiceGroupOrder下。預設是nothing。

tag=----(string)

如果這個字串被設定為yes,sc可以從CreateService call中得到一個tagId。然而,SC並不顯示這個標籤,所以使用這個沒有多少意義。預設是nothing

depend=----(space separated string)有空格的字串。

在這個服務啟動前必須啟動的服務的名稱或者是組。

obj=----(string)

賬號執行使用的名稱,也可以說是登陸身份。預設是localsys tem

Displayname=--(string)

一個為在使用者介面程式中鑑別各個服務使用的字串。

password=--(string)

一個密碼,如果一個不同於localsys tem的賬號使用時需要使用這個。

Optionvalues

    Optionname引數名稱的數值列表。參考optionname。當我們輸入一個字串時,如果輸入一個空的引用這意味著一個空的字串將被匯入。

需要注意的是:

1. 在option= xxxxx格式中,“=”號和後面的內容一定要有空格,如depend=  Tcpip

2. 如果命令中的需要進行雙引號的巢狀,使用反斜槓加引號 " \" " 來進行轉義處理。

示例

sc create svnservice binpath= "\"D:\Servers\Subversion\bin\svnserve.exe\" --service -r E:\SVN\repository" displayname= "SVNService" depend= Tcpip start= auto  

使用SC命令刪除windows服務

sc delete

從登錄檔中刪除服務子項。如果服務正在執行或者另一個程序有一個該服務的開啟控制代碼,那麼此服務將標記為刪除。

語法

sc [ServerName] delete [ServiceName] 

引數

ServerName 

指定服務所在的遠端伺服器名稱。該名稱必須使用 UNC 格式(“\\myserver”)。要在本機上執行 SC.exe,請忽略此引數。 

ServiceName 

指定由 getkeyname 操作返回的服務名。 

示例

sc delete svnservice

失敗提示:DeleteService FAILED 1072

在刪除服務時可能會遇上一個失敗提示“DeleteService FAILED 1072: The specified service has been marked for deletion.”,或者執行沒報錯,但服務仍然在服務管理列表中。 

這 是因為server被解除安裝掉時,會檢查狀態(實際是標記狀 態,啟動服務時檢查,確定定啟動或是解除安裝)。如果是啟動狀態,則在服務停止時自動解除安裝;否則立即解除安裝。所以報錯的原因可能是因為服務處於啟動狀態,所以無 法刪除,如果需要立即刪除,需要使用命令終止服務,命令格式如下:

sc stop ServiceName