2011-10-24 46 views
4

我試圖在不停止應用程序的情況下使用Powershell Web管理模塊複製現有的IIS 7.5應用程序池。使用Powershell Web管理複製正在運行的IIS應用程序池

當我複製應用程序池,運行和加載的應用程序時,我收到一個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. 

如果我停下池,或啓動應用程序池,不加載應用程序,複製命令成功。

缺少一個一個地複製屬性,有沒有辦法複製/克隆正在運行和加載的應用程序池?

回答

3

您是否嘗試過使用appcmd?

更新:嘗試兩者的結合 -

也許添加不會讓你進口和指定的命令。你可以嘗試這樣的事:

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 

您可能需要調試腳本有點:)

+0

我可以使用appcmd創建一個應用程序池,但是我看不到如何使用appcmd從現有的池中複製設置。 – Jared314

+0

使用appcmd list命令獲取所需的一個,然後使用/ xml導出到xml。然後,在命令的末尾添加| appcmd add apppool/in - http://blogs.iis.net/ksingla/archive/2007/06/17/things-you-can-do-by-piping-appcmd-commands.aspx 以上是關於這個概念的一個很棒的鏈接,以及非常類似powershell的 –

+0

在我的測試機器上,它創建了apppool,但它沒有複製其他池中的設置。命令:appcmd list APPPOOL「thing1」/ xml | appcmd添加APPPOOL /名稱:「thing2」/在 – Jared314

1

要導出的應用程序池使用%WINDIR%\ SYSTEM32 \ INETSRV \ APPCMD列表程序池 「AppPoolName」/ config/xml> D:\ AppPoolConfig.xml

沒有/ config,你錯過了應用程序池中的所有設置,當你去導入時你只打算用默認值創建一個新的應用程序池應用程序池設置。

相關問題