IIS Backup & Restore Sites & Application Pools 備份與還原 IIS 站台與應用程式集區
2023-02-10
筆記如何透過 appcmd 備份與還原 IIS 的站台以及應用程式集區設定,從而實現優雅地站台遷移以及毀損還原的作業 😏
說明
Backup Application Pools & Sites
%windir%\system32\inetsrv\appcmd list apppool /config /xml > D:\Apps.xml
%windir%\system32\inetsrv\appcmd list site /config /xml > D:\Sites.xml
Restore Application Pools & Sites
%windir%\system32\inetsrv\appcmd add apppool /in < D:\Apps.xml
%windir%\system32\inetsrv\appcmd add site /in < D:\Sites.xml
在還原時可能會發生集區已經存在的問題,可以前往下列路徑,手工預先移除 %systemroot%\system32\inetsrv\config\applicationHost.config。
另外要注意恢復集區之後,部分集區的 .NET CLR 版本可能會變成「沒有受控碼」,必須要手動修正為原本來源伺服器的設定。
Copy Files And ACLs
遠端伺服器需要以 UNC 的方式進行複製
robocopy \\server1\share1 \\server2\share2
/COPY:DATSOU /DCOPY:T /E /Z /S /USER:remote_user /PASSWORD:remote_password
| Option | |
|---|---|
| /E | 包含空資料夾 |
| /Z | Restartable Mode |
| /S | 包含子資料夾 |
| /COPY:DATSOU | 複製包含 ACLs |
| /DCOPY:T | 複製時間戳記 |
| /USER | 遠端 UNC 帳號 |
| /PASSWORD | 遠端 UNC 密碼 |
參考資料
注意 Windows 對於檔案複製與搬移的 NTFS 權限變化 [重要] | Will 保哥
移動服務所需的檔案時應連帶複製完整的 NTFS ACLs 資訊 | Will 保哥