4

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

这不仅对新开发人员有帮助,而且对所有现有开发人员都有帮助,每当整个系统发生变化时,所有内容都会在本地复制。

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

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

有没有一种方法,一种可编写脚本的方法,可以从一台服务器获取与 IIS 相关的所有内容并将其还原到另一台服务器上,而无需用户干预,并且还原后的 IIS 与原始服务器完全相同?

提前致谢!

弗朗西斯科

4

1 回答 1

0

只需将其放在这里,任何遇到此问题的人都会了解为什么没有回答。一个网站有大量与之相关的变量,这些变量阻止了任何简单的方法通过一个甚至几个 cmdlet 复制其所有配置。

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

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

当网站拥有从可能需要注册的底层 DLL、IsapiCGI 限制和 IsapiFilters、与可能需要添加到服务器上某些本地组的 AppPool 绑定的帐户到需要在服务器上加载证书的安全绑定等所有内容时. 你可以看到这不是一个简单的任务。(这些只是网站可能包含的变量的一小部分)

但是,Microsoft 为您提供了很多开箱即用的 cmdlet,您可以利用这些 cmdlet 来帮助您在WebAdministration 模块中开发类似的东西。我知道这已经四岁了,但希望任何偶然发现这一点的人都会发现上述内容很有用。

于 2017-08-16T21:11:57.663 回答