使用Powershell WebAdministration复制正在运行的IIS App Pool

时间:2011-10-24 18:05:28

标签: powershell iis-7.5

我正在尝试使用Powershell WebAdministration模块复制现有的IIS 7.5应用程序池,而不停止应用程序。

当我复制应用程序池时,运行并加载了一个应用程序,我收到一个NullReferenceException。

$pool = 'app1-0'
$newpool = 'app1-1'
cp "iis:/apppools/$pool" "iis:/apppools/$newpool" -force

输出:

Copy-Item : Object reference not set to an instance of an object.

如果我停止池,或启动应用程序池并且不加载应用程序,则复制命令会成功。

如果没有逐个复制属性,有没有办法复制/克隆正在运行和加载的应用程序池?

2 个答案:

答案 0 :(得分:4)

您是否尝试过使用appcmd?

更新:尝试两者的组合 -

也许add不允许您导入和指定命令。你可以尝试这样的事情:

appcmd list appool thing1 /xml > c:\tempfile.xml
(Get-Content c:\tempfile.xml).Replace("thing1", "thing2") | Out-File c:\tempfile2.xml
appcmd add apppool /in < c:\tempfile2.xml

您可能需要稍微调试该脚本:)

答案 1 :(得分:2)

要导出应用程序池,请使用%windir%\ system32 \ inetsrv \ appcmd list apppool“AppPoolName”/ config / xml&gt; d:\ AppPoolConfig.xml

如果没有/ config,您将丢失应用程序池中的所有设置,当您进行导入时,您将只创建一个具有默认应用程序池设置的新应用程序池。