2011-10-04 60 views
6

我們正在將100多個域移動到新的服務器上。我創建了一個腳本,允許使用簡單的BAT文件將網站條目和FTP條目添加到IIS 7中。我發現了幾個使用AppCmd ADD SITE的教程,效果很好。通過運行:: c:\ scripts \ createIIS.bat youdomainname.com。任何反饋? - 這是工作。通過腳本將網站和FTP添加到IIS 7中

@Echo off 
:: -------------------------------------------- 
:: Create IIS 7 Site Entry/FTP Site 
:: -------------------------------------------- 

:: Get variable from command %1 Root Domain Name. 
set rootDomainName = %1 

:: This is the path to the Web Pages on the server. 
set WebFile=C:\websites\ 

:: ADD NEW Directory 
MKDIR %WebFile%%1 

:: ADD IIS ENTRY 
%windir%\system32\inetsrv\AppCmd ADD SITE /name:%1 /bindings:http/*:80:%1,http/*:80:www.%1 /physicalPath:C:\websites\%1 

:: -------------------------------------------- 
:: CREATE FTP in IIS 
:: -------------------------------------------- 
%windir%\system32\inetsrv\AppCmd add vdir /app.name:"Default FTP Site/" /path:/%1 /physicalPath:"%WebFile%%1" 


echo New Directory Created: %WebFile%%1 
echo IIS Website Created: %1 and www.%1 
echo FTP SITE Created: %1 
echo ... 
echo ... 
echo COMPLETED! 
pause 

回答

5

偉大的腳本。儘管這不是一個真正的問題,但我對它進行了批量處理。

首先,我創建一個批處理文件,在網站上添加一個文本文件中讀取,您稍微修改批處理文件引用僅創建網站(無FTP的要求):

@Echo off 
:: --------------------------------------------------------------------------------------- 
:: Create Batched IIS 7 Site Entries 
:: 
:: Usage: CreateIISEntry.bat [websitename.com] (no www.) 
:: 

for /f %%X in (NewWebsiteEntries.txt) do CreateSingleIISEntry.bat %%X 


echo ... 
echo *** BATCH PROCESS HAS BEEN COMPLETED *** 

NewWebsiteEntries.txt包含的網站列表創建 - 每行一個(不包括WWW):

site1.com 
site2.com 
site3.com 

最後,創建該條目中的批處理文件:

@Echo off 
:: --------------------------------------------------------------------------------------- 
:: Create IIS 7 Site Entry 
:: 
:: Usage: CreateSingleIISEntry.bat [websitename.com] (no www.) 
:: --------------------------------------------------------------------------------------- 

:: Get variable from command %1 Root Domain Name. 
set rootDomainName = %1 

:: This is the path to the Web Pages on the server. 
set WebFile=C:\inetpub\wwwroot\ 

:: ADD NEW Directory 
MKDIR %WebFile%%1 
echo New Directory Created: %WebFile%%1 

xcopy C:\inetpub\wwwroot\NewWebsiteHolding\*.* %WebFile%%1 

:: ADD IIS ENTRY 
%windir%\system32\inetsrv\AppCmd ADD SITE /name:%1 /bindings:http/[YOUR IP ADDRESS OR *]:80:%1,http/[YOUR IP ADDRESS OR *]:80:www.%1 /physicalPath:%WebFile%%1 
echo IIS Website Created: %1 and www.%1 

#:: -------------------------------------------- 
#:: CREATE FTP in IIS 
#:: -------------------------------------------- 
#%windir%\system32\inetsrv\AppCmd add vdir /app.name:"Default FTP Site/" /path:/%1 /physicalPath:"%WebFile%%1" 
# 
# 


#echo FTP SITE Created: %1 
echo ... 
echo ... 
echo New website added ========================= %1 

因爲在我的情況下,並不是所有的新網站都會同時存在,我是一個默認的佔位符站點,其內容被複制到新創建的網站目錄中。

這會將所有網站添加到默認應用程序池。

就是這樣。