把批處理(bat)做成Windows服務(Server)


1、工具軟件

  instsrv.exe 和 srvany.exe,下載:https://pan.baidu.com/s/1PI6qMjdVkuYyjRLokt7xRw 密碼:fc1o

 

2、編輯 bat

bat代碼示例:

@echo
:a
python transfer.py
ping 127.0.0.1 -n 60 >nul
goto a
 

3、命令方式增加服務

服務名稱 暫擬為 Transfer,管理員權限下的cmd 命令,格式:instsrv.exe 服務名 srvany.exe

舉例:D:\instsrv.exe Transfer D:\srvany.exe

 

 

 

 

 

4、修改服務參數

(1)打開注冊表(win+r運行regedit)

查找路徑:HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Transfer 

 

(2)Transfer服務增加子項 Parameters

 

(3)給子項 Parameters 增加兩個字符串類型的參數 AppDirectory 和 Application,並指定參數值

本例中

AppDirectory = "D:\Coding\transfer"(程序所在文件主路徑)

Application = "D:\Coding\transfer\transfer.bat"(程序運行的bat路徑)

 

 

 

 

5、查看服務列表,並啟動 Transfer 服務

查看服務列表(win+r運行services.msc),啟動 Transfer  服務

 

 

 

 

6、移除相關服務

管理員權限下的cmd 命令,格式:instsrv.exe 服務名 remove

舉例:D:\instsrv.exe Transfer remove

 

 

 

7、懶人必備

批處理實現服務自動增加和參數修改

拷貝一下內容,並按需修改路徑和服務名,寫入bat,執行下就好

@echo off
echo 獲取Administrator權限
cacls.exe "%SystemDrive%\System Volume Information" >nul 2>nul
if %errorlevel%==0 goto Admin
if exist "%temp%\getadmin.vbs" del /f /q "%temp%\getadmin.vbs"
echo Set RequestUAC = CreateObject^("Shell.Application"^)>"%temp%\getadmin.vbs"
echo RequestUAC.ShellExecute "%~s0","","","runas",1 >>"%temp%\getadmin.vbs"
echo WScript.Quit >>"%temp%\getadmin.vbs"
"%temp%\getadmin.vbs" /f
if exist "%temp%\getadmin.vbs" del /f /q "%temp%\getadmin.vbs"
exit

:Admin
echo 成功取得Administrator權限

D:\instsrv.exe Transfer D:\srvany.exe

reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\aimaService3\Parameters
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Transfer\Parameters /v AppDirectory /d "D:\Coding\transfer" /t reg_sz /f
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Transfer\Parameters /v Application /d "D:\Coding\transfer\transfer.bat" /t reg_sz /f
參考資料

https://jingyan.baidu.com/article/cd4c29791c5a16756e6e60a7.html 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM