exe文件註冊服務的方法

問題提出:有的時候,在服務器安裝某個EXE文件,想讓它能夠在系統重啓時自動運行,雖然放在“開始-程序-啓動”能夠運行,但是對於遠程維護的服務器,由於用戶帳戶的不同,就不會不能如意。
 問題解決: 如果能把某個EXE文件作爲系統的一個服務,就可以不必擔心註銷、重啓了。
從網上搜索到“把EXE文件註冊成服務的方法”以及“EasyService 一鍵服務 批處理程序”

把EXE文件註冊成服務的方法
(本文原作者的內容進行列步驟處理)
Instsrv.exe可以給系統安裝和刪除服務
Srvany.exe可以讓程序以服務的方式運行
把這兩個程序保存在一個方便的位置,例如C盤根目錄下。
我們舉例來說明,把OE作爲一個服務添加進Windows XP Professional操作系統中,並把這個服務命名爲“Mail”。

1、CMD:    c:\instsrv.exe Mail c:\srvany.exe
就是把srvany.exe註冊爲系統的服務,服務名是Mail
運行後,會提示已成功安裝了這個服務,此時在“控制面板”裏的“服務”也能看到新添加的這個mail服務。
但是,如果後面的srvany.exe是其它的exe文件的話,是不能直接啓動該服務的。
2、Regedit:在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services下找到添加的Mail,
            點擊右鍵,新建一個鍵,命名爲“Parameters”,
            點擊新建的Parameters,並再次新建一個名稱爲“Application”的子鍵,數據類型爲“REG_SZ”,數值爲希望作爲服務運行的程序的所在位置,如OE的程序位置就是C:\Program Files\Outlook Express\msimn.exe ,把這個路徑添入數值中。
            在Mail服務下建立一個名爲Description的子鍵,數據類型同樣爲REG_SZ,數值可以寫一些你對這個服務的描述,這個我們在後面可以看到。 (這裏的這一步是說明用的,可以省略,不過能讓添加的服務看起來更專業。)     
           
3、對服務做一些額外的設置:直接運行“Services.msc”,或到控制面板裏打開“服務”,找到新添加的“Mail”服務項目。
    在“General”選項卡上,有“自動(Automatic)”,“手動(Manual)”和“禁止(Disabled)”三種啓動類型,按照需要,我們一般設置成自動就可以了。
    在“Logon”選項卡下,可以設置以什麼身份運行這個服務,一般可以不用理會,按照默認的設置。
    在“Recovery”選項卡下,則是進行恢復設置的,你可以指定,在服務第一次,第二次和第三次出錯之後分別採取什麼措施。
    在“Dependencies”則顯示了服務之間的依存關係,可以讓你察看這個服務的運行依賴哪些其它服務,以及還有什麼服務依賴於這個服務。這後面幾個對我們一般用戶沒有什麼意義。
經過這些設置,你的服務已經完全可以正常工作了。

4、刪除添加的服務:
  先:在服務裏停止運行;
  再:使用Instsrv.exe程序刪除:“c:\instsrv.exe Mail remove”,然後回車就可以了。
 

-------------------------------------------
以下是網上搜索到的另一個很方便的批處理程序

一懶到底——輕鬆註冊Exe程序爲Windows系統服務

爲了方便和我有同樣想法的人,乾脆寫了個批處理腳本,一步實現停止->刪除->註冊->啓動的功能,包括生成註冊表文件並導入。
腳本內容如下:
@echo off
 
::設置服務名稱
set service_name=smtpsvr
 
::設置服務描述
set service_description=1st smtp server 服務
 
::設置服務程序路徑
set prog_path=D:\\Green Programs\\fstsmtp\\smtpserver.exe
 
::設置服務的啓動方式 auto:自動 demand:手動 disabled:禁用
set strt=auto
 
echo                    EasyService 一鍵服務
echo ===========================================================
::pause
::======================以下部分勿隨意修改==========================
set s32=%windir%\system32
set reg_file=EasyService.reg
 
net stop %service_name% 2>nul
copy instsrv.exe %s32%
copy srvany.exe %s32%
 
%s32%\instsrv.exe %service_name% remove 2>nul
%s32%\instsrv.exe %service_name% %s32%\srvany.exe >nul
 
::設置服務的啓動方式 auto:自動 demand:手動 disabled:禁用
sc config %service_name% start= %strt%
sc description %service_name% "%service_description%"
 
echo 生成註冊表文件...
echo Windows Registry Editor Version 5.00 > %reg_file%
echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\%service_name%\Parameters] >> %reg_file%
echo "Application"="%prog_path%" >> %reg_file%
 
echo 導入註冊表文件...
%reg_file%
 
net start %service_name%
echo ===========================完成============================
pause
使用方法:
修改腳本中service_name、service_description、prog_path、strt這4個變量的內容,分別設置爲服務名、功能描述、程序路徑、啓動方式,保存後運行腳本,彈出是否導入註冊表,選是,大功告成,已在winxp及win2k下測試通過。

最後提供文中用到的幾個文件,包括批處理程序。

把EXE文件註冊成服務的方法(包含批處理程序).rar

--------------------------------------------------------

以上兩種方法,一種手動,另一種批處理。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章