1. 程式人生 > >使用dos命令列啟動服務

使用dos命令列啟動服務

使用命令列啟動服務

2009年09月03日 星期四 07:30

使用命令列啟動服務
在cmd下可有兩種方法開啟,net和sc,net用於開啟沒有被禁用的服務,語法是:
net start 服務名                         啟動 net start 服務名
                                                 停止 net stop 服務名
net stop 服務名
用sc可開啟被禁用的服務,語法是:
sc config 服務名 start= demand     //手動
sc config 服務名 start= auto       //自動
sc config 服務名 start= disabled //禁用
sc start 服務名
sc stop   服務名
注:1)服務名不一定是你在服務面板看到的那個名,例如,你要開啟被禁用的telnet服務,sc config telnet start= auto,報錯:[SC] OpenService FAILED 1060,因為telnet的服務名不是telnet而是tlntsvr, sc config tlntsvr start= auto     就OK了,在服務面板裡檢視telnet屬性,從可執行檔案的路徑裡可看到服務程式名,即命令中的服務名。   2)start=後面有空格,少了就有錯
sc.exe命令功能列表:  注:以下命令中。=號後面都有一個空格,=號前面沒有空格!

  1.更改服務的啟動狀態(這是比較有用的一個功能)   
  2.刪除服務(除非對自己電腦的軟、硬體所需的服務比較清楚,否則不建議刪除任何系統服務,特別是基礎服務)  
  3.停止或啟動服務(功能上類似於net stop/start,但速度更快且能停止的服務更多)
  具體的命令格式如下:  
  修改服務啟動型別的命令列格式為(特別注意start=後面有一個空格)  
  sc config 服務名稱 start= demand(設定服務為手動啟動)   
  sc config 服務名稱 start= disabled(設定服務為禁用)   
  停止/啟動服務的命令列格式為   
  sc stop/start 服務名稱   
  注意:平時常接觸的都是服務的顯示名稱,而以上所指是服務名稱,都可以在控制面板->管理工具->服務裡面,雙擊對應的服務來查詢。  
  先舉例說明一下具體的設定方法:   
  如設定遠端登錄檔服務為手動其格式為   
  sc config RemoteRegistry start= demand   
  設為禁用的格式為:
  sc config RemoteRegistry start= disabled   
  停止服務則格式為:   
  sc stop RemoteRegistry   
  首先把自己所需設定的服務名稱查到之後,按照上面的格式做成批處理檔案,重灌系統之後只要執行批處理檔案即可。  
  以下是我的設定,以XpSp2為藍本,可比對所用的系統進行增刪和修改。注:未加入XpSp2的自動更新、安全中心、防火牆。 
  sc config Alerter start= demand   
  sc config TrkWks start= demand   
  sc config helpsvc start= demand   
  sc config policyAgent start= demand   
  sc config dmserver start= demand   
  sc config WmdmpmSn start= demand   
  sc config Spooler start= demand   
  sc config RemoteRegistry start= demand   
  sc config NtmsSvc start= demand   
  sc config seclogon start= demand   
  sc config Schedule start= demand   
  sc config WebClient start= demand   
  sc config W32Time start= demand   
  sc config WZCSVC start= demand
  sc config ERSvc start= demand   
  sc config Themes start= demand   
  sc config FastUserSwitchingCompatibility start= disabled   
  sc config Messenger start= disabled   
  sc config protectedStorage start= disabled
  sc config SSDpSRV start= disabled   
  sc config TermService start= disabled   
  sc config ShellHWDetection start= disabled   
  如果需要立即關閉服務也可把以下程式碼跟在上面的程式碼之後
  sc stop W32Time   
  sc stop ShellHWDetection   
  sc stop TrkWks
  sc stop helpsvc
  sc stop dmserver
  sc stop policyAgent   
  sc stop Spooler   
  sc stop RemoteRegistry   
  sc stop seclogon   
  sc stop Schedule   
  sc stop WZCSVC
  sc stop ERSvc   
  sc stop Themes   
  sc stop FastUserSwitchingCompatibility   
  sc stop protectedStorage   
  sc stop SSDpSRV   
  sc stop WebClient   
  最後把修改好之後的程式碼存為services.cmd,在以後進行服務設定時,直接執行事先儲存好的批處理檔案就可以做到事半功倍了。  
  看到這裡,使用Win2000的朋友也不必失望,sc.exe這個命令列工具對Win2000同樣適用,可從裝有WinXp或者Win2003的機器裡面拷貝sc.exe檔案,與儲存好的批處理檔案放在一起,然後執行批處理檔案即可。  
  對登錄檔比較熟悉的朋友可能會想到用登錄檔來設定服務的啟動型別,這也是一種可行的方法,本身卻有著內在不足。原因是服務啟動型別在登錄檔中對應的鍵值較長且分散,進行整理不方便直觀且易錯漏,所以這種方法比較適用於無人值守的安裝時使用。
使用案例:
在命令列下啟動自動更新服務:
C:\>sc config wuauserv start= auto
[SC] ChangeServiceConfig SUCCESS
C:\>sc start wuauserv
SERVICE_NAME: wuauserv
         TYPE               : 20   WIN32_SHARE_PROCESS
         STATE               : 2   START_PENDING
                                 (NOT_STOPPABLE,NOT_PAUSABLE,IGNORES_SHUTDOWN)
         WIN32_EXIT_CODE     : 0   (0x0)
         SERVICE_EXIT_CODE   : 0   (0x0)
         CHECKPOINT         : 0x0
         WAIT_HINT           : 0x7d0
         PID                 : 1156
         FLAGS               :
C:\>
使用命令列啟動服務
在cmd下可有兩種方法開啟,net和sc,net用於開啟沒有被禁用的服務,語法是:
net start 服務名                         啟動 net start 服務名
                                                 停止 net stop 服務名
net stop 服務名
用sc可開啟被禁用的服務,語法是:
sc config 服務名 start= demand     //手動
sc condig 服務名 start= auto       //自動
sc config 服務名 start= disabled //禁用
sc start 服務名
sc stop   服務名
注:1)服務名不一定是你在服務面板看到的那個名,例如,你要開啟被禁用的telnet服務,sc config telnet start= auto,報錯:[SC] OpenService FAILED 1060,因為telnet的服務名不是telnet而是tlntsvr, sc config tlntsvr start= auto     就OK了,在服務面板裡檢視telnet屬性,從可執行檔案的路徑裡可看到服務程式名,即命令中的服務名。   2)start=後面有空格,少了就有錯
sc.exe命令功能列表:  注:以下命令中。=號後面都有一個空格,=號前面沒有空格!

  1.更改服務的啟動狀態(這是比較有用的一個功能)   
  2.刪除服務(除非對自己電腦的軟、硬體所需的服務比較清楚,否則不建議刪除任何系統服務,特別是基礎服務)  
  3.停止或啟動服務(功能上類似於net stop/start,但速度更快且能停止的服務更多)
  具體的命令格式如下:  
  修改服務啟動型別的命令列格式為(特別注意start=後面有一個空格)  
  sc config 服務名稱 start= demand(設定服務為手動啟動)   
  sc config 服務名稱 start= disabled(設定服務為禁用)   
  停止/啟動服務的命令列格式為   
  sc stop/start 服務名稱   
  注意:平時常接觸的都是服務的顯示名稱,而以上所指是服務名稱,都可以在控制面板->管理工具->服務裡面,雙擊對應的服務來查詢。  
  先舉例說明一下具體的設定方法:   
  如設定遠端登錄檔服務為手動其格式為   
  sc config RemoteRegistry start= demand   
  設為禁用的格式為:
  sc config RemoteRegistry start= disabled   
  停止服務則格式為:   
  sc stop RemoteRegistry   
  首先把自己所需設定的服務名稱查到之後,按照上面的格式做成批處理檔案,重灌系統之後只要執行批處理檔案即可。  
  以下是我的設定,以XpSp2為藍本,可比對所用的系統進行增刪和修改。注:未加入XpSp2的自動更新、安全中心、防火牆。 
  sc config Alerter start= demand   
  sc config TrkWks start= demand   
  sc config helpsvc start= demand   
  sc config policyAgent start= demand   
  sc config dmserver start= demand   
  sc config WmdmpmSn start= demand   
  sc config Spooler start= demand   
  sc config RemoteRegistry start= demand   
  sc config NtmsSvc start= demand   
  sc config seclogon start= demand   
  sc config Schedule start= demand   
  sc config WebClient start= demand   
  sc config W32Time start= demand   
  sc config WZCSVC start= demand
  sc config ERSvc start= demand   
  sc config Themes start= demand   
  sc config FastUserSwitchingCompatibility start= disabled   
  sc config Messenger start= disabled   
  sc config protectedStorage start= disabled
  sc config SSDpSRV start= disabled   
  sc config TermService start= disabled   
  sc config ShellHWDetection start= disabled   
  如果需要立即關閉服務也可把以下程式碼跟在上面的程式碼之後
  sc stop W32Time   
  sc stop ShellHWDetection   
  sc stop TrkWks
  sc stop helpsvc
  sc stop dmserver
  sc stop policyAgent   
  sc stop Spooler   
  sc stop RemoteRegistry   
  sc stop seclogon   
  sc stop Schedule   
  sc stop WZCSVC
  sc stop ERSvc   
  sc stop Themes   
  sc stop FastUserSwitchingCompatibility   
  sc stop protectedStorage   
  sc stop SSDpSRV   
  sc stop WebClient   
  最後把修改好之後的程式碼存為services.cmd,在以後進行服務設定時,直接執行事先儲存好的批處理檔案就可以做到事半功倍了。  
  看到這裡,使用Win2000的朋友也不必失望,sc.exe這個命令列工具對Win2000同樣適用,可從裝有WinXp或者Win2003的機器裡面拷貝sc.exe檔案,與儲存好的批處理檔案放在一起,然後執行批處理檔案即可。  
  對登錄檔比較熟悉的朋友可能會想到用登錄檔來設定服務的啟動型別,這也是一種可行的方法,本身卻有著內在不足。原因是服務啟動型別在登錄檔中對應的鍵值較長且分散,進行整理不方便直觀且易錯漏,所以這種方法比較適用於無人值守的安裝時使用。
使用案例:
在命令列下啟動自動更新服務:
C:\>sc config wuauserv start= auto
[SC] ChangeServiceConfig SUCCESS
C:\>sc start wuauserv
SERVICE_NAME: wuauserv
         TYPE               : 20   WIN32_SHARE_PROCESS
         STATE               : 2   START_PENDING
                                 (NOT_STOPPABLE,NOT_PAUSABLE,IGNORES_SHUTDOWN)
         WIN32_EXIT_CODE     : 0   (0x0)
         SERVICE_EXIT_CODE   : 0   (0x0)
         CHECKPOINT         : 0x0
         WAIT_HINT           : 0x7d0
         PID                 : 1156
         FLAGS               :
C:\