在64位windows下使用instsrv.exe和srvany.exe建立windows服務[轉]

來源:互聯網
上載者:User

標籤:

本文轉自:https://www.iflym.com/index.php/computer-use/201205020001.html

 

在32位的windows下,包括windows7,windows xp以及windows 2003,都可以使用instsrv.exe和srvany.exe來建立自訂的windows服務。比如,我們有一個bat檔案,用於將指定的程式作為服務進行啟動,使用一般的工具都不可以進行此類工作,而使用由windows 2003的資源工具包windows toolkit中所帶的instsrv就可以。

詳細的用法這裡就不再具體敘述,簡單一點就是使用instsrv將相應的srvany註冊成服務,然後在註冊表中增加相應的Application和AppDirectory參數,用於srvany啟動我們所相應的服務。如下列代碼所示://將相應程式產生成服務

123456789 set s32=%windir%\system32%s32%\instsrv.exe %service_name% %s32%\srvany.exe //在註冊表中更新相應的參數echo Windows Registry Editor Version 5.00> %reg_file% echo >> %reg_file%echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\%service_name%\Parameters] >> %reg_file%echo "Application"="%prog_path%\\%prog_name%" >> %reg_file%//程式地址echo "AppDirectory"="%prog_path%" >> %reg_file%//程式目錄

以上的代碼在所有的32位系統之上都可以正常的運行,包括windows 2000。然而,在64位的windows下,以上的代碼卻失效了。會報一個以下錯誤:

1 Unable to find the file at the given path

在仔細檢查了參數之後,確定這是由於系統原因所引起的。

最終的原因在於,我們所使用的instsrv和srvany是32位的,而windows現在沒有相對應的64位相對應工具發布。而程式本身是沒有問題的,問題在於我們將instsrv和Srvany放到windows/system32正面,而在64位系統中,這裡應該存放64位的程式,所以最終的解決問題很簡單。我們只需要將這兩個程式再copy至32位程式應該放置的地方,比如windows/sysWow64目錄,這樣就可以了。原先的相應步驟以及程式根本就不需要作任何改動。instsrv會自動地找到原先應該放在system32下的程式,而這個程式現在被放置在了SysWow64目錄下。

簡單一點的解決方案就是,將instsrv和srvany程式在windows/sysWow64目錄下再copy一份,相當於在system32和sysWow64下都有程式,這樣問題即解決。更底層的原因,也許只有微軟能解釋了,簡而言之,在64位系統下,32位程式是看不到放置在system32下面的程式的,而它應該訪問的system32目錄被系統映射到了sysWow64目錄下了,在運行時系統會自動地將相應的sysWow64目錄映射為程式所認為的system32。
參考文檔:http://en.wikipedia.org/wiki/WoW64

在64位windows下使用instsrv.exe和srvany.exe建立windows服務[轉]

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.