【发布时间】:2019-01-09 12:02:42
【问题描述】:
我需要创建一个 PowerShell,它首先构建 50 个 IIS 应用程序池,并为每个应用程序池分配一个应用程序池标识(用户名和密码)。脚本的下一部分是将站点子文件夹转换为应用程序。在转换过程中,我必须分配每个应用程序使用我上面创建的特定应用程序池。这是我的部分工作的脚本。
Import-Module WebAdministration
$AppPools = @ (“site1-app1”,”site1-app2”,”site1-app3”,”site1-app4”,”site1-app5”…”site1-app50”)
$AppPoolFolders = @ (“app1”,”app2”,”app3”,”app4”,”app5”…”app50”)
$username = ‘domain\Site1SvcAct’
$password = ‘Site1SvcActPassword’
########——Create App Pool and Set Username & Password——########
foreach ($App in $AppPools) {
New-WebAppPool $App
Set-ItemProperty IIS:\AppPools\$App managedPipelineMode 0
Set-ItemProperty IIS:\AppPools\$App managedRuntimeVersion v4.0
Set-ItemProperty IIS:\AppPools\$App -Name processmodel -value @{userName = $username;password=$password;identitytype=3}
########——Convert /folder to Application and set to use App Pool ——########
foreach ($Folder in $AppPoolFolders) {
ConvertTo-WebApplication -ApplicationPool $App -PSPath ‘IIS:\Sites\Site1\$Folder’
}
}
应用程序池已使用正确的应用程序池标识成功创建,但应用程序转换部分工作。这些文件夹按预期成为子应用程序,但它们没有运行正确的应用程序池标识。它将所有应用程序池文件夹分配给第一个应用程序池。
app1 : site1-app1
app2 : site1-app1
app3 : site1-app1
.
.
.
app50 : site1-app1
应该是这样的:
app1 : site1-app1
app2 : site1-app2
app3 : site1-app2
.
.
.
app50 : site1-app50
所以文件夹 1 应该分配给应用程序池 1,文件夹 2 应该分配给应用程序池 2 等等...我知道这是因为我嵌套了“foreach”循环,但我不知道如何修复循环以获取我的所需的输出。任何想法如何解决这一问题?
【问题讨论】:
标签: powershell iis-8 powershell-4.0