Powershell 将IIS Web应用程序转换为文件夹并返回

Powershell 将IIS Web应用程序转换为文件夹并返回,powershell,iis,Powershell,Iis,我正在尝试编写一个脚本,捕获所有IIS应用程序的名称,并将它们转换回文件夹。然后获取相同的名称集并将其转换回应用程序。我的循环有问题,我相信这与输入变量的格式有关 我尝试了一个$AppNames.ToString(),但没有成功。有什么想法吗 $AppNames1 = Get-Webapplication -Site "Mgmtservice" | Select @{e={$_.Path.Trim('/')};l="Name"} | Format-Table -HideTableHeaders

我正在尝试编写一个脚本,捕获所有IIS应用程序的名称,并将它们转换回文件夹。然后获取相同的名称集并将其转换回应用程序。我的循环有问题,我相信这与输入变量的格式有关

我尝试了一个
$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循环中使用了
$\uu
,您应该在其中使用
$AppName
。或者您迭代了
$AppNames
,但将
Get-Webapplication
的输出分配给了
$AppNames1
。另外,您不应该在那里使用
格式表

所以我试着修复所有这些东西,试一下:

$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\' $_) }

我可以想象格式表与输出混乱…有什么区别
$\ucode>或
$appname
。它们是相同的?@4c74356b41否,
$是管道对象,而
$appname
是在迭代中分配给当前元素的变量。他们没有共同点,
$\uu
在他的例子中不起作用。马丁,谢谢你的教训。我有点自学成才,所以我感谢您为我澄清$uu和$AppName。我会检查代码并让你知道。