命令格式:
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