【发布时间】:2014-08-11 20:24:58
【问题描述】:
我在具有 PowerShell V2 的 Windows Server 2008 中运行脚本,该脚本从 IIS 收集 AppPool 名称,然后删除所有这些名称,然后删除所有网站和这些网站的内容。没有任何问题。工作精美。现在,在具有相同池和网站的 PowerShell V4 的 Windows Server 2012 上运行相同的脚本,并且不会因为 AppPools 名称中的空格而删除所有内容。为什么这只是 PS V4 中的一个问题。
这就是它的样子
在 v4 中,我是否双引号 $site 变量也没关系,因为它仍然会引发相同的错误。同样,这在 v2 中很好,并且运行速度更快。 2008 年服务器上完全相同的池、站点、内容可以在大约 20 秒内被删除,而在 2012 年则需要几分钟,然后抛出这样的错误并跳过一些内容。
....
$msdeploy=Get-Command 'C:\Program Files (x86)\IIS\Microsoft Web Deploy V3\msdeploy.exe'
foreach ($site in $list.WebAppName) {
write-host $site
& $msdeploy -verb:delete -dest:appPoolConfig=$site –skip:objectname=rootwebconfig32 –skip:objectname=httpCert –skip:objectname=machineconfig32
}
输出就是这个例子
2.0 DefaultAppPool
msdeploy.exe : Error: Unrecognized argument '"-dest:"appPoolConfig=2.0'. All arguments must begin with "-".
At line:19 char:5
+ & $msdeploy -verb:delete -dest:appPoolConfig=$site –skip:objectname=rootwe ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (Error: Unrecogn...begin with "-".:String) [], RemoteException
+ FullyQualifiedErrorId : NativeCommandError
Error count: 1.
【问题讨论】:
标签: variables powershell msdeploy