且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

使用Powershell在非应用程序的文件夹中创建Web应用程序

更新时间:2022-11-05 17:51:04

我知道这篇文章有点旧了但这里是我编写的powershell脚本,它将现有文件夹转换为IIS中的Web应用程序,或者如果它不存在则创建一个新的文件夹和Web应用程序。它还为它创建了应用程序池。它接收一组应用程序名称,以便您可以创建多个Web应用程序。这是我的第一个powershell脚本,所以如果你有任何建议可以随意发表评论。

I know this post is a little older but here is a powershell script I wrote that converts an existing folder to a web application in IIS or if it doesn't exist creates a new folder and web app. It also creates the app pool for it as well. It receives an array of app names so you can create more than one web application. This was my first powershell script so if you have any suggestions feel free to comment.

#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";
}
}