How To Schedule Metabase Backups Using WSH

This article has been archived. It is offered "as is" and will no longer be updated.
This article provides a sample script that can be used to back up the Internet Information Services (IIS) metabase as a scheduled task by using Windows Script Host (WSH).
More information
WARNING: ANY USE BY YOU OF THE CODE PROVIDED IN THIS ARTICLE IS AT YOUROWN RISK. Microsoft provides this code "as is" without warranty of anykind, either express or implied, including but not limited to the impliedwarranties of merchantability and/or fitness for a particular purpose.IIS supports programmatic administration of the metabase using the Active Directory Servies Interface (ADSI). The sample script that is listed below creates a backup of the metabase that will be stored in the following path:
NOTE: This folder is a fixed location and cannot be changed.

To create the sample WSH script and a scheduled task to run the script, follow these steps:
  1. Save the following code in your C:\Inetpub\Adminscripts folder as Mbackup.vbs:
    '****************************************' Description:'   Metabase Backup Utility   ' Syntax:'   CSCRIPT MBACKUP.VBS'****************************************Option ExplicitOn Error Resume Next' Declare variables.Dim strBackupName, lngBackupVersion, lngBackupFlagsDim objComputerDim strDay, strMonth, strYear' Get the current DD/MM/YY as strings.strDay   = Right("00" & Cstr(Day(Date())),2)strMonth = Right("00" & Cstr(Month(Date())),2)strYear  = Cstr(Year(Date()))' Create a file name from the current date.strBackupName = strYear & "-" & strMonth & "-" & strDay' Use the next available version number.lngBackupVersion = &HFFFFFFFFlngBackupFlags = 0 ' Output the backup message.Wscript.Echo "Backing up metabase to file: """ & strBackupName & """"' Get the ADSI object.Set objComputer = GetObject("IIS://LOCALHOST")' Call the backup method.objComputer.Backup strBackupName, lngBackupVersion, lngBackupFlags' Check for errors.  If Err.Number <> 0 Then  Wscript.Echo "Error: "  & Err.Description & " (0x" & Right(String(8,"0") & Hex(Err.Number),8) & ")"Else  Wscript.Echo "Success."End If					
    NOTE: The following code can be appended to the previous sample to delete old backups. To customize this, change the value of the lngBackupToDelete variable in the script.
    '****************************************' The remaining code is optional and deletes a specific older backup.'****************************************' The value of lngBackupToDelete determines which specific date to delete' in this case. 28 days is four weeks ago if you are running a weekly backup.Const lngBackupToDelete = 28 ' Declare variables.Dim strOldDay, strOldMonth, strOldYear, strOldBackupName' Get the old DD/MM/YY as strings.strOldDay   = Right("00" & Cstr(Day(Date()-lngBackupToDelete)),2)strOldMonth = Right("00" & Cstr(Month(Date()-lngBackupToDelete)),2)strOldYear  = Cstr(Year(Date()-lngBackupToDelete))' Create the file name from the old date.strOldBackupName = strOldYear & "-" & strOldMonth & "-" & strOldDay' Output the deletion message.Wscript.Echo "Deleting metabase backup file: """ & strOldBackupName & """"' Call the deletion method.objComputer.DeleteBackup strOldBackupName, 0' Check for errors.  If Err.Number <> 0 Then  If Err.Number = &H80070002 Then    Wscript.Echo "File not found."  Else    Wscript.Echo "Error: "  & Err.Description & " (0x" & Right(String(8,"0") & Hex(Err.Number),8) & ")"  End IfElse  Wscript.Echo "Success."End If					
  2. Create a task to schedule the backup script. At a command prompt, type a command similar to the following:
    • For a task that runs every Monday at 6:00am:
      AT 6:00am /every:M cscript.exe c:\inetpub\adminscripts\mbackup.vbs
    • For a task that runs once at 9:00pm:
      AT 9:00pm cscript.exe c:\inetpub\adminscripts\mbackup.vbs
    • For a task that runs on the first of every month at 1:00am:
      AT 1:00am /every:1 cscript.exe c:\inetpub\adminscripts\mbackup.vbs

Further Help

Microsoft provides programming examples for illustration only, without warranty either expressed or implied. This includes, but is not limited to, the implied warranties of merchantability or fitness for a particular purpose. This article assumes that you are familiar with the programming language that is being demonstrated and with the tools that are used to create and to debug procedures. Microsoft support engineers can help explain the functionality of a particular procedure, but they will not modify these examples to provide added functionality or construct procedures to meet your specific requirements.
For additional information on backing up the IIS 5 Metabase, click the article number below to view the article in the Microsoft Knowledge Base:
300672 How To Create a Metabase Backup By Using IIS 5
For more information on Microsoft scripting technologies, see the following Microsoft Web site:
iis 5

Article ID: 302888 - Last Review: 06/19/2014 13:10:00 - Revision: 5.0

  • kbnosurvey kbarchive kbinfo KB302888