【IIS】搬設全部IIS的網站及設定至另一台機器上

AhChao
雜食性的貓
Published in
Apr 26, 2021

開發的時候有時候會有機器切換的需求,如果是在Windows上用IIS架站的工程師,有時候會面臨需要重新把網站全部設一次的困擾,之前遇到這個需求時,想說這個肯定能用Script來處理,果不其然是可以透過Script來解決,紀錄一下當下使用的Script與遇到的問題。

  1. 在想複製的該台機器跑這個指令
    %windir%\system32\inetsrv\appcmd list apppool /config /xml > c:\apppools.xml
    會把該台機器上的iis app pool相關清單匯出成xml檔案,最後面是檔案的名稱與路徑,也可以不要放在C:
  2. 一樣是想複製的機器跑這個指令
    %windir%\system32\inetsrv\appcmd list site /config /xml > c:\sites.xml
    會把該台機器上的iis site的設定匯出成xml檔案,最後面是檔案的名稱與路徑,也可以不要放在C:
  3. 把上述兩個檔案複製到你想搬遷的機器上,假設為C:的跟目錄
  4. 依序跑下面兩個指令
    %windir%\system32\inetsrv\appcmd add apppool /in < c:\apppools.xml
    %windir%\system32\inetsrv\appcmd add site /in < c:\sites.xml
    匯入設定檔上去
  5. 匯出完成!

如果一切順利的話,走完上面五個步驟就沒問題了。

不過筆者自己有遇到一個問題:

message:Failed to add duplicate collection element “yoursite”

那時候就在想,明明這台機器上面是沒有相關的設定的,也又檢查了一遍重複的網站,為什麼會遇到這個錯誤訊息呢?

後來問問萬能的Google大神,發現:原來錯誤訊息指的Duplicate collection包括Site Id重複的狀況,當下我轉移的目的地的確有一些Site殘留,而匯出的站台裡也包括Site Id前面的資料,這下就恍然大悟了,把目標機器的IIS,不需要的網站與Pool都移除,再次執行匯入,就成功的拿到執行成功的訊息了!

--

--

AhChao
雜食性的貓

我的三個關鍵字 : 程式、遊戲、學習 | 3 Key Words About Me : Programing , Gaming, Learning