用 Google 搜尋:

無聊人的無聊故事

十月 17 日, 2006

以服務形式啟動 Windows 內的 PPPoE 撥號網路

文章類別:Server 相關, 電腦相關 — by C.H.Weng @ 11:01 下午

這是前陣子我自己遇到的一個問題,經過幾天的努力,終於研究出最佳的解決方法了,有需要的人不妨參考看看。

先解釋一下何謂“服務”(Services)。從 Windows 2000 開始(Windows NT 不確定有沒有),微軟提供了一種稱做“服務”的程式運行方式,讓一些系統中較重要的程式在登入之前就開始運作,例如伺服器主機中常用的各種伺服器軟體,以及一些較接近系統核心的低階程式等等。

以服務的方式來運行程式,最大的好處就是不必登入就可以開始運作,同時也不容易被一般的使用者不小心關掉。但是在實際應用上,卻有著諸多的限制,最主要是因為,要以服務形式來運行的程式,必須有特殊的設計,並不是所有程式都可以這麼做的。

回到正題,Windows 內建的 PPPoE 上網程式,其捷徑都是一串機碼的名稱,沒辦法直接看到真正的執行方式,更不用說加入服務了。花了點時間上 Google 搜尋,終於從一堆沒什麼條理的資料中理出頭緒來了。

首先要知道,Windows 內建的 PPPoE,是由 %SystemRoot%\system32\rasphone.exe 這個程式來控制的。雖然這個程式執行的時候會跳出視窗模式,不過其實她還是有命令列的參數可以用的,只要加上 /? 參數就可以查詢詳細的參數用法了。

查了用法之後,可以知道如果要用命令列直接上線,可以用這樣的指令“%SystemRoot%\system32\rasphone.exe -d "ADSL"”,其中的參數 -d 是撥號的意思;而 ADSL 則是你的連線項目的名稱。

接下來要實際執行這個指令看看。在預設的情況下,執行這個指令後應該會跳出提示帳密的連線視窗,那要如何跳過這個視窗直接連線呢?這個設定是在網路連線項目的內容選項中。首先你必須確定已經有儲存連線的使用者名稱與密碼,接著執行 %SystemRoot%\system32\rasphone.exe "ADSL",在跳出來的視窗中按下內容選項,把提示名稱、密碼、憑證等前面的打勾取消掉然後確定。設定完畢後,再用上面的 PPPoE 指令試試看,是不是可以直接連線了呢?

當上面的前置作業都已經完成後,接下來就是準備將這個連線安裝為可以自動執行的服務了。在這邊我們需要兩個程式,分別是 instsrv.exesrvany.exe。這兩個程式並不內建於 Windows,而是 Windows Server 2003 Resource Kit Tools 中提供的程式。你可以直接用下面的連結下載獨立的這兩個檔案,

http://www.box.net/public/static/1zmelv504x.rar

或是自行下載 Windows Server 2003 Resource Kit Tools 來安裝,再由程式資料夾中將這兩個程式複製出來。

這兩個程式的功能分別如下:

  • instsrv.exe - 將程式安裝為系統服務
  • srvany.exe - 讓原本不能當作系統服務的程式以系統服務的方式來運行

為了方便使用,我們將這兩個檔案複製到 %SystemRoot%\system32 資料夾中,接著先用以下指令來安裝一個系統服務:

C:\WINDOWS\system32\instsrv.exe ADSL_DialUp C:\WINDOWS\system32\srvany.exe

接著再用以下這個登錄檔,來告訴 srvany.exe 我們要執行哪一個程式來作為系統服務?

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ADSL_DialUp\Parameters]
"Application"="C:\\WINDOWS\\system32\\rasphone.exe"
"AppParameters"="-d \"ADSL\""
"AppDirectory"="C:\\WINDOWS\\system32\\"

其中,ADSL_DialUp 為服務的名稱,你可以依照自己的喜好來設定;而 ADSL 則是 PPPoE 連線的項目名稱,也請按照實際狀況自己調整。

執行完上述的步驟後,整個安裝步驟就大公告成囉!請重新開機,看看 PPPoE 連線是否如預期的狀態正確運行了?

共有 15 條評論


  1. 我以前也寫過一篇類似的文章
    也許您也可以參考一下
    如何讓Windows NT 5以上版本的windows 自動PPPoE撥號
    http://www.wretch.cc/blog/eddyshieh&article_id=4102023
    也許您也可以給我一些指教....
    Thank you....
    :-)

  2. 可以借轉您這篇文章至我的網頁嗎?我會註明來源出處,謝謝您!

  3. 原來也有其他人研究過這個問題,我還以為只有我會有這種奇怪的要求:p

    謝謝 Eddy 提供另一種思考方式,我還沒想過原來也可以這麼做哩!

    也承蒙 sssun 看得起我的一點小小的心得分享,如果這個小技巧幫得上您的忙,就請儘管轉錄來造福大家吧。不過記得附上出處,來滿足我的一點點小小的虛榮心囉!感謝~

  4. BTW
    不管是你的作法還是我的解法
    都還是有一個問題
    無法做到自動DNS對應domain name
    尤其是如果是dynamic IP 而非static IP
    您還有比較好的作法嗎??
    願意分享一下嗎??
    Thanks a lot!!

  5. 如果是用 DNS2Go 一類的服務,將客戶端用上面的方法一樣設定為系統服務,應該也可以在不登入的狀況下執行吧……

    我沒試過,有需要的人不妨試試看吧。

    不過話說回來,目前要有一個固定 IP 的門檻比起之前已經大大降低不少了,有心架站的話還是去弄一個固定 IP 來玩比較方便吧。

  6. well...
    我利用 WinRAR、reg 做了一個簡單的自動安裝程式...
    點兩下就完成服務安裝順便啟動...

    不過有個前提:必須自行建立 PPPoE 撥號、自行設定為直接連線、ADSL ID 必須為『ADSL』

    # Download: http://tinyurl.com/yhy2du

  7. 懶人包都出來了XD

    謝謝你的分享摟:D

  8. [...] 一開始找尋的方法是將應用程式(Application)改成以系統服務(NT Service)的方式運行,「以服務形式啟動 Windows 內的 PPPoE 撥號網路」這一篇教學很完整,啟動服務所需要用到的instsrv.exe及srvany.exe也可以從Windows的網站上免費下載。或著是使用其他軟體來將應用程式轉成系統服務,然而除了DynaSvr-服務控制程序(NT Service Controller)大陸簡體程式是免費之外,大部分都是要收費付費軟體。 [...]

  9. [...] 一開始找尋的方法是將應用程式(Application)改成以系統服務(NT Service)的方式運行,「以服務形式啟動 Windows 內的 PPPoE 撥號網路」這一篇教學很完整,啟動服務所需要用到的instsrv.exe及srvany.exe也可以從Windows的網站上免費下載。或著是使用其他軟體來將應用程式轉成系統服務,然而除了DynaSvr-服務控制程序(NT Service Controller)大陸簡體程式是免費之外,大部分都是要收費付費軟體。 [...]

  10. netsh interface ip set ad "區域連線" DHCP
    netsh interface ip set dns "區域連線" DHCP
    %SystemRoot%\system32\rasphone.exe -d "hinet"

    這樣就可以利用.com檔來使得IP為DHCP模式了

    詳細的netsh用法請參閱google大神

  11. 想請問一下,在windows XP是一樣的設定嗎??

  12. Windows XP 專業版也適用這個方法,家用版的就不確定囉。

  13. 感謝分享,請問可以轉貼至我們的網頁嗎??
    會註明來源出處的,謝謝!

  14. 真的還不錯做用, 但是不適合有介面的, 因為有執行, 但是沒介面

  15. 這個主要是用在伺服器用途的電腦上,所以沒有介面反而比較好。

    一般使用的話,把撥號的捷徑放到啟動資料夾,就可以達到一登入即自動連線的效果了。

發表評論

(必須輸入。)
(必須輸入,但不會公開。)
(選擇性輸入、公開資訊。)

不可以 使用 HTML 標籤;你 可以 使用 BBCode 標籤。
目前支援的標籤: b color email i img size strong u url。

Comment Preview
↑Meta↑
↑Authors↑
↓Search↓
↑Categories↑
↑Recent Posts↑
↓Most Popular Posts↓
↑Recent Comments↑
↓Recent Trackbacks↓
↓Archives↓
↓Themes↓
Powered by WordPress™
Valid RSS & Atom Feed