1. 程式人生 > >使用cmd命令手動、自動啟動和禁用服務

使用cmd命令手動、自動啟動和禁用服務

使用命令列啟動服務

在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屬性,從可執行檔案

的路徑裡可看到服務程式名,即命令中的服務名。[在服務中點選服務名稱右鍵屬性:有項叫:服務名稱,這個就是需要的 "服務名",

如:

@echo off
sc config MSSQLSERVER start= auto
echo. & pause

]   

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:/>