Creating an IIS 6.0 Application Pool using Powershell

后端 未结 3 1921
忘掉有多难
忘掉有多难 2021-02-04 19:24

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\\Micro         


        
相关标签:
3条回答
  • 2021-02-04 19:48

    It isn't the most obvious process, but here is what worked for me..

    $AppPoolSettings = [wmiclass]'root\MicrosoftIISv2:IISApplicationPoolSetting'
    $NewPool = $AppPoolSettings.CreateInstance()
    $NewPool.Name = 'W3SVC/AppPools/MyAppPool'
    $Result = $NewPool.Put()
    

    You might get an error with the call to Put(), but calling it a second (or third) time should make it work. This is due to an issue with PowerShell V1 and WMI.

    0 讨论(0)
  • 2021-02-04 19:56

    All is well! I modified the code so there is an explicit call to the $newPool.Put() command after the initial error. Thanks for your help!

    0 讨论(0)
  • 2021-02-04 20:00

    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()
    
    0 讨论(0)
提交回复
热议问题