[IIS 7] 如何使用指令在IIS上自動化建置網站

  • 4567
  • 0

摘要:[IIS 7] 如何使用指令在 IIS 上自動化建置網站

因為需要大量安裝佈署網站的需求,筆者查了 IIS 的指令來完成自動化設定。
 

注意!以下指令皆需要有管理者權限才可以執行

 

我們在 IIS7 上面的操作應該都可以用 APPCMD.exe 來完成

%windir%\System32\inetsrv\appcmd.exe

 
 

網站建立需求

1.     網站名稱為 MyWebSite

2.     實體路徑為 C:\inetpub\MyTestWebSite

3.     網站版本.NET Framework 4.0

4.     開啟特定資料夾權限

5.     有 Windows 驗證功能

 

設定步驟

1.     設定資料夾權限

2.     建立應用程式集區

3.     建立網站

4.     開啟 Windows 驗證

 
※本文假設您家的 IIS 已經註冊.NET 4.0 了,這樣就不用執行以下指令
 

%WINDIR%\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe /i

 
1.     設定資料夾權限
我需要 IIS_IUSRS 及 IUSR,並且有修改的權限。使用下列指令
 

// 為資料夾加入 IIS_IUSRS 群組,有修改權限

cacls MyTestWebSite /T /E /G IIS_IUSRS:C

// 為資料夾加入 IUSR 成員,有修改權限

cacls MyTestWebSite /T /E /G IUSR:C
2.     建立 MyAppPool 應用程式集區 (.NET 4.0)
假設您有建立的需求的話執行以下步驟,不然就可以跳過啦
 
APPCMD ADD APPPOOL /name:MyAppPool /managedRuntimeVersion:"v4.0"
 
 
3.     建立 MyWebSite 網站
APPCMD ADD SITE /name:”MyWebSite” /bindings:http://*:8080 /physicalPath:"c:\inetpub\MyTestWebSite"
 
※筆者使用上述指令建立網站時,發現網站會套用預設的 Default AppPool,所以接著執行為網站設定 MyAppPool 集區的指令
APPCMD SET SITE /site.name:MyWebSite /[path='/'].applicationPool:MyAppPool
 
 
4.     開啟 Windows 驗證
因為筆者目前網站有這個功能,所以連 Windows 驗證也需要執行
 
// 先解除鎖定 Windows 驗證功能
APPCMD UNLOCK CONFIG “MyWebSite” /section:windowsAuthentication
// 開啟設定 (上面那行必須先執行,不然會出現下列訊息)

//"這個設定區段不能在這個設定區段不能這個路徑中使用。當區段在父層級被鎖定時就會發生這種情況..."

APPCMD SET CONFIG "MyWebSite" /section:windowsAuthentication /enabled:true
 
有沒有發現在 IIS 的驗證設定畫面中為什麼依然沒有出現 Windows 驗證的選項,這是因為需要先在控制台\程式集\程式和功能\開啟或關閉 Windows 功能視窗中打開 Windows 驗證選項
按下確定之後,重新開啟 IIS 應該就會看到選項出現了,而且也啟用功能
 
 
 

完成!

可以將這些指令寫在批次檔或安裝檔製作程式,就可以完成自動化安裝。但是離一鍵安裝功能還有一段路好走呢,至少在上述範例沒有打包成安裝檔。

 

 

參考資料

Getting Started with AppCmd.exe

CACLS.exe

Understanding Built-In User and Group Accounts in IIS 7