共找到28條詞條名為SC的結果 展開
SC
XP系統中的DOS命令
SC命令是XP系統中功能強大的DOS命令,SC命令能與“服務控制器”和已安裝設備進行通訊。SC 是用於與服務控制管理器和服務進行通信的命令行程序。
令功
、 檢索設置服務控制息。 . 測試調試服務程序。
、設置存儲註冊服務屬,控制啟啟服務程序,及台程序運。即改服務啟狀態。
3、SC 命令還可以用來刪除系統中的無用的服務。(除非對自己電腦中的軟硬體所需的服務比較清楚,否則不建議刪除任何系統服務,尤其是基礎服務)
4、SC命令 的參數可以配置指定的服務,檢索當前服務的狀態,也可以停止和啟動服務(功能上類似NET STOP/START命令,但SC速度更快且能停止更多的服務)。
5、可以創建批處理文件來調用不同的 SC 命令,以自動啟動或關閉服務序列。
SC.exe 提供的功能類似於“控制面板”中“管理工具”項中的“服務”。
SC命令不能單獨使用,必須和其它的命令結合起來一起使用。一共有24個,如下所示
sc boot sc config sc continue sc control sc create sc delete sc descrīption sc enumdepend
sc failure sc getdisplayname sc getkeyname sc interrogate sc lock sc pause sc qc
sc qdescrīption sc qfailure sc query sc queryex sc querylock sc sdset sc sdshow
sc start sc stop
在命令行中直接輸入SC會顯示SC命令的幫助信息,直接輸入以上24個命令除sc query 和 sc queryex之外都將顯示該SC命令的幫助信息。(輸入sc query和sc queryex會顯示當前系統中正在運行的所有服務的詳細信息,但sc queryex比sc query顯示的信息多出來兩項:PID和FLAGS)
SC命令的格式:SC [Servername] command Servicename [Optionname= Optionvalues]
Servername:指定服務所在的遠程伺服器的名稱。名稱必須採用通用命名約定 (UNC) 格式(“\\myserver”)。要在本地運行SC.exe,請忽略此參數。
command :即以上提到的那24個命令(SC後面的那個,如query,start,stop,create,config等)
Servicename:服務名,也就是要配置的那個服務的名字,例如你要啟動一個服務你就輸入sc start +你要啟動的服務名。(注意這裡的服務名不是服務的顯示名稱,而是服務名稱,這個服務名稱可以在系統管理工具下的服務中可以看到,例如在服務中雙擊DHCP Client可以看到其服務名稱是Dhcp,而那個DHCP Client是顯示名稱,可以用sc命令來更改一個服務的顯示名稱)
Optionname= Optionvalues:是選項名和選項的值。
例如你要在開機是系統自動載入themes服務,你可以使用sc config themes start= auto,後面的start就是選項,auto是選項的值。(注意=號後面有個空格,所有的使用選項的在=號後面都要加個空格再加上選項值)
下面給出每個命令詳細的用法
1、sc boot
表明最近的啟動是否應該保存為上次已知的正確配置。
語法
Sc [ServerName] boot [{bad | OK}]
參數
ServerName:上面已經介紹,在此不在累述(下同)
[{bad | OK}]
指定最近的啟動是否錯誤或它是否應該保存為上次已知的正確啟動配置。
下面的示例顯示了如何使用 sc boot 命令:
sc boot ok
sc boot bad
2、sc config
修改註冊表和“服務控制管理器”資料庫中服務項目的值。
語法
Sc [ServerName] config [ServiceName] [type= {own | share | kernel | filesys | rec | adapt | interacttype= {own | share}}] [start= {boot | system | auto | demand | disabled}] [error= {normal | severe | critical | ignore}] [binpath= BinaryPathName] [group= LoadOrderGroup] [tag= {yes | no}] [depend= dependencies] [obj= {AccountName | ObjectName}] [displayname= DisplayName] [password= Password]
ServiceName
指定要操作的服務名。(上面也已經介紹,下文不在累述)
type= {own | share | kernel | filesys | rec | adapt | interacttype= {own | share}}
指定服務類型。
own
服務以其自身的進程運行。不與其他服務共享可執行文件。這是默認值。
服務作為共享進程運行。與其他服務共享可執行文件。
kernel
驅動程序。
filesys
文件系統驅動程序。
rec
文件系統識別驅動程序(標識計算機上使用的文件系統)。
adapt
適配器驅動程序(標識鍵盤、滑鼠、磁碟驅動器這樣的硬體項)。
interact
服務可以與桌面交互,接收用戶的輸入。交互服務必須在 LocalSystem 帳戶下運行。該類型必須與 type= own 或 type= share(例如,type= interact type= own)結合使用。自身使用 type= interact 將會產生參數無效的錯誤。
start= {boot | system | auto | demand | disabled}
指定服務的啟動類型。
boot
由啟動載入程序載入的設備驅動程序。
system
在核心初始化過程中啟動的設備驅動程序。
auto
每次計算機重新啟動時都會自動啟動、並且即使無人登錄到計算機也能正常運行的服務。
demand
必須手動啟動的服務。如果沒有指定 start=,則此項即為默認值。
disabled
不能啟動的服務。要啟動禁用的服務,應將啟動類型更改為其他值。
error= {normal | severe | critical | ignore}
如果在啟動過程中,服務啟動失敗,則指定錯誤的嚴重性。
normal
將記錄錯誤,並且顯示消息對話框,通知用戶服務啟動失敗。啟動將繼續。這是默認設置。
severe
記錄錯誤(如果存在)。計算機嘗試以最新的有效配置重新啟動。這可能導致計算機能夠重新啟動,但服務卻仍然無法運行。
critical
記錄錯誤(如果存在)。計算機嘗試以最新的有效配置重新啟動。如果上次已知正確的配置失敗,啟動也將失敗,啟動進程將以停止錯誤而中止。
ignore
錯誤已記錄,啟動繼續。記錄錯誤超出在事件ri志的範圍,不再給用戶作出提示。
binpath= BinaryPathName
指定指向服務二進位文件的路徑。
group= LoadOrderGroup
指定該服務所屬組的名稱。組列表存儲在註冊表的 HKLM\System\CurrentControlSet\Control\ServiceGroupOrder 子項中。默認設置為空值。
tag= {yes | no}
指定是否在 CreateService 調用中獲得 TagID。標記僅用於引導啟動或系統啟動驅動程序。
depend= dependencies
指定必須在此項服務之前啟動的服務或組的名稱。名稱以正斜杠 (/) 分隔。
obj= {AccountName | ObjectName}
指定運行服務將使用的帳戶名,或指定運行驅動程序將使用的 Windows 驅動程序對象名。默認設置為 LocalSystem。
displayname= DisplayName
指定一個可以在用戶界面程序中用於為用戶標識服務的友好的、有意義的名稱。例如,一項服務的子項名是對用戶毫無意義的 wuauserv,而顯示的名稱是“自動更新”。
password= Password
指定一個密碼。如果使用了非 LocalSystem 的帳戶,則此項是必需的。
備註
如果參數及其值之間沒有空格,(例如,是 type= own,而不是 type=own),則操作會失敗。
示例
下面的示例顯示了如何使用 sc config 命令:
sc config NewService binpath= "ntsd -d c:\windows\system32\NewServ.exe"
3、sc continue
為了恢復暫停的服務,要給服務發送一個 CONTINUE 控制請求。
語法
Sc [ServerName] continue [ServiceName]
參數
ServerName:略
ServiceName:略
備註
使用 continue 操作來恢復暫停的服務。
下面的示例顯示了如何使用 sc continue 命令:
sc continue tapisrv
4、sc control
向服務發送 CONTROL 。
語法
sc [ServerName] control [ServiceName] [{paramchange | netbindadd | netbindremove | netbindenable | netbinddisable | UserDefinedControlB}]
參數
{paramchange | netbindadd | netbindremove | netbindenable | netbinddisable | UserDefinedControlB}
指定要發送到服務的控制。
5、sc create
在註冊表和“服務控制管理器”中為服務創建子項和項目。
語法
Sc [ServerName] create [ServiceName] [type= {own | share | kernel | filesys | rec | adapt | interacttype= {own | share}}] [start= {boot | system | auto | demand | disabled}] [error= {normal | severe | critical | ignore}] [binpath= BinaryPathName] [group= LoadOrderGroup] [tag= {yes | no}] [depend= dependencies] [obj= {AccountName | ObjectName}] [displayname= DisplayName] [password= Password]
參數:各個參數的作用參見sc config 命令
下面的示例顯示了如何使用 sc create 命令:
sc \\myserver create NewService binpath= c:\windows\system32\NewServ.exe
sc create NewService binpath= c:\windows\system32\NewServ.exe type= share start= auto depend= "+TDI Netbios"
6、sc delete
從註冊表中刪除服務子項。如果服務正在運行或者另一個進程有一個該服務的打開句柄,那麼此服務將標記為刪除。
語法
Sc [ServerName] delete [ServiceName]
參數:略
備註
使用“添加或刪除程序”刪除 DHCP、DNS 或任何其他內置的操作系統服務。“添加或刪除程序”不僅會刪除該服務的註冊表子項,而且還會卸載該服務並刪除其所有的快捷方式。
下面的示例顯示了如何使用 sc delete 命令:
sc delete newserv
7、sc descrīption
設置服務的描述字元串。
語法
Sc [ServerName] descrīption [ServiceName] [Descrīption]
參數:略
描述
為指定服務指定描述。這個描述的內容可以在控制面板-管理工具-服務里通過查看該服務的屬性看到。如果沒有指定字元串,則不會修改該服務的描述。不限制服務描述中可包含的字元數。
示例
下面的示例顯示了如何使用 sc descrīption 命令:
sc descrīption newserv "Runs quality of service control."
8、sc enumdepend
枚舉依賴此服務的系統組件,這也可以從控制面板-管理工具-服務里通過查看該服務的屬性中的依存關係選項卡看到(“下面的系統組件依賴此服務”下面的部分)
語法
Sc [ServerName] enumdepend [ServiceName] [BufferSize]
參數
BufferSize
以位元組為單位指定枚舉緩衝區的大小。默認值為 1024 位元組。
備註
如果緩衝區不夠大,enumdepend 操作只會部分輸出依存關係,並指定輸出所有依存關係所需的額外緩衝區大小。如果輸出被截斷,請重新運行該操作並指定更大的緩衝區大小。
下面的示例顯示了如何使用 sc enumdepend 命令:
sc enumdepend rpcss 5690
sc enumdepend tapisrv
9、sc failure
指定服務失敗時要採取的措施。
語法
Sc [ServerName] failure [ServiceName] [reset= ErrorFreePeriod] [reboot= BroadcastMessage] [command= CommandLine] [actions= FailureActionsAndDelayTime]
參數
reset= ErrorFreePeriod
指定沒有失敗的周期長度(單位為秒),此後失敗計數應該重置為 0。這個參數必須與 actions= 參數結合使用。
reboot= BroadcastMessage
指定服務失敗時要廣播的消息。
command= CommandLine
actions= FailureActionsAndDelayTime
指定失敗操作及其延遲時間(單位為毫秒),以正斜杠 (/) 隔開。以下操作均有效:run、restart 和 reboot。此參數必須與 reset= 參數結合使用。失敗后不採取任何操作時,請使用 actions= ""。
備註
並非所有服務都允許更改其失敗選項。其中一些作為服務集的一部分運行。
要在失敗時運行批處理文件,請指定 cmd.exeDrive:\FileName.bat 為 command= 參數,其中 Drive:\FileName.bat 是批處理文件的完全合格的名稱。
要在失敗時運行 VBS 文件,請指定 cscrīpt drive:\myscrīpt.vbs 為 command= 參數,其中 Drive:\myscrīpt.vbs 是腳本文件完全合格的名稱。
可以將三種不同的操作指定為 actions= 參數,它們將會在服務的第一次、第二次、第三次失敗時使用。
如果參數及其值之間沒有空格,(例如,是 type= own,而不是 type=own),則操作會失敗。
下面的示例顯示了如何使用 sc failure 命令:
sc failure msftpsvc reset= 30 actions= restart/5000
sc failure dfs reset= 60 command= c:\windows\services\restart_dfs.exe actions= run/5000
sc failure dfs reset= 60 actions= reboot/30000
sc failure dfs reset= 60 reboot= "The Distributed File System service has failed.Because of this, the computer will reboot in 30 seconds." actions= reboot/30000
sc failure myservice reset= 3600 reboot= "MyService crashed -- rebooting machine" command= "%windir%\MyServiceRecovery.exe" actions= restart/5000/run/10000/reboot/60000
10、sc getdisplayname
獲得與特定服務關聯的顯示名稱。
語法
Sc [ServerName] getdisplayname [ServiceName] [BufferSize]
參數
BufferSize
指定緩衝區大小(以位元組為單位)。默認值為 1024 位元組。
下面的示例顯示了如何使用 sc getdisplayname 命令:
sc getdisplayname clipsrv
sc getdisplayname tapisrv
sc getdisplayname sharedaccess
11、sc getkeyname
使用特定服務的顯示名稱作為輸入的內容會獲得與其相關聯的項名。
語法
sc [ServerName] getkeyname [ServiceDisplayName] [BufferSize]
參數
ServiceDisplayName
指定服務的顯示名稱。
BufferSize
指定緩衝區大小(以位元組為單位)。默認值為 1024 位元組。
備註
如果 ServiceDisplayName 包含空格,請使用引號將文本引起來(例如,"Service Display Name")。
下面的示例顯示了如何使用 sc getkeyname 命令:
sc getkeyname "remote procedure call (rpc)"
sc getkeyname "internet connection sharing"
sc getkeyname clipbook
12、sc interrogate
向服務發送一個 INTERROGATE 控制請求。
語法
Sc [ServerName] interrogate [ServiceName]
參數:略
備註
向服務發送 INTERROGATE 會導致該服務使用“服務控制管理器”更新其狀態。
下面的示例顯示了如何使用 sc interrogate 命令:
sc interrogate sharedaccess
sc interrogate rpcss
13、sc lock
鎖定“服務控制管理器”的資料庫。
語法
sc [ServerName] lock
參數:略
備註
鎖定“服務控制管理器”的資料庫會阻止啟動任何服務。如果要確保服務在停止之後不會啟動,請使用這個命令。這可以使您不受干擾地進行一些操作(例如,刪除服務)。
使用 lock 操作鎖定“服務控制管理器”的資料庫,然後通過鍵入 u 來使資料庫解鎖。也可停止鎖定資料庫的進程。
下面的示例顯示了如何使用 sc lock 命令:
sc lock
14、sc pause
向服務發送 PAUSE 控制請求。
語法
Sc [ServerName] pause [ServiceName]
參數:略
備註
在終止服務之前使用 pause 操作來暫停它。
並非所有服務都能夠被暫停。
在暫停時並非所有服務都執行同樣的操作。一些服務繼續為現有客戶端服務,但拒絕接受新的客戶端。其他的會終止對現有客戶端的服務,同時也會拒絕接受新的客戶端。
下面的示例顯示了如何使用 sc pause 命令:
sc pause tapisrv
15、sc qc
查詢服務的配置信息。
語法
Sc [ServerName] qc [ServiceName] [BufferSize]
參數
BufferSize
指定緩衝區大小(以位元組為單位)。默認值為 1024 位元組。
備註
qc 操作可以顯示有關服務的下列信息:
SERVICE_NAME(服務的註冊表子項名稱)、TYPE、ERROR_CONTROL、BINARY_PATH_NAME、LOAD_ORDER_GROUP、TAG、DISPLAY_NAME、DEPENDENCIES 和 SERVICE_START_NAME。
管理員可以使用 SC 來確定任一服務的二進位名稱,並查明它是否與其他服務共享一個進程,在命令行下鍵入下列命令:
sc qc ServiceName
Services.exe 啟動所有的服務。為節約系統資源,幾個為 Windows 開發的 Win32 服務被編寫為共享 Services.exe 進程。這些服務不作為獨立的進程列在“系統監視器”或“任務管理器”之中。Svchost.exe 也是如此,它是許多操作服務共享的服務主機進程。
因為第三方 Win32 服務也可以配置為共享進程,所以不可能為每一個 Win32 服務創建一個進程。SC 可以用來獲得這些服務的配置信息。但是,如果一項服務不與其他服務共享其進程,那麼在服務運行時,“系統監視器”中會出現其進程。
因為 SC 與包含在 Windows 中的 Services.exe 相比,提供了有關服務的更為詳細和準確的信息,所以對於服務開發人員來說,SC 更有用處。Services.exe 可以確定服務是正在運行、已停止還是已暫停。儘管這些工具對於正在平穩運行的已調試應用程序已經足夠,但它們提供的有關正開發的服務的信息卻會使人誤解。例如,正在啟動的服務不管其實際運行與否都顯示為已啟動。
SC 可執行對所有 Windows 服務控制應用編程介面 (API) 函數的調用。通過在命令行下指定這些函數來設置其參數。
使用 SC,可以查詢服務狀態,檢索存儲在狀態結構欄位中的值。Services.exe 不能提供服務的完整狀態,但 SC 可以顯示精確的服務狀態,以及最新的檢查點號碼和等待提示。可以將檢查點用作調試工具,原因在於它表明了在程序停止響應之前初始化進行的程度。SC 也可以用來指定遠程計算機名,以便於在遠程計算機上調用服務 API 函數或查看服務狀態結構。
下面的示例顯示了如何使用 sc qc 命令:
sc qc \\myserver newsrvice
sc qc rpcss 248
16、sc qdescrīption
顯示服務的描述字元串。
語法
Sc [ServerName] qdescrīption [ServiceName] [BufferSize]
參數
BufferSize
指定緩衝區大小(以位元組為單位)。默認值為 1024 位元組。
下面的示例顯示了如何使用 sc qdescrīption 命令:
sc qdescrīption rpcss
sc qdescrīption rpcss 138
17、sc qfailure
顯示指定服務失敗時要執行的操作。
語法
Sc [ServerName] qfailure [ServiceName] [BufferSize]
參數
BufferSize
指定緩衝區大小(以位元組為單位)。默認值為 1024 位元組。
備註
qfailure 操作可以顯示有關服務的下列信息:SERVICE_NAME(服務的註冊表子項名)、RESET_PERIOD、REBOOT_MESSAGE、COMMAND_LINE 和 FAILURE_ACTIONS。
下面的示例顯示了如何使用 sc qfailure 命令:
sc qfailure rpcss
sc qfailure rpcss 20
18、sc query
獲得和顯示關於指定的服務、驅動程序、服務類型或驅動程序類型的信息。
語法
Sc [ServerName] query [ServiceName] [type= {driver | service | all}] [type= {own | share | interact | kernel | filesys | rec | adapt}] [state= {active | inactive | all}] [bufsize= BufferSize] [ri= ResumeIndex] [group= GroupName]
參數
ServiceName
指定由 getkeyname 操作返回的服務名。此 query 參數不與其他的 query 參數結合使用(除了 ServerName)。
type= {driver | service | all}
指定需要枚舉的內容。默認類型為 service。
driver
指定僅枚舉驅動程序。
service
指定僅枚舉服務。
all
指定同時枚舉驅動程序和服務。
type= {own | share | interact | kernel | filesys | rec | adapt}
指定要枚舉的服務類型或驅動程序類型。
own
服務以其自身的進程運行。不與其他服務共享可執行文件。這是默認值。
share
服務作為共享進程運行。與其他服務共享可執行文件。
interact
服務可以與桌面交互,接收用戶的輸入。交互服務必須在 LocalSystem 帳戶下運行。
kernel
驅動程序。
filesys
文件系統驅動程序。
state= {active | inactive | all}
指定要枚舉的服務的已開始狀態。默認狀態是 active。
active
指定所有的活動服務。
inactive
指定所有暫停或停止的服務。
all
指定所有服務。
bufsize= BufferSize
以位元組為單位指定枚舉緩衝區的大小。默認大小為 1024 位元組。當從查詢返回的顯示結果超過 1024 個位元組時,增加枚舉緩衝區的大小。
ri= ResumeIndex
指定開始或繼續枚舉的索引號。默認值為 0。在查詢返回的信息超過默認緩衝區能夠顯示的大小時,請與 bufsize= 參數結合使用這個參數。
group= GroupName
指定要枚舉的服務組。默認設置為所有組。
備註
如果參數及其值之間沒有空格,(例如,是 type= own,而不是 type=own),則操作會失敗。
query 操作可以顯示有關服務的下列信息:SERVICE_NAME(服務的註冊表子項名)、TYPE、STATE(以及不可用的狀態)、WIN32_EXIT_B、SERVICE_EXIT_B、CHECKPOINT 和 WAIT_HINT。
在某些情況下,type= 參數可以使用兩次。type= 參數的第一次出現指定是否查詢服務、驅動器或所有這些項。type= 參數的第二次出現指定一個由 create 操作進一步縮小查詢範圍的類型。
當 query 命令的顯示結果超過了枚舉緩衝區的大小時,顯示類似於以下內容的消息:
Enum: more data, need 1822 bytes start resume at index 79
要顯示剩餘的 query 信息,請重新運行 query,將 bufsize= 設置為所需的位元組數,並將 ri= 設置為指定的索引。例如,在命令行鍵入下面的指令會顯示剩餘的輸出:
sc query bufsize= 1822 ri= 79
下面的示例顯示了如何使用 sc query 命令:
sc query
sc query messenger
sc query type= driver
sc query type= service
sc query state= all
sc query bufsize= 50
sc query ri= 14
sc query type= service type= interact
sc query type= driver group= ndis
19、sc queryex
獲得和顯示關於指定的服務、驅動程序、服務類型或驅動程序類型的擴展信息。
語法
Sc [ServerName] queryex [type= {driver | service | all}] [type= {own | share | interact | kernel | filesys | rec | adapt}] [state= {active | inactive | all}] [bufsize= BufferSize] [ri= ResumeIndex][group= GroupName]
參數
ServiceName
指定由 getkeyname 操作返回的服務名。此 queryex 參數不與 ServerName 之外的任何其他 queryex 參數結合使用。
type= {driver | service | all}
指定需要枚舉的內容。默認類型為 service。
driver
指定僅枚舉驅動程序。
service
指定僅枚舉服務。
all
指定同時枚舉驅動程序和服務。
指定要枚舉的服務類型或驅動程序類型。
own
服務以其自身的進程運行。不與其他服務共享可執行文件。這是默認值。
share
服務作為共享進程運行。與其他服務共享可執行文件。
interact
服務可以與桌面交互,接收用戶的輸入。交互服務必須在 LocalSystem 帳戶下運行。
kernel
驅動程序。
filesys
文件系統驅動程序。
state= {active | inactive | all}
指定要枚舉的服務的已開始狀態。默認狀態是 active。
active
指定所有的活動服務。
inactive
指定所有暫停或停止的服務。
all
指定所有服務。
bufsize= BufferSize
以位元組為單位指定枚舉緩衝區的大小。默認大小為 1024 位元組。
ri= ResumeIndex
指定開始或繼續枚舉的索引號。默認值為 0。
group= GroupName
指定要枚舉的服務組。默認設置為所有組。