該腳本可以用來導出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