如何使用 PowerShell 脚本在 IIS 6.0 上创建应用程序池?
这是我到目前为止想出的......
$appPool = [wmiclass] "root\MicrosoftIISv2:IIsApplicationPool"
谢谢
如何使用 PowerShell 脚本在 IIS 6.0 上创建应用程序池?
这是我到目前为止想出的......
$appPool = [wmiclass] "root\MicrosoftIISv2:IIsApplicationPool"
谢谢
想我可能会分享我想出的脚本。感谢 Steven 和 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()
这不是最明显的过程,但这对我有用..
$AppPoolSettings = [wmiclass]'root\MicrosoftIISv2:IISApplicationPoolSetting'
$NewPool = $AppPoolSettings.CreateInstance()
$NewPool.Name = 'W3SVC/AppPools/MyAppPool'
$Result = $NewPool.Put()
调用 Put() 可能会出错,但第二次(或第三次)调用它应该可以正常工作。这是由于 PowerShell V1 和 WMI 的问题。
一切都很好!我修改了代码,以便在初始错误之后显式调用 $newPool.Put() 命令。谢谢你的帮助!