The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

如何變更 IIS 中網站的識別元編號

不知道各位有沒有想過為什麼 IIS 中的網站排序都亂亂的,以下圖為例,其實 IIS 6.0 左邊的網站清單,其實是依據每個網站站台的 "識別元(Identifier)" 進行排序的,而且還以「字串」比對的方式做排序,重點是透過 MMC 控制台的 UI ( 網際網路資訊服務管理員) 是沒辦法修改 "識別元(Identifier)" 的,所以每次新增的網站就會被指派一個 "看似亂數" 的編號。

 網際網路資訊服務 (IIS) 管理員

這個看似亂數的識別元編號,其實並非真的亂數!上週我們有個客戶的新網站要上線,他們的網站是採用 WebFarm 架構,架設了 4 台 IIS 主機,而每一台主機 IIS 中的網站站台都是我親手設定的,當然所有站台設定的資料、參數、路徑都是一樣的,結果後來竟發現這四台不同時間設定的網站竟然識別元(Identifier)完全一模一樣。我原本認為識別元應該是亂碼才對,而這樣的結果因為跟我的認知有些差異,讓我興起了研究的心,進而更加瞭解如何操作這個識別元。

如何變更 IIS 中網站的識別元編號

要改正預設排序的問題,就可以透過修改識別元來解決,而排序過的網站就會很順暢,而且下次看到自己定義的識別元也感覺比較親切一些。(不好意思...又不自覺的透露出龜毛的性格 XD )

我已經提過好多次的 adsutil.vbs 工具,不過這次要講的卻是文件上都沒提過的 "MOVE" 指令。當然,首先你要先查出你網站的識別元編號,並且記得將該站台先關閉喔!

假設是 872623598,而你要改成 10001,就可以用以下指令達成:

cd /d c:\Inetpub\AdminScripts
adsutil.vbs move w3svc/872623598 w3svc/10001

說實在的 adsutil.vbs 工具真的很強,很多指令與用法都隱藏在程式裡,並沒有文件說明。因為這工具是用 VBScript 寫成的,程式本身並沒有編碼,所以有興趣的人都可以直接開起來研究看看,像是之前介紹過的 "如何批次修改 Web Farm 中各主機的 IIS Log 的擴充紀錄選項" 文章,就是我直接看 Code 之後發現原來有個 -s 參數可以指定主機名稱進行遠端設定,讓我可以透過指令一次修改所有主機的站台參數。

注意事項

當你修改了識別元(Identifier)後,原本在 C:\WINDOWS\system32\LogFiles 目錄下的這些以識別元(Identifier)為主的目錄還會存在,但是不會再寫入到舊的資料夾中,而是會建立新的目錄,如果是我們剛剛的例子來說,網站站台的新目錄就會是 W3CSVC10001 了,是不是比較友善呢!^^

C:\WINDOWS\system32\LogFiles

相關連結