2014-04-25 57 views
4

創建的網站有沒有一種方法來創建與發佈管理V12網站,其中將包括一個主機頭的選擇嗎?發佈管理12 - 與主機頭

我的目標是能夠舉辦一臺服務器上的多個站點,都具有不同的主機頭綁定到端口80。即http://project1.development.local/,http://project2.development.local/

我可以使用AppCmd.exe的主機頭創建一個網站,但這需要一個管理權限。想到使用PowerShell,但會觸發UAC提示。

對於現在,我不必手動創建服務器的網站,包括主機頭,我想有一個完全自動化的釋放過程。

TIA!

回答

4

有沒有什麼現成的它,但幸運的是,我砍死的東西一起處理站點綁定:

param( 
$SiteName=$(throw "Site Name must be entered"), 
$HostHeader, 
$IpAddress, 
$Port, 
$RemoveDefault=$(throw "You must specify true or false") 
) 


Import-Module WebAdministration 

try { 
    $bindingExists = (Get-WebBinding "$SiteName" -Port "$Port" -Protocol "http" -HostHeader "$HostHeader" -IPAddress "$IpAddress") 

    if (!$bindingExists) { 
     Write-host "Creating binding for $SiteName : Host header $HostHeader and IP Address $IpAddress" 
     New-WebBinding "$SiteName" -Port $Port -Protocol "http" -HostHeader "$HostHeader" -IPAddress "$IpAddress" 

    } 
    else { 
     Write-host "Site $SiteName already has binding for host header $HostHeader and IP Address $IpAddress" 
    } 

    if ($RemoveDefault -eq "true") { 
     $defaultBinding = Get-WebBinding "$SiteName" | where {$_.bindingInformation -eq "*:80:" } 
     if ($defaultBinding -ne $null) { 
      Write-Host "Default binding exists... removing." 
      $defaultBinding | Remove-WebBinding 
     } 
     else { 
      Write-Host "Default binding does not exist" 
     } 
    } 
} 
catch { 
    Write-host $_ 
    exit 1 
} 
exit 0 

可以在RM創建一個自定義的工具來利用此腳本,只需將它傳遞給param塊中指定的參數即可。

你永遠不應該有使用Appcmd.exe ......如果內置工具不能滿足您的需求,WebAdministration PowerShell的模塊應該是能夠做到的一切。