Backing up IIS7 configuration is as simple as copying the \windows\system32\inetsrv\config directory (and subdirectories) into a backup directory, so you don’t need anything special to do it. Just include this directory in whatever your OS/content back-up plan is, or write a custom script to do it.
To help make managing backups easy, Microsoft added a simple cmd-line option to AppCmd.exe that makes management of backup/restore sets easy. For example, to backup configuration, run the follow command:
> %windir%\system32\inetsrv\appcmd.exe add backup “My Backup Name”
to restore that backup, run this command:
> %windir%\system32\inetsrv\appcmd.exe restore backup “My Backup Name”
to delete a backup, run this command:
> %windir%\system32\inetsrv\appcmd.exe delete backup “My Backup Name”
IIS will automatically make history snapshots of ApplicationHost.config each time a change is detected, enabling you to easily restore to a prior version. By default, IIS checks for a new version every 2 mins, and will keep 10 prior versions of the file. IIS stores these snapshots in the %systemdrive%\inetpub\history folder by default. You can change any of these settings by editing the section in ApplicationHost.config.