如何从脚本备份和还原IIS配置

时间:2013-03-21 10:59:34

标签: iis scripting backup windows-server-2008 restore

我正在编写一个脚本,在Windows中设置了许多不同的应用程序(主要是用于http,dns,mail,ftp和db的svn和开源服务器)。此脚本旨在为新开发人员在新的/干净的Windows工作站中执行,它会自动设置所有内容以创建与生产环境非常相似的环境。执行完毕后,所有内容都在本地运行,开发人员可以立即开始工作。

这不仅可以帮助新开发人员,也可以帮助所有现有的开发人员,只要整个系统发生变化,一切都会在本地复制。

我仍然无法做的一件事就是对运行Web应用程序的IIS服务器(它在Prod服务器中)进行某种备份,然后自动将其恢复到新开发人员的计算机上,这样他就不会必须在本地安装/配置IIS。

我已经阅读了有关使用appcmd.exe创建和恢复备份的信息,但这仅适用于同一台计算机(它使用加密密钥,并且这些密钥在计算机之间更改)。

有没有办法,一种可编写脚本的方法,从一台服务器上获取所有IIS相关的内容并在另一台服务器上恢复它,而无需用户干预并使恢复的IIS与原始服务器完全一样运行?

提前致谢!

旧金山

1 个答案:

答案 0 :(得分:0)

只要把它放在这里,任何碰到这个的人都会理解为什么这个没有得到回答。一个网站有大量与之关联的变量,阻止任何简单的方法通过一个甚至几个cmdlet复制其所有配置。

要开始,您可能希望熟悉applicationHost.config文件以及如何使用Get-WebConfigurationProperty访问其中的属性。熟悉如何针对Web配置属性编写脚本的一种方法是使用IIS中的配置编辑器。无论何时在配置编辑器中进行更改,在提交更改之前都会有一个名为Generate Script的小链接,它将有一个Powershell选项卡,可用于帮助您为applicationHost中的配置元素收集正确的Get / Set命令.config文件。

我已经创建了几乎与OP正在寻找的东西,它跨越了4个模块(超过20,000行代码),并且有一个包含所有配置元素的SQL后端。

当网站包含可能需要注册的基础DLL,IsapiCGI限制和IsapiFilters,与AppPool相关联的帐户(可能需要添加到服务器上的某些本地组)以保护需要加载证书的绑定时在服务器上。您可以看到,这不是一项简单的任务。 (这些只是网站可能包含的变量的一小部分)

然而,微软为您提供大量的cmdlet,您可以利用这些cmdlet来帮助您在WebAdministration module内开发类似的内容。我知道这已经有四年了,但希望任何偶然发现这一点的人都会发现上述有用。