2014-01-16 31 views
4

我想在IIS中創建不在IIS站點根目錄中的Web應用程序。使用Powershell在不是應用程序的文件夾中創建Web應用程序

即MySite/beta/WebApplication。

這是我的出發點:

新的WebApplication 「的WebApplication」 -Site 「mysite的」 -ApplicationPool 「MyAppPool」 -physicalPath 「C:\網站\ mysite的\測試\ WebApplication的」

這造成我的物理結構,我想C:\Sites\MySite\beta\WebApplication,反而使得IIS是這樣的:

的MySite(IIS網站)

的WebApplication(IIS的WebApplication)

β(文件夾)

的WebApplication(文件夾)

有沒有辦法這可以通過PowerShell中做什麼?我真的不想beta是一個Web應用程序,只是一個文件夾。

+0

我有這樣的確切要求,用戶想要v104,v105,像你這樣的beta版本。你現在有解決方案嗎? –

回答

4

由於您使用的是由「MySite」集合使用的相同物理文件存儲庫,因此它將創建「測試版」文件夾。如果您將這個新的Web應用程序放置在它自己的路徑中(即「C:\ Sites \ WebApps \ WebApplication」),您將獲得所需的結果。下面的代碼爲我工作。

New-WebApplication "TestingViaPosh" -Site "Default Web Site" -ApplicationPool "DefaultAppPool" - 
PhysicalPath "C:\Users\MyUserId\Documents\TestWebApp" 

編輯:創建一個網站的根目錄下的文件夾中的Web應用程序,你需要在你想要的網站首先創建的文件夾(即「C:\網站\ mysite的\ Beta版」) 。然後,PowerShell命令看起來就像這樣:

New-WebApplication "TestingViaPosh" -Site "Default Web Site\Beta" -ApplicationPool "DefaultAppPool" -PhysicalPath "C:\Users\MyUserId\Documents\TestWebApp" 
+0

但是應用程序創建的地方在哪裏?直接在'Default Web Site'或者'beta'文件夾下?我知道它的物理位置,我關心它在IIS管理器中的樣子。 –

+0

對我而言,新的Web應用程序是在默認網站下創建的。在這個例子中沒有beta文件夾。只需將文件分別放置在「MySite」和新Web應用程序的位置即可。 – websch01ar

+0

不幸的是,這是我想解決的問題。我不希望Web應用程序位於網站的根目錄,我希望它出現在該文件夾中。 –

9

我知道這個帖子是年紀大一點的,但這裏是一個PowerShell腳本我寫了IIS中的現有文件夾轉換爲Web應用程序,或者如果它不存在創建一個新的文件夾和Web應用程序。它也爲它創建應用程序池。它接收一組應用程序名稱,以便您可以創建多個Web應用程序。這是我的第一個PowerShell腳本,所以如果你有任何建議可以隨意發表評論。

#Receives an array of appnames and creates the app pools and web applications or converts the folder to an application 

Param([parameter(Mandatory=$true)][string[]]$appNames) 
$useDefaultPhysicalPath = Read-Host "Would you like to use the default physical path? (C:\inetpub\wwwroot\)"; 
Import-Module WebAdministration; 

$physicalPath = "C:\inetpub\wwwroot\"; 
if(!($useDefaultPhysicalPath.ToString().ToLower() -eq "yes" -or $useDefaultPhysicalPath.ToString().ToLower() -eq "y")) 
{ 
    $physicalPath = Read-Host "Please enter the physical path you would like to use with a trailing \ (do not include the app name)"; 
} 


$appPath = "IIS:\Sites\Default Web Site\"; 

foreach($appName in $appNames) 
{ 

if((Test-Path IIS:\AppPools\$appName) -eq 0) 
{ 

    New-WebAppPool -Name $appName -Force; 
} 

if((Test-Path $appPath$appName) -eq 0 -and (Get-WebApplication -Name $appName) -eq $null) 
{ 
    New-Item -ItemType directory -Path $physicalPath$appName; 
    New-WebApplication -Name $appName -ApplicationPool $appName -Site "Default Web Site" -PhysicalPath $physicalPath$appName; 
} 
elseif((Get-WebApplication -Name $appName) -eq $null -and (Test-Path $appPath$appName) -eq $true) 
{ 
    ConvertTo-WebApplication -ApplicationPool $appName $appPath$appName; 
} 
else 
{ 
    echo "$appName already exists"; 
} 
} 
+0

還有一個額外的測試版(文件夾)。 –

相關問題