随笔 - 911  文章 - 5  评论 - 94  阅读 - 243万

备份服务器数据(IIS配置备份还原、任务计划、服务列表和APP)

该脚本可以用来导出IIS配置、任务计划、服务列表和APP,同时支持Windows 2003和2008。

复制代码
#定义备份位置
$iisfolder = "d:\Backup_all\IIS"
$taskfolder = "d:\Backup_all\Task"
$servicesfolder = "d:\Backup_all\Service"
$appfolder = "d:\Backup_all\app"
#定义源应用文件所在位置
$app_sourcefolder = "D:\DDservice"
#新建文件夹
If (!(Test-Path $iisfolder))
{mkdir $iisfolder}
If (!(Test-Path $taskfolder))
{mkdir $taskfolder}
If (!(Test-Path $servicesfolder))
{mkdir $servicesfolder}
If (!(Test-Path $appfolder))
{mkdir $appfolder}

#导出服务列表
$servicepath = $servicesfolder + "\services_list.txt"
Get-Service |ft DisplayName,Name,Status -Wrap |Out-File $servicepath

#备份应用
$CurrentPath = $MyInvocation.MyCommand.Path.substring(0,$MyInvocation.MyCommand.Path.LastIndexOf('\')+1)
$uncopyfile = join-path $CurrentPath Backup_all_uncopy.txt
$apppath = $appfolder + "\"
xcopy /e /h /r /s /y /exclude:$uncopyfile $app_sourcefolder\*.*  $apppath 


$Version = [System.Environment]::OSVersion.Version.Major
If ($Version -ne 5)
{
#备份IIS配置,使用 appcmd restore backup 命令可以还原IIS配置:appcmd restore backup backupname
$iispath08 = $iisfolder + "\"
New-Alias -name appcmd -value $env:windir\system32\inetsrv\appcmd.exe
appcmd add backup
xcopy /s /y C:\Windows\System32\inetsrv\backup $iispath08


#导出任务计划,使用schtasks /create 命令可以导入任务计划,For Example : schtasks /create /xml "d:\Adobe Flash Player Updater.xml" /tn "Adobe Flash Player Updater"
$Schedule = New-Object -com "Schedule.Service"
$Schedule.Connect()
$Schedules08 = $Schedule.GetFolder("\").GetTasks(0)
If ($TaskName -eq $null)
{ 
 Foreach ($task08 in $Schedules08)
    {
     $taskname08=$task08.name
     $taskpath08 = $taskfolder + "\" + $taskname08 + ".xml"
     cmd /c "chcp 437 >null && schtasks /query /xml ONE /tn ""$taskname08"" " |out-file $taskpath08
    }
}


}
Else
{
#备份任务计划,将备份的文件拷贝到 C:\WINDOWS\Tasks 即可完成还原
$taskpath03 = $taskfolder + "\" 
xcopy /s /y C:\WINDOWS\Tasks $taskpath03

#备份IIS配置,使用 iiscnfg /import 可以还原IIS配置
#Example: cscript.exe C:\Windows\System32\iiscnfg.vbs /import /f d:\i.xml /sp / /children /d dd123 /dp /
$time = get-date -uformat "%Y%m%d%H%M"
$iispath03 = $iisfolder + "\" + "iisconfig03_" + $time + ".xml"
cscript.exe C:\Windows\System32\iiscnfg.vbs /export /f $iispath03 /sp / /children /d dd123

}
复制代码

Backup_all_uncopy.txt文件与上面脚本放在同一个目录下(排除 log,logs目录和*.gho文件),该脚本内容如下:

\log\
\logs\

.GHO

 

 

 xcopy /D参数:如果没有提供日期,只复制那些源时间比目标时间新的文件

====================

IIS6命令:

iiscnfg.vbs

iisweb.vbs  管理iis

iisback.vbs 备份iis

 

================================

IIS7/8站点导入导出(支持导出到其他计算机,IIS7.5/8.5版本不能互相导入)

appcmd add/restore backup,get-webconfiguration不支持还原IIS配置到其他计算机,只能在本地计算机上使用

方法一(windows2008r2导入到windows2012r2已测试通过):

#导出应用程序池、站点
C:\windows\system32\inetsrv\appcmd.exe list apppool /config /xml > d:\apppools.xml
C:\windows\system32\inetsrv\appcmd.exe list site /config /xml > d:\sites.xml
编辑xml文件,删除不需要的apppool和site。如果在导入时发现同名的应用程序池已经存在,那么导入就会失败
#导入应用程序池、站点   导入之前先查找替换sites.xml文件中的IP地址

C:\windows\system32\inetsrv\appcmd.exe add apppool /in < d:\apppools.xml
C:\windows\system32\inetsrv\appcmd.exe add site /in < d:\sites.xml

方法二:

打开IIS管理器,共享的配置,右上方导出配置,然后将3个文件拷贝到其他计算机,然后选中“启用共享的配置”,输入路径,还原即可(IIS7.5/8.5版本不能互相导入)。

参考:http://www.2cto.com/os/201309/242826.html

posted on   momingliu11  阅读(2869)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
历史上的今天:
2013-05-29 schtasks---at
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示