Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Creating an IIS 6.0 Application Pool using Powershell

How do I create an Application Pool on IIS 6.0 using a PowerShell script?

This is what I have come up with so far ...

$appPool = [wmiclass] "root\MicrosoftIISv2:IIsApplicationPool"

Thanks

like image 516
Robert Wagner Avatar asked Nov 04 '08 08:11

Robert Wagner


People also ask

How do I check IIS application pool status in PowerShell?

To get the IIS application pool names using PowerShell, you need to use the IIS PSDrive but for that, we need the IIS PowerShell module WebAdministration or IISAdministration on the server we are running the command. If the WebAdministration module is already installed, use the below command to import the module.


1 Answers

Thought I might share the script I came up with. Thanks to goes to Steven and leon.

# Settings
$newApplication = "MaxSys.Services"
$poolUserName = "BRISBANE\svcMaxSysTest"
$poolPassword = "ThisisforT3sting"

$newVDirName = "W3SVC/1/ROOT/" + $newApplication
$newVDirPath = "C:\" + $newApplication
$newPoolName = $newApplication + "Pool"

#Switch the Website to .NET 2.0
C:\windows\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -sn W3SVC/

# Create Application Pool
$appPoolSettings = [wmiclass] "root\MicrosoftIISv2:IISApplicationPoolSetting"
$newPool = $appPoolSettings.CreateInstance()
$newPool.Name = "W3SVC/AppPools/" + $newPoolName
$newPool.PeriodicRestartTime = 0
$newPool.IdleTimeout = 0
$newPool.MaxProcesses = 2
$newPool.WAMUsername = $poolUserName
$newPool.WAMUserPass = $poolPassword
$newPool.AppPoolIdentityType = 3
$newPool.Put()
# Do it again if it fails as there is a bug with Powershell/WMI
if (!$?) 
{
    $newPool.Put() 
}

# Create the virtual directory
mkdir $newVDirPath

$virtualDirSettings = [wmiclass] "root\MicrosoftIISv2:IIsWebVirtualDirSetting"
$newVDir = $virtualDirSettings.CreateInstance()
$newVDir.Name = $newVDirName
$newVDir.Path = $newVDirPath
$newVDir.EnableDefaultDoc = $False
$newVDir.Put()
# Do it a few times if it fails as there is a bug with Powershell/WMI
if (!$?) 
{
    $newVDir.Put() 
}

# Create the application on the virtual directory
$vdir = Get-WmiObject -namespace "root\MicrosoftIISv2" -class "IISWebVirtualDir" -filter "Name = '$newVDirName'"
$vdir.AppCreate3(2, $newPoolName)

# Updated the Friendly Name of the application
$newVDir.AppFriendlyName = $newApplication
$newVDir.Put()
like image 90
Robert Wagner Avatar answered Nov 15 '22 06:11

Robert Wagner