有时候,我们可能有这个需求:某台服务器上的IIS配置了几十个网站项目,有没有一种方式可以导出这些配置,然后重装系统后(假设有这个业务场景)导入这些配置,避免一个一个的网站项目手动添加配置。答案是肯定的:有

打开CMD,最好以管理员身份运行CMD。

1、????导出导入某个站点

1.1、????导出应用程序池和站点

  • ????导出某个应用程序池配置

具体导出命令如下所示:

%windir%\system32\inetsrv\appcmd list apppool "你的应用程序池名称" /config /xml > D:\yourAppPool.xml
  • 1.1.2、????导出某个站点信息配置

具体导出命令如下所示:

%windir%\system32\inetsrv\appcmd list site "你的站点名称" /config /xml > D:\yourAppSite.xml

1.2、????导入应用程序池和站点

  • 1.2.1、????导入某个应用程序池配置

具体导入命令如下所示:

%windir%\system32\inetsrv\appcmd add apppool /in < D:\yourAppPool.xml
  • 1.2.2、????导入某个站点信息配置

具体导入命令如下所示:

%windir%\system32\inetsrv\appcmd add site /in < D:\yourAppSite.xml

2、????导出导入所有站点

2.1、????导出所有应用程序池和站点

  • 2.1.1、????导出所有应用程序池配置

具体导出命令如下所示:

%windir%\system32\inetsrv\appcmd list apppool /config /xml > D:\yourAppPoolAll.xml

注意:由于我们导出的是所有的应用程序池,我们需要将yourAppPoolAll.xml中的DefaultAppPool和Classic .Net AppPool删除掉,避免在导入的时候报错(如果另外一台服务器的IIS中没有这2个应用程序池,请忽略该操作。如果在导入的时候还提示与其他节点已存在,请先编辑此文件,将已存在的节点删除再导入即可)。

  • 2.1.2、????导出所有站点信息配置

具体导出命令如下所示:

%windir%\system32\inetsrv\appcmd list site /config /xml > c:\yourAppSiteAll.xml

注意:由于我们导出的是所有的站点,我们需要将yourAppSiteAll.xml中的Default Website删除掉,避免在导入的时候报错(如果另外一台服务器的IIS中没有这个站点,请忽略该操作。如果在导入的时候还提示与其他节点已存在,请先编辑此文件,将已存在的节点删除再导入即可)。

2.2、????导入所有应用程序池和站点

  • 2.2.1、????导入所有应用程序池配置

具体导入命令如下所示:

%windir%\system32\inetsrv\appcmd add apppool /in < D:\yourAppPoolAll.xml
  • 2.2.2、????导入所有站点信息配置

具体导入命令如下所示:

%windir%\system32\inetsrv\appcmd add site /in < D:\yourAppSiteAll.xml