我试图编写一个powershell脚本来捕获我所有IIS应用程序的名称,并将它们转换回文件夹。然后采用相同的名称集并将其转换回应用程序。我的循环有问题,我相信这与输入变量$AppNames
的格式有关
我尝试了$AppNames.ToString()
,但是没有用。有任何想法吗?
$AppNames1 = Get-Webapplication -Site "Mgmtservice" | Select @{e={$_.Path.Trim('/')};l="Name"} | Format-Table -HideTableHeaders
$AppNames1
$Site = "MgmtService"
ForEach ($AppName in $AppNames)
{
Remove-WebApplication -Name $_ -Site MgmtService
}
Start-Sleep 6
ForEach ($AppName in $AppNames)
{
$Path1 = "IIS:\Sites\Mgmtservice\"
$Path = $Path1 + $AppName
ConvertTo-WebApplication -PSPath $Path
}
最佳答案
您的代码中有很多错误,例如G。您正在foreach循环中使用$_
,应该在其中使用$AppName
。或者,您遍历$AppNames
,但是将Get-Webapplication
的输出分配给$AppNames1
。另外,您不应在此处使用Format-Table
。
因此,我尝试修复所有问题,只需尝试一下:
$AppNames = Get-Webapplication -Site "Mgmtservice" | ForEach-Object { $_.Path.Trim('/')}
$AppNames | ForEach-Object { Remove-WebApplication -Name $_ -Site MgmtService }
Start-Sleep 6
$AppNames | ForEach-Object { ConvertTo-WebApplication -PSPath (Join-Path 'IIS:\Sites\Mgmtservice\' $_) }
关于powershell - 将IIS Web应用程序转换为文件夹并返回,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40751374/