<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Microsoft SharePoint Developer Documentation Team Blog : backup</title><link>http://blogs.msdn.com/sharepointdeveloperdocs/archive/tags/backup/default.aspx</link><description>Tags: backup</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>How to: Create a Content Class That Can Be Backed Up and Restored</title><link>http://blogs.msdn.com/sharepointdeveloperdocs/archive/2008/02/07/how-to-create-a-content-class-that-can-be-backed-up-and-restored.aspx</link><pubDate>Fri, 08 Feb 2008 04:08:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7530537</guid><dc:creator>RickK</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/sharepointdeveloperdocs/comments/7530537.aspx</comments><wfw:commentRss>http://blogs.msdn.com/sharepointdeveloperdocs/commentrss.aspx?PostID=7530537</wfw:commentRss><description>&lt;H2 style="MARGIN: 9pt 0in 3pt"&gt;&lt;FONT face=Verdana color=#808080 size=3&gt;Introduction&lt;/FONT&gt;&lt;/H2&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;FONT face=Verdana&gt;If you have a custom content component that you want to be included in Windows SharePoint Server 3.0 backups and restores, you must represent the component with a class that implements the &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;IBackupRestore&lt;/SPAN&gt;&lt;/STRONG&gt; interface. This post explains how to do that. There is a complete example following the procedures. This post assumes that you are familiar with my earlier post: &lt;SPAN class=LinkText&gt;&lt;U&gt;&lt;FONT color=#0000ff&gt;&lt;A class="" title="Programming with the Windows SharePoint Services Backup/Restore Object Model" href="http://blogs.msdn.com/sharepointdeveloperdocs/archive/2008/02/07/programming-with-the-windows-sharepoint-services-backup-restore-object-model.aspx" target=_blank mce_href="http://blogs.msdn.com/sharepointdeveloperdocs/archive/2008/02/07/programming-with-the-windows-sharepoint-services-backup-restore-object-model.aspx"&gt;Programming with the Windows SharePoint Services Backup/Restore Object Model&lt;/A&gt;&lt;/FONT&gt;&lt;/U&gt;&lt;/SPAN&gt;. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in 3pt 0.5in"&gt;&lt;FONT face=Verdana&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;Note&lt;/B&gt;: Unless explicitly stated otherwise, all classes and interfaces referred to in this post are in the &lt;B style="mso-bidi-font-weight: normal"&gt;Microsoft.SharePoint.Administration.Backup&lt;/B&gt; namespace. Classes that you will create are in &lt;SPAN class=Bold&gt;&lt;STRONG&gt;&lt;FONT color=#ff00ff&gt;bold pink&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;. Also, this post refers at times to the “reference topic” for this or that method/property for supplementary information. As of the date of this posting these reference topics in the most recent versions of the WSS SDK (1.3), in either download or MSDN form, did not yet contain this new material. Look for another update soon. The additional information is not necessary for using this post as a learning exercise or implementing the example it contains. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;FONT face=Verdana&gt;Your class does not have to derive from &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;Microsoft.SharePoint.Administration.SPPersistedObject&lt;/SPAN&gt;&lt;/STRONG&gt; but if your content is a database, we recommend that you derive your class from either &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;Microsoft.SharePoint.Administration.SPDatabase&lt;/SPAN&gt;&lt;/STRONG&gt; or from &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;Microsoft.SharePoint.Administration.SPContentDatabase&lt;/SPAN&gt;&lt;/STRONG&gt;. Both of the latter classes are derived from &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPPersistedObject&lt;/SPAN&gt;&lt;/STRONG&gt; and both implement &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;IBackupRestore&lt;/SPAN&gt;&lt;/STRONG&gt;. Therefore, you will have default implementations of members of &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;IBackupRestore&lt;/SPAN&gt;&lt;/STRONG&gt; that you can use when appropriate. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;FONT face=Verdana&gt;You can create as many types of &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;IBackupRestore&lt;/SPAN&gt;&lt;/STRONG&gt; classes you want and, if you want, they can be nested as a tree of component classes. But the highest class in any such tree &lt;EM&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;must&lt;/SPAN&gt;&lt;/EM&gt; derive (directly or indirectly) from &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPPersistedObject&lt;/SPAN&gt;&lt;/STRONG&gt; object and &lt;EM&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;must&lt;/SPAN&gt;&lt;/EM&gt; be a child of &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;Microsoft.SharePoint.Administration.SPFarm&lt;/SPAN&gt;&lt;/STRONG&gt;. If your content class is not a child of any other custom content class, it &lt;EM&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;must&lt;/SPAN&gt;&lt;/EM&gt; derive (directly or indirectly) from &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPPersistedObject&lt;/SPAN&gt;&lt;/STRONG&gt; object and &lt;EM&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;must&lt;/SPAN&gt;&lt;/EM&gt; be a child of &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPFarm&lt;/SPAN&gt;&lt;/STRONG&gt;.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;FONT face=Verdana&gt;If your class derives from a class that already implements &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;IBackupRestore&lt;/SPAN&gt;&lt;/STRONG&gt; object (whether or not it derives from &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPPersistedObject&lt;/SPAN&gt;&lt;/STRONG&gt;), and you want to replace an inherited implementation of an &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;IBackupRestore&lt;/SPAN&gt;&lt;/STRONG&gt; member, your class declaration should explicitly reference &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;IBackupRestore&lt;/SPAN&gt;&lt;/STRONG&gt; like this:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;SPAN class=MultilanguageMarkerAuto&gt;&lt;SPAN style="FONT-SIZE: 8pt; mso-bidi-font-size: 10.0pt"&gt;&lt;FONT color=#808080&gt;&lt;FONT face=Verdana&gt;[C#]&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT face="Courier New" color=#000080&gt;public class MyClass : SPPersistedObject, IBackupRestore&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;FONT face=Verdana&gt;Your "override" of any &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;IBackupRestore&lt;/SPAN&gt;&lt;/STRONG&gt; member should explicitly include "&lt;/FONT&gt;&lt;SPAN class=CodeEmbedded&gt;&lt;SPAN style="mso-bidi-font-family: 'Times New Roman'"&gt;&lt;FONT face="Courier New" color=#000080&gt;IBackupRestore&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;" in the member name and it should not include the &lt;SPAN class=LanguageKeyword&gt;&lt;STRONG&gt;public&lt;/STRONG&gt;&lt;/SPAN&gt; keyword. The following is an example:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;SPAN class=MultilanguageMarkerAuto&gt;&lt;SPAN style="FONT-SIZE: 8pt; mso-bidi-font-size: 10.0pt"&gt;&lt;FONT color=#808080&gt;&lt;FONT face=Verdana&gt;[C#]&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT face="Courier New" color=#000080&gt;UInt64 IBackupRestore.DiskSizeRequired { ... }&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;FONT face=Verdana&gt;Alternatively, if the implementation of the member in the parent class used the &lt;SPAN class=LanguageKeyword&gt;&lt;STRONG&gt;virtual&lt;/STRONG&gt;&lt;/SPAN&gt; or &lt;SPAN class=LanguageKeyword&gt;&lt;STRONG&gt;override&lt;/STRONG&gt;&lt;/SPAN&gt; keywords, you can use the &lt;SPAN class=LanguageKeyword&gt;&lt;STRONG&gt;override&lt;/STRONG&gt;&lt;/SPAN&gt; keyword in your implementation like this:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;SPAN class=MultilanguageMarkerAuto&gt;&lt;SPAN style="FONT-SIZE: 8pt; mso-bidi-font-size: 10.0pt"&gt;&lt;FONT color=#808080&gt;&lt;FONT face=Verdana&gt;[C#]&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT face="Courier New" color=#000080&gt;public override UInt64 DiskSizeRequired { ... }&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=AlertText style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;FONT face=Verdana&gt;&lt;SPAN class=LabelEmbedded&gt;&lt;STRONG&gt;&lt;SPAN style="COLOR: red"&gt;Warning&lt;/SPAN&gt;: &lt;/STRONG&gt;&lt;/SPAN&gt;Do &lt;EM&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;not&lt;/SPAN&gt;&lt;/EM&gt; hide the inherited member implementation by redeclaring the member either with or without the &lt;SPAN class=LanguageKeyword&gt;&lt;STRONG&gt;new&lt;/STRONG&gt;&lt;/SPAN&gt; keyword (&lt;/FONT&gt;&lt;SPAN class=CodeEmbedded&gt;&lt;SPAN style="mso-bidi-font-family: 'Times New Roman'"&gt;&lt;FONT face="Courier New" color=#000080&gt;[new] public UInt64 DiskSizeRequired { ... }&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;). In the procedure below, the member signatures are written as they would be for a class that does not derive from a class that already implements &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;IBackupRestore&lt;/SPAN&gt;&lt;/STRONG&gt;. Be sure to change them to the required pattern if your class does derive from such a parent. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;FONT face=Verdana&gt;If your class derives from &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPPersistedObject&lt;/SPAN&gt;&lt;/STRONG&gt;, let the &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;Id&lt;/SPAN&gt;&lt;/STRONG&gt; and &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;Name&lt;/SPAN&gt;&lt;/STRONG&gt; properties of that class serve as the implementation of the &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;IBackupRestore.Id&lt;/SPAN&gt;&lt;/STRONG&gt; and &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;IBackupRestore.Name&lt;/SPAN&gt;&lt;/STRONG&gt; properties. You may override the properties, but do not create a second implementation of either of them. Your class should have just one &lt;STRONG&gt;Name&lt;/STRONG&gt; and one &lt;STRONG&gt;Id&lt;/STRONG&gt;&amp;nbsp;property. &lt;/FONT&gt;&lt;/P&gt;
&lt;H2 style="MARGIN: 9pt 0in 3pt"&gt;&lt;FONT face=Verdana color=#808080 size=3&gt;Procedures&lt;/FONT&gt;&lt;/H2&gt;
&lt;P class=TableSpacing style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Verdana color=#c0c0c0 size=1&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;TABLE class=Procedure style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; mso-border-alt: solid silver .5pt; mso-yfti-tbllook: 480; mso-padding-alt: 0in 5.4pt 0in 5.4pt" cellSpacing=0 cellPadding=0 border=1 class="Procedure"&gt;
&lt;TBODY&gt;
&lt;TR style="mso-yfti-irow: -1; mso-yfti-firstrow: yes"&gt;
&lt;TD class="" style="BORDER-RIGHT: silver 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: silver 1pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #d9d9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: silver 1pt solid; WIDTH: 6.15in; PADDING-TOP: 0in; BORDER-BOTTOM: silver 1pt solid; mso-border-alt: solid silver .5pt" vAlign=top width=590&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in; mso-yfti-cnfc: 1"&gt;&lt;FONT face=Verdana&gt;To Implement the Members of IBackupRestore&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="COLOR: navy"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow: 0; mso-yfti-lastrow: yes"&gt;
&lt;TD class="" style="BORDER-RIGHT: silver 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: silver 1pt solid; WIDTH: 6.15in; PADDING-TOP: 0in; BORDER-BOTTOM: silver 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid silver .5pt; mso-border-top-alt: solid silver .5pt" vAlign=top width=590&gt;
&lt;P class=NumberedList1 style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;SPAN style="mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Verdana&gt;1.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;Begin a new Class project in Visual Studio.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=NumberedList1 style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;SPAN style="mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Verdana&gt;2.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;Add a reference to Windows SharePoint Services to your Visual Studio project and add &lt;SPAN class=LanguageKeyword&gt;&lt;STRONG&gt;using&lt;/STRONG&gt;&lt;/SPAN&gt; statements for the &lt;/FONT&gt;&lt;SPAN class=CodeEmbedded&gt;&lt;SPAN style="mso-bidi-font-family: 'Times New Roman'"&gt;&lt;FONT face="Courier New" color=#000080&gt;Microsoft.SharePoint.Administration&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt; and &lt;/FONT&gt;&lt;SPAN class=CodeEmbedded&gt;&lt;SPAN style="mso-bidi-font-family: 'Times New Roman'"&gt;&lt;FONT face="Courier New" color=#000080&gt;Microsoft.SharePoint.Administration.Backup&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt; namespaces to your class file. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=NumberedList1 style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;SPAN style="mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Verdana&gt;3.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;If your class does not derive from &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPPersistedObject&lt;/SPAN&gt;&lt;/STRONG&gt;, implement the &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;IBackupRestore.Name&lt;/SPAN&gt;&lt;/STRONG&gt; property. This will serve as the name of the content component in the UI of &lt;/FONT&gt;&lt;SPAN class=CodeEmbedded&gt;&lt;SPAN style="mso-bidi-font-family: 'Times New Roman'"&gt;&lt;FONT face="Courier New" color=#000080&gt;stsadm.exe&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;, the &lt;SPAN class=UI&gt;&lt;STRONG&gt;&lt;FONT color=#808080&gt;Central Administration&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/SPAN&gt; application and the UI of any custom backup and restore application. In most cases you implement the property by creating a private field for the name value and implement the public property as a wrapper around the field. For information on possible variant implementations, see the reference topic for the property. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;SPAN class=MultilanguageMarkerAuto&gt;&lt;SPAN style="FONT-SIZE: 8pt; mso-bidi-font-size: 10.0pt"&gt;&lt;FONT color=#808080&gt;&lt;FONT face=Verdana&gt;[C#]&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;private String name;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;public String Name&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;{&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;get {return name;}&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;set {name = value;}&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;}&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=NumberedList1 style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;SPAN style="mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Verdana&gt;4.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;If your class does not derive from &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPPersistedObject&lt;/SPAN&gt;&lt;/STRONG&gt;, implement the &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;IBackupRestore.Id&lt;/SPAN&gt;&lt;/STRONG&gt; property. In most cases, you implement the property by creating a private field for the name value and implement the public property as a wrapper around the field. For information on possible variant implementations, see the reference topic for the property.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;SPAN class=MultilanguageMarkerAuto&gt;&lt;SPAN style="FONT-SIZE: 8pt; mso-bidi-font-size: 10.0pt"&gt;&lt;FONT color=#808080&gt;&lt;FONT face=Verdana&gt;[C#]&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;private Guid id;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;public Guid Id&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;{&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;get {return id;}&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;set {id = value;}&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;}&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=NumberedList1 style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;SPAN style="mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Verdana&gt;5.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;Implement the &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;IBackupRestore.DiskSizeRequired&lt;/SPAN&gt;&lt;/STRONG&gt; property. If your class is just a container for some child &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;IBackupRestore&lt;/SPAN&gt;&lt;/STRONG&gt; classes, the property should return 0. Otherwise, the property should calculate the size of the content. (Include the size of any non-&lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;IBackupRestore&lt;/SPAN&gt;&lt;/STRONG&gt; child objects, but do not include the size of any child &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;IBackupRestore&lt;/SPAN&gt;&lt;/STRONG&gt; objects. They each have their own &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;IBackupRestore.DiskSizeRequired&lt;/SPAN&gt;&lt;/STRONG&gt; property and Windows SharePoint Server 3.0 will add those values in automatically.) The following example sums the sizes of all the files whose paths are contained in a collection called &lt;SPAN class=Bold&gt;&lt;STRONG&gt;&lt;FONT color=#ff00ff&gt;FrontEndFilePaths&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;SPAN class=MultilanguageMarkerAuto&gt;&lt;SPAN style="FONT-SIZE: 8pt; mso-bidi-font-size: 10.0pt"&gt;&lt;FONT color=#808080&gt;&lt;FONT face=Verdana&gt;[C#]&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;public UInt64 DiskSizeRequired&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;{&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;get &lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;UInt64 total = 0;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;List&amp;lt;FileInfo&amp;gt; FrontEndFiles = new List&amp;lt;FileInfo&amp;gt;(NUMBER_OF_FILES_TO_BACK_UP);&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;foreach (String path in FrontEndFilePaths)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;FileInfo file = new FileInfo(path);&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;FrontEndFiles.Add(file);&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;foreach (FileInfo file in FrontEndFiles)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;total = total + (UInt64)file.Length;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;return total;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;} &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=NumberedList1 style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;SPAN style="mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Verdana&gt;6.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;Implement the &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;IBackupRestore.CanSelectForBackup&lt;/SPAN&gt;&lt;/STRONG&gt; property. If users should &lt;EM&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;never&lt;/SPAN&gt;&lt;/EM&gt; be able to backup objects of your class independently of a backup of the parent object, the &lt;SPAN class=LanguageKeyword&gt;&lt;STRONG&gt;get&lt;/STRONG&gt;&lt;/SPAN&gt; accessor should return &lt;SPAN class=LanguageKeyword&gt;&lt;STRONG&gt;false&lt;/STRONG&gt;&lt;/SPAN&gt;. If users should always be able to select &lt;EM&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;any&lt;/SPAN&gt;&lt;/EM&gt; object of your class for independent backup, the &lt;SPAN class=LanguageKeyword&gt;&lt;STRONG&gt;get&lt;/STRONG&gt;&lt;/SPAN&gt; accessor should return &lt;SPAN class=LanguageKeyword&gt;&lt;STRONG&gt;true&lt;/STRONG&gt;&lt;/SPAN&gt;. In either case, the &lt;SPAN class=LanguageKeyword&gt;&lt;STRONG&gt;set&lt;/STRONG&gt;&lt;/SPAN&gt; accessor should be an empty pair of braces "{ }". If some objects of your class can be backed up independently of their parent, but some cannot be, implement the property as a wrapper around a private &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;System.Boolean&lt;/SPAN&gt;&lt;/STRONG&gt; field. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=NumberedList1 style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;SPAN style="mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Verdana&gt;7.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;Implement the &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;IBackupRestore.CanSelectForRestore&lt;/SPAN&gt;&lt;/STRONG&gt; property. If users should never be able to restore objects of your custom component class independently of a restoration of the parent object, the &lt;SPAN class=LanguageKeyword&gt;&lt;STRONG&gt;get&lt;/STRONG&gt;&lt;/SPAN&gt; accessor should return &lt;SPAN class=LanguageKeyword&gt;&lt;STRONG&gt;false&lt;/STRONG&gt;&lt;/SPAN&gt;. If users should always be able to select any object of your class for independent restoration, the &lt;SPAN class=LanguageKeyword&gt;&lt;STRONG&gt;get&lt;/STRONG&gt;&lt;/SPAN&gt; accessor should return &lt;SPAN class=LanguageKeyword&gt;&lt;STRONG&gt;true&lt;/STRONG&gt;&lt;/SPAN&gt;. In either case, the &lt;SPAN class=LanguageKeyword&gt;&lt;STRONG&gt;set&lt;/STRONG&gt;&lt;/SPAN&gt; accessor should be an empty pair of braces "{ }". If some objects of your class can be restored independently of their parent, but some cannot be, implement the property as a wrapper around a private &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;System.Boolean&lt;/SPAN&gt;&lt;/STRONG&gt; field.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=NumberedList1 style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;SPAN style="mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Verdana&gt;8.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;Implement the &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;IBackupRestore.CanRenameOnRestore&lt;/SPAN&gt;&lt;/STRONG&gt; property. If users should never be able to restore objects of your custom component class to a new location, the &lt;SPAN class=LanguageKeyword&gt;&lt;STRONG&gt;get&lt;/STRONG&gt;&lt;/SPAN&gt; accessor should return &lt;SPAN class=LanguageKeyword&gt;&lt;STRONG&gt;false&lt;/STRONG&gt;&lt;/SPAN&gt;. If users should be able to migrate any object of your class, the &lt;SPAN class=LanguageKeyword&gt;&lt;STRONG&gt;get&lt;/STRONG&gt;&lt;/SPAN&gt; accessor should return &lt;SPAN class=LanguageKeyword&gt;&lt;STRONG&gt;true&lt;/STRONG&gt;&lt;/SPAN&gt;. If objects of your class can sometimes be migrated, but not always, implement the property as a wrapper around a private &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;System.Boolean&lt;/SPAN&gt;&lt;/STRONG&gt; field.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=NumberedList1 style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;SPAN style="mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Verdana&gt;9.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;Implement the &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;IBackupRestore.AddBackupObjects&lt;/SPAN&gt;&lt;/STRONG&gt; method. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=NumberedList2 style="MARGIN: 3pt 0in 3pt 0.5in"&gt;&lt;SPAN style="mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Verdana&gt;a.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;Your implementation code should begin by throwing an exception if there is no valid parent to which the component can be added.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=NumberedList2 style="MARGIN: 3pt 0in 3pt 0.5in"&gt;&lt;SPAN style="mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Verdana&gt;b.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;Use the &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPBackupRestoreObject.AddChild&lt;/SPAN&gt;&lt;/STRONG&gt; method to add your component to the tree of objects that the backup or restore operation will process. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=NumberedList2 style="MARGIN: 3pt 0in 3pt 0.5in"&gt;&lt;SPAN style="mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Verdana&gt;c.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;Use the &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPBackupRestoreInformation.SetParameter&lt;/SPAN&gt;&lt;/STRONG&gt; method to specify a type name and description of the component that can be used by the UI of backup/restore applications. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=NumberedList2 style="MARGIN: 3pt 0in 3pt 0.5in"&gt;&lt;SPAN style="mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Verdana&gt;d.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;If the component has child &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;IBackupRestore&lt;/SPAN&gt;&lt;/STRONG&gt; objects, your implementation should iterate through them and recursively call the &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;IBackupRestore.AddBackupObjects&lt;/SPAN&gt;&lt;/STRONG&gt; method of each child.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=NumberedList2 style="MARGIN: 3pt 0in 3pt 0.5in"&gt;&lt;SPAN style="mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Verdana&gt;e.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;See the reference topic for the &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;IBackupRestore.AddBackupObjects&lt;/SPAN&gt;&lt;/STRONG&gt; method for more ideas about implementations of it.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=TextinList1 style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;FONT face=Verdana&gt;The following example code assumes that your content class has a &lt;/FONT&gt;&lt;SPAN class=CodeEmbedded&gt;&lt;SPAN style="mso-bidi-font-family: 'Times New Roman'"&gt;&lt;FONT face="Courier New" color=#000080&gt;ChildContentCollection&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt; of child &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;IBackupRestore&lt;/SPAN&gt;&lt;/STRONG&gt; objects. If your class has more than one type of child component, you may have separate collections for each type and iterate through each collection. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;SPAN class=MultilanguageMarkerAuto&gt;&lt;SPAN style="FONT-SIZE: 8pt; mso-bidi-font-size: 10.0pt"&gt;&lt;FONT color=#808080&gt;&lt;FONT face=Verdana&gt;[C#]&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;public void AddBackupObjects(SPBackupRestoreObject parent)&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;{&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;if (parent == null)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;throw new ArgumentNullException("parent");&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;o:p&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;SPBackupRestoreObject self = parent.AddChild(this);&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;self.Information.SetParameter(SPBackupRestoreObject.SPTypeName, this.GetType());&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;self.Information.SetParameter(SPBackupRestoreObject.SPDescription,&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;"&lt;SPAN class=Placeholder&gt;&lt;EM&gt;Description of custom content component&lt;/EM&gt;&lt;/SPAN&gt;");&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;o:p&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;foreach (ChildContent child in ChildContentCollection)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;IBackupRestore childIBR = child as IBackupRestore;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;childIBR.AddBackupObjects(self);&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;}&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=NumberedList1 style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;SPAN style="mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Verdana&gt;10.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;Implement the &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;IBackupRestore.OnAbort&lt;/SPAN&gt;&lt;/STRONG&gt; method. It should always return &lt;SPAN class=LanguageKeyword&gt;&lt;STRONG&gt;true&lt;/STRONG&gt;&lt;/SPAN&gt;. In most cases it should do nothing more, but see the reference topic for &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;IBackupRestore.OnAbort&lt;/SPAN&gt;&lt;/STRONG&gt; for information about exceptions to this general rule.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=NumberedList1 style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;SPAN style="mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Verdana&gt;11.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;Implement the &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;IBackupRestore.OnPrepareBackup&lt;/SPAN&gt;&lt;/STRONG&gt; method. At a minimum, you should use the &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPBackupRestoreInformation.SetParameter&lt;/SPAN&gt;&lt;/STRONG&gt; method to specify a name for the content object. Beyond that, few generalizations can be made. See the reference topic for &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;IBackupRestore.OnPrepareBackup&lt;/SPAN&gt;&lt;/STRONG&gt; for more information. The following example shows a minimal implementation of the method, which is often all that is needed.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;SPAN class=MultilanguageMarkerAuto&gt;&lt;SPAN style="FONT-SIZE: 8pt; mso-bidi-font-size: 10.0pt"&gt;&lt;FONT color=#808080&gt;&lt;FONT face=Verdana&gt;[C#]&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;public Boolean OnPrepareBackup(Object sender, SPBackupInformation args)&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;{&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;if (args == null)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;throw new ArgumentNullException("args");&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;args.SetParameter(SPBackupRestoreObject.SPName, this.Name);&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;return true;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;}&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=NumberedList1 style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;SPAN style="mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Verdana&gt;12.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;Implement the &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;IBackupRestore.OnBackup&lt;/SPAN&gt;&lt;/STRONG&gt; method. If your content class has no content outside of any &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;IBackupRestore&lt;/SPAN&gt;&lt;/STRONG&gt; child objects it may have, your implementation should simply set the &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPBackupRestoreInformation.CurrentProgess&lt;/SPAN&gt;&lt;/STRONG&gt; to a value that approximately represents the percentage of the total backup operation time that is consumed by the &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;IBackupRestore.OnBackup&lt;/SPAN&gt;&lt;/STRONG&gt; and &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;IBackupRestore.OnPrepareBackup&lt;/SPAN&gt;&lt;/STRONG&gt; methods. It should then return &lt;SPAN class=LanguageKeyword&gt;&lt;STRONG&gt;true&lt;/STRONG&gt;&lt;/SPAN&gt; as seen in the following example. Do &lt;EM&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;not&lt;/SPAN&gt;&lt;/EM&gt; call the &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;IBackupRestore.OnBackup&lt;/SPAN&gt;&lt;/STRONG&gt; method of any &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;IBackupRestore&lt;/SPAN&gt;&lt;/STRONG&gt; child objects. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;SPAN class=MultilanguageMarkerAuto&gt;&lt;SPAN style="FONT-SIZE: 8pt; mso-bidi-font-size: 10.0pt"&gt;&lt;FONT color=#808080&gt;&lt;FONT face=Verdana&gt;[C#]&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;public Boolean OnBackup(Object sender, SPBackupInformation args)&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;{&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;if (args == null)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;throw new ArgumentNullException("args");&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;args.CurrentProgress = 50;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;return true;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;}&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=TextinList1 style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;FONT face=Verdana&gt;If your class &lt;EM&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;does&lt;/SPAN&gt;&lt;/EM&gt; have content outside of any &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;IBackupRestore&lt;/SPAN&gt;&lt;/STRONG&gt; child objects it may have, your implementation must copy this content to &lt;SPAN class=ParameterReference&gt;&lt;EM&gt;args&lt;/EM&gt;&lt;/SPAN&gt;.&lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPBackupRestoreInformation.Location&lt;/SPAN&gt;&lt;/STRONG&gt; and return &lt;SPAN class=LanguageKeyword&gt;&lt;STRONG&gt;false&lt;/STRONG&gt;&lt;/SPAN&gt; if the copy fails. You should include logic to backup any child objects that do &lt;EM&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;not&lt;/SPAN&gt;&lt;/EM&gt; implement &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;IBackupRestore&lt;/SPAN&gt;&lt;/STRONG&gt;, but you should not explicitly backup any child objects that &lt;EM&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;do&lt;/SPAN&gt;&lt;/EM&gt; implement &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;IBackupRestore&lt;/SPAN&gt;&lt;/STRONG&gt;. They will be backed up by their own &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;IBackupRestore.OnBackup&lt;/SPAN&gt;&lt;/STRONG&gt; method, which the runtime will call. You should not call the &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;IBackupRestore.OnBackup&lt;/SPAN&gt;&lt;/STRONG&gt; methods of the child objects in your own code. The following example shows the overall structure of a substantive implementation of &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;IBackupRestore.OnBackup.&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;SPAN class=MultilanguageMarkerAuto&gt;&lt;SPAN style="FONT-SIZE: 8pt; mso-bidi-font-size: 10.0pt"&gt;&lt;FONT color=#808080&gt;&lt;FONT face=Verdana&gt;[C#]&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;public Boolean OnBackup(Object sender, SPBackupInformation args)&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;{&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;if (args == null)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;throw new ArgumentNullException("args");&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;args.CurrentProgress = 50;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Boolean successSignal = true;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;o:p&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;// TODO: Implement copying your content to args.Location&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;//&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;If the copy fails, set successSignal to false.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;o:p&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;return successSignal;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;}&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=NumberedList1 style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;SPAN style="mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Verdana&gt;13.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;Implement the &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;IBackupRestore.OnBackupComplete&lt;/SPAN&gt;&lt;/STRONG&gt; method. At a minimum, your implementation should set &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPBackupRestoreInformation.CurrentProgess&lt;/SPAN&gt;&lt;/STRONG&gt; to 100 percent and return &lt;SPAN class=LanguageKeyword&gt;&lt;STRONG&gt;true&lt;/STRONG&gt;&lt;/SPAN&gt; as shown in the following example. This is typically all that is required. For information about other work your implementation may need to perform, see the reference topic for &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;IBackupRestore.OnBackupComplete&lt;/SPAN&gt;&lt;/STRONG&gt;.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;SPAN class=MultilanguageMarkerAuto&gt;&lt;SPAN style="FONT-SIZE: 8pt; mso-bidi-font-size: 10.0pt"&gt;&lt;FONT color=#808080&gt;&lt;FONT face=Verdana&gt;[C#]&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;public Boolean OnBackupComplete(Object sender, SPBackupInformation args)&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;{&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;if (args == null)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;throw new ArgumentNullException("args");&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;args.CurrentProgress = 100;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;return true;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;}&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=NumberedList1 style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;SPAN style="mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Verdana&gt;14.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;Implement the &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;IBackupRestore.OnPreRestore&lt;/SPAN&gt;&lt;/STRONG&gt; method. In most situations, a restoration operation requires no preparation and your implementation of &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;IBackupRestore.OnPreRestore&lt;/SPAN&gt;&lt;/STRONG&gt; should just return &lt;SPAN class=LanguageKeyword&gt;&lt;STRONG&gt;true&lt;/STRONG&gt;&lt;/SPAN&gt;. For information about other work your implementation may need to perform, see the reference topic for &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;IBackupRestore.OnPreRestore&lt;/SPAN&gt;&lt;/STRONG&gt;. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=NumberedList1 style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;SPAN style="mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Verdana&gt;15.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;Implement the &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;IBackupRestore.OnRestore&lt;/SPAN&gt;&lt;/STRONG&gt; method. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=BulletedList2 style="MARGIN: 3pt 0in 3pt 0.5in"&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;If your content class can be migrated, your code should check to see what the restore method is and call &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPBackupRestoreInformation.Rename&lt;/SPAN&gt;&lt;/STRONG&gt; if the method is &lt;SPAN class=LanguageKeyword&gt;&lt;STRONG&gt;New&lt;/STRONG&gt;&lt;/SPAN&gt;. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=BulletedList2 style="MARGIN: 3pt 0in 3pt 0.5in"&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;If your content class has no content outside of any &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;IBackupRestore&lt;/SPAN&gt;&lt;/STRONG&gt; child objects it may have, your implementation should simply set the &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPBackupRestoreInformation.CurrentProgess&lt;/SPAN&gt;&lt;/STRONG&gt; to a value that approximately represents the percentage of the total restore operation time that is consumed by the &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;IBackupRestore.OnRestore&lt;/SPAN&gt;&lt;/STRONG&gt; and the &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;IBackupRestore.OnPreRestore&lt;/SPAN&gt;&lt;/STRONG&gt; methods. It should then return &lt;SPAN class=LanguageKeyword&gt;&lt;STRONG&gt;true&lt;/STRONG&gt;&lt;/SPAN&gt; as seen in the following example. Do &lt;EM&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;not&lt;/SPAN&gt;&lt;/EM&gt; call the &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;IBackupRestore.OnRestore&lt;/SPAN&gt;&lt;/STRONG&gt; method of any &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;IBackupRestore&lt;/SPAN&gt;&lt;/STRONG&gt; child objects.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;SPAN class=MultilanguageMarkerAuto&gt;&lt;SPAN style="FONT-SIZE: 8pt; mso-bidi-font-size: 10.0pt"&gt;&lt;FONT color=#808080&gt;&lt;FONT face=Verdana&gt;[C#]&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;public Boolean OnRestore(Object sender, SPRestoreInformation args)&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;{&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;if (args == null)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;throw new ArgumentNullException("args");&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;if (args.RestoreMethod == SPRestoreMethodType.New)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;args.Rename();&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;args.CurrentProgress = 50;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;return true;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;}&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=BulletedList2 style="MARGIN: 3pt 0in 3pt 0.5in"&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;If your class &lt;EM&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;does&lt;/SPAN&gt;&lt;/EM&gt; have content outside of any &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;IBackupRestore&lt;/SPAN&gt;&lt;/STRONG&gt; child objects it may have, your implementation must copy this content to the restoration destination. Return &lt;SPAN class=LanguageKeyword&gt;&lt;STRONG&gt;false&lt;/STRONG&gt;&lt;/SPAN&gt;, if for any reason the copy of content fails. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=TextinList1 style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;FONT face=Verdana&gt;The following example shows the overall structure of a substantive implementation of &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;IBackupRestore.OnRestore&lt;/SPAN&gt;&lt;/STRONG&gt;:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;SPAN class=MultilanguageMarkerAuto&gt;&lt;SPAN style="FONT-SIZE: 8pt; mso-bidi-font-size: 10.0pt"&gt;&lt;FONT color=#808080&gt;&lt;FONT face=Verdana&gt;[C#]&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;public Boolean OnRestore(Object sender, SPRestoreInformation args)&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;{&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;if (args == null)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;throw new ArgumentNullException("args");&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;if (args.RestoreMethod == SPRestoreMethodType.New)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;args.Rename();&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;args.CurrentProgress = 50;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Boolean successSignal = true;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;o:p&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;// TODO: Implement copying your content to the destination.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;//&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;If the copy fails, set successSignal to false.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;o:p&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;return successSignal;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;}&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=NumberedList1 style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;SPAN style="mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Verdana&gt;16.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;Implement the &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;IBackupRestore.OnPostRestore&lt;/SPAN&gt;&lt;/STRONG&gt; method. At a minimum, your implementation should set &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPBackupRestoreInformation.CurrentProgess&lt;/SPAN&gt;&lt;/STRONG&gt; to 100 percent and return &lt;SPAN class=LanguageKeyword&gt;&lt;STRONG&gt;true&lt;/STRONG&gt;&lt;/SPAN&gt; as shown in the following example. This is typically all that is required. For information about other work your implementation may need to perform, see the reference topic for &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;IBackupRestore.OnPostRestore&lt;/SPAN&gt;&lt;/STRONG&gt;.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;SPAN class=MultilanguageMarkerAuto&gt;&lt;SPAN style="FONT-SIZE: 8pt; mso-bidi-font-size: 10.0pt"&gt;&lt;FONT color=#808080&gt;&lt;FONT face=Verdana&gt;[C#]&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;public Boolean OnPostRestore(Object sender, SPRestoreInformation args)&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;{&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;if (args == null)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;throw new ArgumentNullException("args");&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;args.CurrentProgress = 100;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;return true;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;}&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P class=TableSpacing style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Verdana color=#c0c0c0 size=1&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=TableSpacing style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Verdana color=#c0c0c0 size=1&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;TABLE class=Procedure style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; mso-border-alt: solid silver .5pt; mso-yfti-tbllook: 480; mso-padding-alt: 0in 5.4pt 0in 5.4pt" cellSpacing=0 cellPadding=0 border=1 class="Procedure"&gt;
&lt;TBODY&gt;
&lt;TR style="mso-yfti-irow: -1; mso-yfti-firstrow: yes"&gt;
&lt;TD class="" style="BORDER-RIGHT: silver 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: silver 1pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #d9d9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: silver 1pt solid; WIDTH: 6.15in; PADDING-TOP: 0in; BORDER-BOTTOM: silver 1pt solid; mso-border-alt: solid silver .5pt" vAlign=top width=590&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in; mso-yfti-cnfc: 1"&gt;&lt;FONT face=Verdana&gt;Add other Members to Your Class As Needed&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="COLOR: navy"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow: 0; mso-yfti-lastrow: yes"&gt;
&lt;TD class="" style="BORDER-RIGHT: silver 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: silver 1pt solid; WIDTH: 6.15in; PADDING-TOP: 0in; BORDER-BOTTOM: silver 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid silver .5pt; mso-border-top-alt: solid silver .5pt" vAlign=top width=590&gt;
&lt;P class=NumberedList1 style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;SPAN style="mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Verdana&gt;17.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;Add fields, properties, and helper methods as needed to complete your class. As you work, keep these points in mind:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=BulletedList2 style="MARGIN: 3pt 0in 3pt 0.5in"&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;Use fields and properties to hold child content objects. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=BulletedList2 style="MARGIN: 3pt 0in 3pt 0.5in"&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;If your class derives from &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;Microsoft.SharePoint.Administration.SPPersistedObject&lt;/SPAN&gt;&lt;/STRONG&gt;, then the declaration of fields that you want to persist in the configuration database must be preceded with the &lt;/FONT&gt;&lt;SPAN class=CodeEmbedded&gt;&lt;SPAN style="mso-bidi-font-family: 'Times New Roman'"&gt;&lt;FONT face="Courier New" color=#000080&gt;[Persisted]&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt; attribute. However, you can only mark the following types of fields in this way: primitive types such as strings, integers, and GUIDs; other &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;Microsoft.SharePoint.Administration.SPPersistedObject&lt;/SPAN&gt;&lt;/STRONG&gt; objects or &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;Microsoft.SharePoint.Administration.SPAutoserializingObject&lt;/SPAN&gt;&lt;/STRONG&gt; objects; or collections of any of the above. For example, the class cannot have a &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;System.IO.FileInfo&lt;/SPAN&gt;&lt;/STRONG&gt; field marked with the &lt;/FONT&gt;&lt;SPAN class=CodeEmbedded&gt;&lt;SPAN style="mso-bidi-font-family: 'Times New Roman'"&gt;&lt;FONT face="Courier New" color=#000080&gt;[Persisted]&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt; attribute. If the data you would like to persist is not of a persistable class, use a persistable substitute. The sample implementation above of the &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;IBackupRestore.DiskSizeRequired&lt;/SPAN&gt;&lt;/STRONG&gt; property envisions a class that persists a collection of file names and uses them to create a temporary collection of &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;System.IO.FileInfo&lt;/SPAN&gt;&lt;/STRONG&gt; objects at runtime. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=BulletedList2 style="MARGIN: 3pt 0in 3pt 0.5in"&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;If your class can have multiple children of the same type, create a property or field of a collection type or other enumerable type to hold a collection of all children of a given type. This is particularly important if the child type itself implements &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;IBackupRestore&lt;/SPAN&gt;&lt;/STRONG&gt;, because your implementation of the &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;IBackupRestore.AddBackupObjects&lt;/SPAN&gt;&lt;/STRONG&gt; method should iterate through such children and call the &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;IBackupRestore.AddBackupObjects&lt;/SPAN&gt;&lt;/STRONG&gt; method of each child. See the procedure step for implementing the &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;IBackupRestore.AddBackupObjects&lt;/SPAN&gt;&lt;/STRONG&gt; method above, for more information.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=NumberedList1 style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;SPAN style="mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Verdana&gt;18.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;Add constructors to your class to initialize its fields and properties as needed. If the class derives from &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPPersistedObject&lt;/SPAN&gt;&lt;/STRONG&gt;, there must be at least one constructor that names the object and assigns it to a parent. Typically, such a constructor takes at least these two arguments:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=BulletedList2 style="MARGIN: 3pt 0in 3pt 0.5in"&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;A &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;String&lt;/SPAN&gt;&lt;/STRONG&gt; argument that will be the name of the content object.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=BulletedList2 style="MARGIN: 3pt 0in 3pt 0.5in"&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;An &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPPersistedObject&lt;/SPAN&gt;&lt;/STRONG&gt; argument that represents the parent of the content object. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=TextinList1 style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;FONT face=Verdana&gt;This constructor must call the base constructor that takes the same two arguments. The following is an example:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;SPAN class=MultilanguageMarkerAuto&gt;&lt;SPAN style="FONT-SIZE: 8pt; mso-bidi-font-size: 10.0pt"&gt;&lt;FONT color=#808080&gt;&lt;FONT face=Verdana&gt;[C#]&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;public MyContentComponent(String componentName, SPPersistedObject parent, &lt;SPAN class=Placeholder&gt;&lt;EM&gt;SomeType&lt;/EM&gt;&lt;/SPAN&gt; &lt;SPAN class=Placeholder&gt;&lt;EM&gt;someOtherArgument&lt;/EM&gt;&lt;/SPAN&gt;, ... ) &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;: base(componentName, parent)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;{&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=Placeholder&gt;&lt;EM&gt;somePrivateField&lt;/EM&gt;&lt;/SPAN&gt; = &lt;SPAN class=Placeholder&gt;&lt;EM&gt;someOtherArgument&lt;/EM&gt;&lt;/SPAN&gt;;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;...&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;}&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=TextinList1 style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;FONT face=Verdana&gt;You must pass &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;Microsoft.SharePoint.Administration.SPFarm.Local&lt;/SPAN&gt;&lt;/STRONG&gt; as the parent when the content object is the top most object in a tree of custom &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;IBackupRestore&lt;/SPAN&gt;&lt;/STRONG&gt; objects. If your custom component type is &lt;EM&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;always&lt;/SPAN&gt;&lt;/EM&gt; the top most object, then leave out the &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPPersistedObject&lt;/SPAN&gt;&lt;/STRONG&gt; argument and hard code a reference to &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPFarm.Local&lt;/SPAN&gt;&lt;/STRONG&gt; in the call to the base constructor. The following is an example:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;SPAN class=MultilanguageMarkerAuto&gt;&lt;SPAN style="FONT-SIZE: 8pt; mso-bidi-font-size: 10.0pt"&gt;&lt;FONT color=#808080&gt;&lt;FONT face=Verdana&gt;[C#]&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;public MyContentComponent(String componentName, &lt;SPAN class=Placeholder&gt;&lt;EM&gt;SomeType&lt;/EM&gt;&lt;/SPAN&gt; &lt;SPAN class=Placeholder&gt;&lt;EM&gt;someOtherArgument&lt;/EM&gt;&lt;/SPAN&gt;, ... ) &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;: base(componentName, SPFarm.Local)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;{&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=Placeholder&gt;&lt;EM&gt;somePrivateField&lt;/EM&gt;&lt;/SPAN&gt; = &lt;SPAN class=Placeholder&gt;&lt;EM&gt;someOtherArgument&lt;/EM&gt;&lt;/SPAN&gt;;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;...&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;}&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=TextinList1 style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;FONT face=Verdana&gt;If objects of your class always have the same name, you can leave out the &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;String&lt;/SPAN&gt;&lt;/STRONG&gt; argument and hard code the name in the call to the base constructor. (If all objects of a given type have the same name, there should never be more than one child of that type for a given parent and; thus, no more than one object of that type on the entire farm if the object is a child of the farm.)&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=NumberedList1 style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;SPAN style="mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Verdana&gt;19.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;Compile your class project. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=AlertTextinList1 style="MARGIN: 3pt 0in 3pt 0.5in"&gt;&lt;FONT face=Verdana&gt;&lt;SPAN class=LabelEmbedded&gt;&lt;STRONG&gt;&lt;SPAN style="COLOR: red"&gt;Warning&lt;/SPAN&gt;: &lt;/STRONG&gt;&lt;/SPAN&gt;You &lt;I style="mso-bidi-font-style: normal"&gt;must&lt;/I&gt; give the assembly a strong name and put the assembly in the General Assembly Cache (GAC).&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P class=TableSpacing style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Verdana color=#c0c0c0 size=1&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=TableSpacing style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Verdana color=#c0c0c0 size=1&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;TABLE class=Procedure style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; mso-border-alt: solid silver .5pt; mso-yfti-tbllook: 480; mso-padding-alt: 0in 5.4pt 0in 5.4pt" cellSpacing=0 cellPadding=0 border=1 class="Procedure"&gt;
&lt;TBODY&gt;
&lt;TR style="mso-yfti-irow: -1; mso-yfti-firstrow: yes"&gt;
&lt;TD class="" style="BORDER-RIGHT: silver 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: silver 1pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #d9d9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: silver 1pt solid; WIDTH: 6.15in; PADDING-TOP: 0in; BORDER-BOTTOM: silver 1pt solid; mso-border-alt: solid silver .5pt" vAlign=top width=590&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in; mso-yfti-cnfc: 1"&gt;&lt;FONT face=Verdana&gt;To Create an Object of Your Class and Make it a Child of the Farm&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="COLOR: navy"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow: 0; mso-yfti-lastrow: yes"&gt;
&lt;TD class="" style="BORDER-RIGHT: silver 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: silver 1pt solid; WIDTH: 6.15in; PADDING-TOP: 0in; BORDER-BOTTOM: silver 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid silver .5pt; mso-border-top-alt: solid silver .5pt" vAlign=top width=590&gt;
&lt;P class=NumberedList1 style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;SPAN style="mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Verdana&gt;20.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;Start a new console application project in Visual Studio.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=NumberedList1 style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;SPAN style="mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Verdana&gt;21.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;Add a reference to the DLL of your custom component class to the project.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=NumberedList1 style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;SPAN style="mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Verdana&gt;22.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;Add a &lt;SPAN class=LanguageKeyword&gt;&lt;STRONG&gt;using&lt;/STRONG&gt;&lt;/SPAN&gt; statement for &lt;/FONT&gt;&lt;SPAN class=CodeEmbedded&gt;&lt;SPAN style="mso-bidi-font-family: 'Times New Roman'"&gt;&lt;FONT face="Courier New" color=#000080&gt;Microsoft.SharePoint.Administration&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=NumberedList1 style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;SPAN style="mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Verdana&gt;23.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;Add a &lt;SPAN class=LanguageKeyword&gt;&lt;STRONG&gt;using&lt;/STRONG&gt;&lt;/SPAN&gt; statement for the namespace that you used in your custom component class (or just use the same namespace in your console application). &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=NumberedList1 style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;SPAN style="mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Verdana&gt;24.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;Add to the &lt;SPAN class=LanguageKeyword&gt;&lt;STRONG&gt;Main&lt;/STRONG&gt;&lt;/SPAN&gt; method of your project a call to the constructor of your custom component class. If you created a hierarchy of custom types, call the constructor of the top most class. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=NumberedList1 style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;SPAN style="mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Verdana&gt;25.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;If needed, precede the call to the constructor of the component with code that creates parameters for the constructor. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=NumberedList1 style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;SPAN style="mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Verdana&gt;26.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;After the call to the constructor of your component, your code should call the component object's &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPPersistedObject.Update&lt;/SPAN&gt;&lt;/STRONG&gt; method. The following is an example of what you should have in the Main method:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;SPAN class=MultilanguageMarkerAuto&gt;&lt;SPAN style="FONT-SIZE: 8pt; mso-bidi-font-size: 10.0pt"&gt;&lt;FONT color=#808080&gt;&lt;FONT face=Verdana&gt;[C#]&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;MyContentComponent myContentObject = new MyContentComponent("&lt;SPAN class=Placeholder&gt;&lt;EM&gt;component name&lt;/EM&gt;&lt;/SPAN&gt;", SPFarm.Local);&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;myContentObject.Update();&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=NumberedList1 style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;SPAN style="mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Verdana&gt;27.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;Compile and run the application. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=NumberedList1 style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;SPAN style="mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Verdana&gt;28.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;In the Central Administration application navigate to &lt;SPAN class=UI&gt;&lt;STRONG&gt;&lt;FONT color=#808080&gt;Operations&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/SPAN&gt; | &lt;SPAN class=UI&gt;&lt;STRONG&gt;&lt;FONT color=#808080&gt;Perform a Backup&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;. Your object should appear as child of the farm on the &lt;SPAN class=UI&gt;&lt;STRONG&gt;&lt;FONT color=#808080&gt;Perform a Backup&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/SPAN&gt; page. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=AlertTextinList1 style="MARGIN: 3pt 0in 3pt 0.5in"&gt;&lt;FONT face=Verdana&gt;&lt;SPAN class=LabelEmbedded&gt;&lt;STRONG&gt;Note: &lt;/STRONG&gt;&lt;/SPAN&gt;There is a sample console application for creating and deleting custom content objects in the &lt;B style="mso-bidi-font-weight: normal"&gt;Example&lt;/B&gt; section below.&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P class=TableSpacing style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Verdana color=#c0c0c0 size=1&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;H2 style="MARGIN: 9pt 0in 3pt"&gt;&lt;FONT face=Verdana color=#808080 size=3&gt;Development Advice&lt;/FONT&gt;&lt;/H2&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;FONT face=Verdana&gt;The following tips may be helpful as you develop your custom content classes particularly because you will probably be creating objects and adding them to the farm multiple times as you work.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=TableSpacing style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Verdana color=#c0c0c0 size=1&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;TABLE class=Procedure style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; mso-border-alt: solid silver .5pt; mso-yfti-tbllook: 480; mso-padding-alt: 0in 5.4pt 0in 5.4pt" cellSpacing=0 cellPadding=0 border=1 class="Procedure"&gt;
&lt;TBODY&gt;
&lt;TR style="mso-yfti-irow: -1; mso-yfti-firstrow: yes"&gt;
&lt;TD class="" style="BORDER-RIGHT: silver 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: silver 1pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #d9d9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: silver 1pt solid; WIDTH: 6.15in; PADDING-TOP: 0in; BORDER-BOTTOM: silver 1pt solid; mso-border-alt: solid silver .5pt" vAlign=top width=590&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in; mso-yfti-cnfc: 1"&gt;&lt;FONT face=Verdana&gt;Points to Keep in Mind&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="COLOR: navy"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow: 0; mso-yfti-lastrow: yes"&gt;
&lt;TD class="" style="BORDER-RIGHT: silver 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: silver 1pt solid; WIDTH: 6.15in; PADDING-TOP: 0in; BORDER-BOTTOM: silver 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid silver .5pt; mso-border-top-alt: solid silver .5pt" vAlign=top width=590&gt;
&lt;P class=NumberedList1 style="MARGIN: 3pt 0in 3pt 0.25in; mso-list: l2 level1 lfo4"&gt;&lt;SPAN style="mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Verdana&gt;1.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;If you need to delete your object from the configuration database, use &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPPersistedObject.Delete&lt;/SPAN&gt;&lt;/STRONG&gt;. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=NumberedList1 style="MARGIN: 3pt 0in 3pt 0.25in; mso-list: l2 level1 lfo4"&gt;&lt;SPAN style="mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Verdana&gt;2.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;An exception is thrown if you call &lt;SPAN class=ParameterReference&gt;&lt;EM&gt;obj&lt;/EM&gt;&lt;/SPAN&gt;.&lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;Update&lt;/SPAN&gt;&lt;/STRONG&gt;() and there is already an object of the same class as &lt;SPAN class=ParameterReference&gt;&lt;EM&gt;obj&lt;/EM&gt;&lt;/SPAN&gt; with the same &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPPersistedObject.Name&lt;/SPAN&gt;&lt;/STRONG&gt; property value and the same parent in the configuration database. There is an overloaded version of &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPPersistedObject.Update&lt;/SPAN&gt;&lt;/STRONG&gt; that may be preferable.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=NumberedList1 style="MARGIN: 3pt 0in 3pt 0.25in; mso-list: l2 level1 lfo4"&gt;&lt;SPAN style="mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Verdana&gt;3.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;There is an example console application in the second &lt;B style="mso-bidi-font-weight: normal"&gt;Example&lt;/B&gt; section below that can be used to add or delete your custom objects from the configuration database.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=NumberedList1 style="MARGIN: 3pt 0in 3pt 0.25in; mso-list: l2 level1 lfo4"&gt;&lt;SPAN style="mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Verdana&gt;4.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;Run &lt;/FONT&gt;&lt;SPAN class=CodeEmbedded&gt;&lt;SPAN style="mso-bidi-font-family: 'Times New Roman'"&gt;&lt;FONT face="Courier New" color=#000080&gt;iisreset&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt; at the command line after every recompile of your &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;IBackupRestore&lt;/SPAN&gt;&lt;/STRONG&gt; class. You may need to reboot the server as well. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=NumberedList1 style="MARGIN: 3pt 0in 3pt 0.25in; mso-list: l2 level1 lfo4"&gt;&lt;SPAN style="mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Verdana&gt;5.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;The various &lt;B style="mso-bidi-font-weight: normal"&gt;IBackupRestore.On*&lt;/B&gt; methods take either a &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPBackupInformation&lt;/SPAN&gt;&lt;/STRONG&gt; parameter or a &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPRestoreInformation&lt;/SPAN&gt;&lt;/STRONG&gt; parameter. You can use their members for debugging purposes. Particularly helpful is the &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPBackupRestoreInformation.Log&lt;/SPAN&gt;&lt;/STRONG&gt; method.&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;o:p&gt;&lt;FONT face=Verdana&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;H2 style="MARGIN: 9pt 0in 3pt"&gt;&lt;FONT face=Verdana color=#808080 size=3&gt;Example&lt;/FONT&gt;&lt;/H2&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;FONT face=Verdana&gt;The following code implements a custom content component that represents a single &lt;/FONT&gt;&lt;SPAN class=CodeEmbedded&gt;&lt;SPAN style="mso-bidi-font-family: 'Times New Roman'"&gt;&lt;FONT face="Courier New" color=#000080&gt;Web.config&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt; file on a front end server. Replace the &lt;SPAN class=Placeholder&gt;&lt;EM&gt;TestSite&lt;/EM&gt;&lt;/SPAN&gt; part of the file path in the constructor implementation with a directory name from your test server. The compiled assembly must be strong-named and installed in the GAC. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;FONT face=Verdana&gt;In the example following the class implementation, there is the code for a simple console application that will register the component as a child of the farm or delete it from the farm. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT face="Courier New" color=#000080&gt;using System;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT face="Courier New" color=#000080&gt;using System.IO;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT face="Courier New" color=#000080&gt;using System.Collections.Generic;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT face="Courier New" color=#000080&gt;using Microsoft.SharePoint.Administration;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT face="Courier New" color=#000080&gt;using Microsoft.SharePoint.Administration.Backup;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;o:p&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT face="Courier New" color=#000080&gt;namespace MyCompany.SharePoint.Administration&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT face="Courier New" color=#000080&gt;{&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;public class CriticalFiles : SPPersistedObject, IBackupRestore&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;o:p&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;public CriticalFiles() { }&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;o:p&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;public CriticalFiles(String componentName, SPPersistedObject parent) &lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;: base(componentName, parent)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;String pathOfFile = @"C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\LAYOUTS\&lt;SPAN class=Placeholder&gt;&lt;EM&gt;TestSite&lt;/EM&gt;&lt;/SPAN&gt;\Web.config";&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;FrontEndFilePaths.Add(pathOfFile);&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;o:p&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;[Persisted]&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;private const Int32 NUMBER_OF_FILES_TO_BACK_UP = 1;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;o:p&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;[Persisted]&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;private List&amp;lt;String&amp;gt; FrontEndFilePaths = new List&amp;lt;String&amp;gt;(NUMBER_OF_FILES_TO_BACK_UP);&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;o:p&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;public Boolean CanSelectForBackup&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;get { return true; }&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;set { }&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;o:p&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;public Boolean CanSelectForRestore&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;get { return true; }&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;set { }&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;o:p&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;public Boolean CanRenameOnRestore&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;get { return false; }&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;o:p&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;public UInt64 DiskSizeRequired&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;get&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;UInt64 total = 0;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;List&amp;lt;FileInfo&amp;gt; FrontEndFiles = new List&amp;lt;FileInfo&amp;gt;(NUMBER_OF_FILES_TO_BACK_UP);&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;foreach (String path in FrontEndFilePaths)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;FileInfo file = new FileInfo(path);&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;FrontEndFiles.Add(file);&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;foreach (FileInfo file in FrontEndFiles)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;total = total + (UInt64)file.Length;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;return total;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;o:p&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;public void AddBackupObjects(SPBackupRestoreObject parent)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;if (parent == null)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;throw new ArgumentNullException("parent");&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;o:p&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;SPBackupRestoreObject self = parent.AddChild(this);&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;self.Information.SetParameter(SPBackupRestoreObject.SPTypeName, this.GetType());&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;self.Information.SetParameter(SPBackupRestoreObject.SPDescription, "The critical files on all front end servers.");&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;o:p&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;public Boolean OnAbort(Object sender, SPBackupRestoreInformation args)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;return true;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;o:p&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;public Boolean OnPrepareBackup(Object sender, SPBackupInformation args)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;if (args == null)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;throw new ArgumentNullException("args");&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;args.SetParameter(SPBackupRestoreObject.SPName, this.Name);&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;return true;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;o:p&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;public Boolean OnBackup(Object sender, SPBackupInformation args)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;if (args == null)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;throw new ArgumentNullException("args");&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Boolean successSignal = true;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;o:p&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;foreach (String path in FrontEndFilePaths)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;FileInfo file = new FileInfo(path);&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;try&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;String mappedFileName = args.GenerateFileMapping(file.Name);&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;file.CopyTo(args.Location + @"\" + mappedFileName, true);&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;args.Log(SPBackupRestoreLogSeverity.Verbose, "Backed up " + file.Name + " in (" + mappedFileName + ")");&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;catch (Exception e)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;args.Log(SPBackupRestoreLogSeverity.Verbose, file.Name + " not backed u " + e.Message);&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;successSignal = false;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;o:p&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;args.CurrentProgress = 50;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;return successSignal;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;o:p&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;public Boolean OnBackupComplete(Object sender, SPBackupInformation args)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;if (args == null)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;throw new ArgumentNullException("args");&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;args.CurrentProgress = 100;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;return true;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;o:p&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;public Boolean OnPreRestore(Object sender, SPRestoreInformation args)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;if (args == null)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;throw new ArgumentNullException("args");&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;return true;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;o:p&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;public Boolean OnRestore(Object sender, SPRestoreInformation args)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;if (args == null)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;throw new ArgumentNullException("args");&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;o:p&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;// If the CriticalFiles object was deleted from the farm after it was&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;// backed up, restore it to the configuration database.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;CriticalFiles cf = SPFarm.Local.GetChild&amp;lt;CriticalFiles&amp;gt;(this.Name);&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;if (cf == null)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;this.Update();&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;args.Log(SPBackupRestoreLogSeverity.Verbose, this.Name + " added back to configuration database.");&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;o:p&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Boolean successSignal = true;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;o:p&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;// TODO: The following loop restores files to the local server. If there are &lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;//&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;multiple front end servers, your code must iterate through all of &lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;//&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;SPFarm.Local.Servers and restore the same files to every server whose&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;//&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Role property is SPServerRole.WebFrontEnd&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;o:p&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;foreach (String path in FrontEndFilePaths)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;FileInfo backupCopy = new FileInfo(path);&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;String mappedFileName = args.ReverseFileMapping(backupCopy.Name);&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;FileInfo file = new FileInfo(args.Location + @"\" + mappedFileName);&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;o:p&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;try&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;file.CopyTo(path, true);&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;args.Log(SPBackupRestoreLogSeverity.Verbose, "Restored " + backupCopy.Name);&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;catch (Exception e)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;args.Log(SPBackupRestoreLogSeverity.Verbose, file.Name + " not restored: " + e.Message);&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;successSignal = false;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;args.CurrentProgress = 50;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;return successSignal;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;public Boolean OnPostRestore(Object sender, SPRestoreInformation args)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;if (args == null)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;throw new ArgumentNullException("args");&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;o:p&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;args.CurrentProgress = 100;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;return true;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;o:p&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT face="Courier New" color=#000080&gt;}&lt;/FONT&gt;&lt;/P&gt;
&lt;H3 style="MARGIN: 9pt 0in 3pt"&gt;&lt;FONT face=Verdana color=#c0c0c0 size=3&gt;Description&lt;/FONT&gt;&lt;/H3&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;FONT face=Verdana&gt;The following is a console application that will add or delete your content object from the configuration database.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT face="Courier New" color=#000080&gt;using System;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT face="Courier New" color=#000080&gt;using System.Collections.Generic;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT face="Courier New" color=#000080&gt;using System.Text;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT face="Courier New" color=#000080&gt;using Microsoft.SharePoint.Administration;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT face="Courier New" color=#000080&gt;using Microsoft.SharePoint.Administration.Backup;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;o:p&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT face="Courier New" color=#000080&gt;namespace MyCompany.SharePoint.Administration&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT face="Courier New" color=#000080&gt;{&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;class Program &lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;static void Main(string[] args)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;CriticalFiles cf = SPFarm.Local.GetChild&amp;lt;CriticalFiles&amp;gt;("Critical Front End Files");&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;if (cf == null)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Console.WriteLine("There is no CriticalFiles object in the configuration database.");&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Console.Write("Enter 'A' to add it. Press Return to do nothing:");&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;String response = Console.ReadLine();&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;if (response == "A")&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;CriticalFiles myCriticalFiles = new CriticalFiles("Critical Front End Files", SPFarm.Local);&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;myCriticalFiles.Update();&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;else&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Console.WriteLine("There is a CriticalFiles object in the configuration database.");&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Console.Write("Enter 'D' to delete it. Press Return to do nothing:");&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;String response = Console.ReadLine();&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;if (response == "D")&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;cf.Delete();&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}// end Main&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}// end Program&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT face="Courier New" color=#000080&gt;} &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;o:p&gt;&lt;FONT face=Verdana&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;H2 style="MARGIN: 9pt 0in 3pt"&gt;&lt;FONT face=Verdana color=#808080 size=3&gt;See Also&lt;/FONT&gt;&lt;/H2&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;FONT face=Verdana&gt;&lt;SPAN class=LinkText&gt;&lt;U&gt;&lt;FONT color=#0000ff&gt;&lt;A class="" title="Programming with the Windows SharePoint Services Backup/Restore Object Model" href="http://blogs.msdn.com/sharepointdeveloperdocs/archive/2008/02/07/programming-with-the-windows-sharepoint-services-backup-restore-object-model.aspx" target=_blank mce_href="http://blogs.msdn.com/sharepointdeveloperdocs/archive/2008/02/07/programming-with-the-windows-sharepoint-services-backup-restore-object-model.aspx"&gt;Programming with the Windows SharePoint Services Backup/Restore Object Model&lt;/A&gt;&lt;/FONT&gt;&lt;/U&gt;&lt;/SPAN&gt; &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;FONT face=Verdana&gt;&lt;SPAN class=LinkText&gt;&lt;U&gt;&lt;FONT color=#0000ff&gt;&lt;A class="" title="How to: Programmatically Back Up Content" href="http://blogs.msdn.com/sharepointdeveloperdocs/archive/2008/02/07/how-to-programmatically-back-up-content.aspx" target=_blank mce_href="http://blogs.msdn.com/sharepointdeveloperdocs/archive/2008/02/07/how-to-programmatically-back-up-content.aspx"&gt;How to: Programmatically Back Up Content&lt;/A&gt;&lt;/FONT&gt;&lt;/U&gt;&lt;/SPAN&gt; &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;FONT face=Verdana&gt;&lt;SPAN class=LinkText&gt;&lt;U&gt;&lt;FONT color=#0000ff&gt;&lt;A class="" title="How to: Programmatically Restore Content" href="http://blogs.msdn.com/sharepointdeveloperdocs/archive/2008/02/07/how-to-programmatically-restore-content.aspx" target=_blank mce_href="http://blogs.msdn.com/sharepointdeveloperdocs/archive/2008/02/07/how-to-programmatically-restore-content.aspx"&gt;How to: Programmatically Restore Content&lt;/A&gt;&lt;/FONT&gt;&lt;/U&gt;&lt;/SPAN&gt; &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;o:p&gt;&lt;FONT face=Verdana&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;o:p&gt;&lt;FONT face=Verdana&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=7530537" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/sharepointdeveloperdocs/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://blogs.msdn.com/sharepointdeveloperdocs/archive/tags/restore/default.aspx">restore</category><category domain="http://blogs.msdn.com/sharepointdeveloperdocs/archive/tags/backup/default.aspx">backup</category></item><item><title>How to: Programmatically Back Up and Restore a Single Site Collection</title><link>http://blogs.msdn.com/sharepointdeveloperdocs/archive/2008/02/07/how-to-programmatically-back-up-and-restore-a-single-site-collection.aspx</link><pubDate>Fri, 08 Feb 2008 03:18:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7529706</guid><dc:creator>RickK</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/sharepointdeveloperdocs/comments/7529706.aspx</comments><wfw:commentRss>http://blogs.msdn.com/sharepointdeveloperdocs/commentrss.aspx?PostID=7529706</wfw:commentRss><description>&lt;H2 style="MARGIN: 9pt 0in 3pt"&gt;&lt;FONT face=Verdana color=#808080 size=3&gt;Introduction&lt;/FONT&gt;&lt;/H2&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;FONT face=Verdana&gt;This post describes how to back up and restore individual site collections programmatically. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in 3pt 0.5in"&gt;&lt;FONT face=Verdana&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;Note&lt;/B&gt;: Unless explicitly stated otherwise, all classes referred to in this post are in the &lt;B style="mso-bidi-font-weight: normal"&gt;Microsoft.SharePoint.Administration&lt;/B&gt; or &lt;B style="mso-bidi-font-weight: normal"&gt;Microsoft.SharePoint&lt;/B&gt; namespaces (not &lt;B style="mso-bidi-font-weight: normal"&gt;Microsoft.SharePoint.Administration&lt;/B&gt;.&lt;B style="mso-bidi-font-weight: normal"&gt;Backup&lt;/B&gt;). &lt;/FONT&gt;&lt;/P&gt;
&lt;H2 style="MARGIN: 9pt 0in 3pt; tab-stops: 175.5pt"&gt;&lt;FONT size=3&gt;&lt;FONT color=#808080&gt;&lt;FONT face=Verdana&gt;Procedures&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/H2&gt;
&lt;P class=TableSpacing style="MARGIN: 0in 0in 0pt"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;FONT face=Verdana color=#c0c0c0 size=1&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;TABLE class=Procedure style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; mso-border-alt: solid silver .5pt; mso-yfti-tbllook: 480; mso-padding-alt: 0in 5.4pt 0in 5.4pt" cellSpacing=0 cellPadding=0 border=1 class="Procedure"&gt;
&lt;TBODY&gt;
&lt;TR style="mso-yfti-irow: -1; mso-yfti-firstrow: yes"&gt;
&lt;TD class="" style="BORDER-RIGHT: silver 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: silver 1pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #d9d9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: silver 1pt solid; WIDTH: 6.15in; PADDING-TOP: 0in; BORDER-BOTTOM: silver 1pt solid; mso-border-alt: solid silver .5pt" vAlign=top width=590&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in; mso-yfti-cnfc: 1"&gt;&lt;FONT face=Verdana&gt;To Back Up or Restore a Site Collection&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="COLOR: navy"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow: 0; mso-yfti-lastrow: yes"&gt;
&lt;TD class="" style="BORDER-RIGHT: silver 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: silver 1pt solid; WIDTH: 6.15in; PADDING-TOP: 0in; BORDER-BOTTOM: silver 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid silver .5pt; mso-border-top-alt: solid silver .5pt" vAlign=top width=590&gt;
&lt;P class=NumberedList1 style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;SPAN style="mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Verdana&gt;1.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;Add to your Visual Studio project a reference to Windows SharePoint Services. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=NumberedList1 style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;SPAN style="mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Verdana&gt;2.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;Add &lt;B style="mso-bidi-font-weight: normal"&gt;using&lt;/B&gt; statements for &lt;/FONT&gt;&lt;SPAN class=CodeEmbedded&gt;&lt;SPAN style="mso-bidi-font-family: 'Times New Roman'"&gt;&lt;FONT face="Courier New" color=#000080&gt;Microsoft.SharePoint&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt; and&lt;/FONT&gt;&lt;SPAN class=CodeEmbedded&gt;&lt;SPAN style="mso-bidi-font-family: 'Times New Roman'"&gt;&lt;FONT face="Courier New" color=#000080&gt; Microsoft.SharePoint.Administration.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt; &lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=NumberedList1 style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;SPAN style="mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Verdana&gt;3.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;Add the following lines to obtain a reference to the farm and its collection of services. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;SPAN class=MultilanguageMarkerAuto&gt;&lt;SPAN style="FONT-SIZE: 8pt; mso-bidi-font-size: 10.0pt"&gt;&lt;FONT color=#808080&gt;&lt;FONT face=Verdana&gt;[C#]&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;SPFarm myFarm = SPFarm.Local;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;SPServiceCollection myServices = myFarm.Services;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=NumberedList1 style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;SPAN style="mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Verdana&gt;4.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;Obtain a reference to the Web service that publishes the Web application that hosts your site collection by using the service's &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;System.Guid&lt;/SPAN&gt;&lt;/STRONG&gt; which is the value of its &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPWebService.Id&lt;/SPAN&gt;&lt;/STRONG&gt; property. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;SPAN class=MultilanguageMarkerAuto&gt;&lt;SPAN style="FONT-SIZE: 8pt; mso-bidi-font-size: 10.0pt"&gt;&lt;FONT color=#808080&gt;&lt;FONT face=Verdana&gt;[C#]&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;Guid serviceID = new Guid("&lt;SPAN class=Placeholder&gt;&lt;EM&gt;21d91b29-5c5b-4893-9264-4e9c758618b4&lt;/EM&gt;&lt;/SPAN&gt;");&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;SPWebService webPubService = (SPWebService)myServices[serviceID];&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=TextinList1 style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;FONT face=Verdana&gt;If you do not know the &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPWebService.Id&lt;/SPAN&gt;&lt;/STRONG&gt; of the application publishing Web service, you can iterate through all the services and report their &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPWebService.Name&lt;/SPAN&gt;&lt;/STRONG&gt;, &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPWebService.TypeName&lt;/SPAN&gt;&lt;/STRONG&gt;, and &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPWebService.Id&lt;/SPAN&gt;&lt;/STRONG&gt;. The following is an example:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;SPAN class=MultilanguageMarkerAuto&gt;&lt;SPAN style="FONT-SIZE: 8pt; mso-bidi-font-size: 10.0pt"&gt;&lt;FONT color=#808080&gt;&lt;FONT face=Verdana&gt;[C#]&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;foreach (SPService service in myServices)&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;{&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;if (service is SPWebService)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Console.WriteLine("Web service name:" + webService.Name);&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Console.WriteLine("Web service type:" + webService.TypeName);&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Console.WriteLine("Web service ID:" + webService.Id);&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Console.WriteLine();&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Console.Readline();&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;}&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=NumberedList1 style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;SPAN style="mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Verdana&gt;5.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;Obtain a reference to the Web application that hosts your site collection. If you know the URL of the Web application you can obtain a reference with the static &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPWebApplication.Lookup&lt;/SPAN&gt;&lt;/STRONG&gt; method. Alternatively, you can use the application's &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;System.Guid&lt;/SPAN&gt;&lt;/STRONG&gt; which is the value of its &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPWebApplication.Id&lt;/SPAN&gt;&lt;/STRONG&gt; property. The following code shows the second method.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;SPAN class=MultilanguageMarkerAuto&gt;&lt;SPAN style="FONT-SIZE: 8pt; mso-bidi-font-size: 10.0pt"&gt;&lt;FONT color=#808080&gt;&lt;FONT face=Verdana&gt;[C#]&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;SPWebApplicationCollection myApps = webPubService.WebApplications;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;Guid appID = new Guid("&lt;SPAN class=Placeholder&gt;&lt;EM&gt;10ea4e6f-ae37-4909-b04f-f516c066bc37&lt;/EM&gt;&lt;/SPAN&gt;");&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;SPWebApplication myApp = myApps[appID];&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=TextinList1 style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;FONT face=Verdana&gt;If you do not know the &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPWebApplication.Id&lt;/SPAN&gt;&lt;/STRONG&gt; of the Web application that hosts your site collection, you can iterate through all the Web applications and report their &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPWebApplication.Name&lt;/SPAN&gt;&lt;/STRONG&gt;, &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPWebApplication.TypeName&lt;/SPAN&gt;&lt;/STRONG&gt;, and &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPWebApplication.Id&lt;/SPAN&gt;&lt;/STRONG&gt;. The following is an example:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;SPAN class=MultilanguageMarkerAuto&gt;&lt;SPAN style="FONT-SIZE: 8pt; mso-bidi-font-size: 10.0pt"&gt;&lt;FONT color=#808080&gt;&lt;FONT face=Verdana&gt;[C#]&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;foreach (SPWebApplication app in webApps)&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;{&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Console.WriteLine("Web application name:" + app.Name);&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Console.WriteLine("Web application type:" + app.TypeName);&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Console.WriteLine("Web application ID:" + app.Id);&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Console.WriteLine();&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Console.Readline();&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;}&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=NumberedList1 style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;SPAN style="mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Verdana&gt;6.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;Get a reference to the Web application's collection of site collections.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;SPAN class=MultilanguageMarkerAuto&gt;&lt;SPAN style="FONT-SIZE: 8pt; mso-bidi-font-size: 10.0pt"&gt;&lt;FONT color=#808080&gt;&lt;FONT face=Verdana&gt;[C#]&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;SPSiteCollection mySiteCols = myApp.Sites;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=NumberedList1 style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;SPAN style="mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Verdana&gt;7.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;To back up a site collection, call the &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPSiteCollection.Backup&lt;/SPAN&gt;&lt;/STRONG&gt; method. As parameters pass the following:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=BulletedList2 style="MARGIN: 3pt 0in 3pt 0.5in"&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;The full URL of the site collection; that is, the full URL of its Top Level Web site. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=BulletedList2 style="MARGIN: 3pt 0in 3pt 0.5in"&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;The full path and file name of the file that will hold the compressed content of the site collection. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=BulletedList2 style="MARGIN: 3pt 0in 3pt 0.5in"&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;&lt;SPAN class=LanguageKeyword&gt;&lt;STRONG&gt;True&lt;/STRONG&gt;&lt;/SPAN&gt;, if the operation should overwrite an existing backup file of the same name; &lt;SPAN class=LanguageKeyword&gt;&lt;STRONG&gt;false&lt;/STRONG&gt;&lt;/SPAN&gt;, if it should not.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;SPAN class=MultilanguageMarkerAuto&gt;&lt;SPAN style="FONT-SIZE: 8pt; mso-bidi-font-size: 10.0pt"&gt;&lt;FONT color=#808080&gt;&lt;FONT face=Verdana&gt;[C#]&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;mySiteCols.Backup(@"htt//&lt;SPAN class=Placeholder&gt;&lt;EM&gt;Server/sites/MySiteCollection&lt;/EM&gt;&lt;/SPAN&gt;", @"\\&lt;SPAN class=Placeholder&gt;&lt;EM&gt;OtherServer\WSSBackups\SiteCollections\BackupOfMySiteCollection&lt;/EM&gt;&lt;/SPAN&gt;", true);&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=NumberedList1 style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;SPAN style="mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Verdana&gt;8.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;To restore a site collection, call the &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPSiteCollection.Restore&lt;/SPAN&gt;&lt;/STRONG&gt; method. It takes the same parameters as the &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPSiteCollection.Backup&lt;/SPAN&gt;&lt;/STRONG&gt; method. The &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;Boolean&lt;/SPAN&gt;&lt;/STRONG&gt; parameter indicates whether the site collection should be overwritten if it already exists at the specified URL. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;SPAN class=MultilanguageMarkerAuto&gt;&lt;SPAN style="FONT-SIZE: 8pt; mso-bidi-font-size: 10.0pt"&gt;&lt;FONT color=#808080&gt;&lt;FONT face=Verdana&gt;[C#]&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;mySiteCols.Restore(@"htt//&lt;SPAN class=Placeholder&gt;&lt;EM&gt;Server/sites/MySiteCollection&lt;/EM&gt;&lt;/SPAN&gt;", @"\\&lt;SPAN class=Placeholder&gt;&lt;EM&gt;OtherServer\WSSBackups\SiteCollections\BackupOfMySiteCollection&lt;/EM&gt;&lt;/SPAN&gt;", true);&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P class=TableSpacing style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Verdana color=#c0c0c0 size=1&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;H2 style="MARGIN: 9pt 0in 3pt"&gt;&lt;FONT face=Verdana color=#808080 size=3&gt;Example&lt;/FONT&gt;&lt;/H2&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;FONT face=Verdana&gt;The following example shows a simple way to programmatically back up or restore a site collection. You will need to replace all the &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;System.Guid&lt;/SPAN&gt;&lt;/STRONG&gt; values with actual values from your deployment and replace the placeholder values in the &lt;B style="mso-bidi-font-weight: normal"&gt;Backup&lt;/B&gt; and &lt;B style="mso-bidi-font-weight: normal"&gt;Restore&lt;/B&gt; methods with actual URLs and paths from your deployment. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;o:p&gt;&lt;FONT face=Verdana&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT face="Courier New" color=#000080&gt;// Get a reference to the Web application publishing&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT face="Courier New" color=#000080&gt;// Web service.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT face="Courier New" color=#000080&gt;SPFarm myFarm = SPFarm.Local;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT face="Courier New" color=#000080&gt;SPServiceCollection myServices = myFarm.Services;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT face="Courier New" color=#000080&gt;Guid serviceID = new Guid("&lt;SPAN class=Placeholder&gt;&lt;EM&gt;21d91b29-5c5b-4893-9264-4e9c758618b4&lt;/EM&gt;&lt;/SPAN&gt;");&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT face="Courier New" color=#000080&gt;SPWebService webPubService = (SPWebService)myServices[serviceID];&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;o:p&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT face="Courier New" color=#000080&gt;// Get a reference to the Web application that hosts the &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT face="Courier New" color=#000080&gt;// site collection.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT face="Courier New" color=#000080&gt;SPWebApplicationCollection myApps = webPubService.WebApplications;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT face="Courier New" color=#000080&gt;Guid appID = new Guid("&lt;SPAN class=Placeholder&gt;&lt;EM&gt;10ea4e6f-ae37-4909-b04f-f516c066bc37&lt;/EM&gt;&lt;/SPAN&gt;");&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT face="Courier New" color=#000080&gt;SPWebApplication myApp = myApps[appID];&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;o:p&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT face="Courier New" color=#000080&gt;// As alternative to the preceding three lines, you can use&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT face="Courier New" color=#000080&gt;// the following when you know the URL of the Web application:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT face="Courier New" color=#000080&gt;//&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;SPWebApplication myApp = SPWebApplication.Lookup(url_of_Web_app)&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;o:p&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT face="Courier New" color=#000080&gt;// Get a reference to the Web application's collection of &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT face="Courier New" color=#000080&gt;// site collections. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT face="Courier New" color=#000080&gt;SPSiteCollection mySiteCols = myApp.Sites;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;o:p&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT face="Courier New" color=#000080&gt;// Back up a specified site collection. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT face="Courier New" color=#000080&gt;mySiteCols.Backup(@"htt//&lt;SPAN class=Placeholder&gt;&lt;EM&gt;Server/sites/MySiteCollection&lt;/EM&gt;&lt;/SPAN&gt;", @"\\&lt;SPAN class=Placeholder&gt;&lt;EM&gt;OtherServer\WSSBackups\SiteCollections\BackupOfMySiteCollection&lt;/EM&gt;&lt;/SPAN&gt;", true);&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;o:p&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT face="Courier New" color=#000080&gt;// Restoring the site collection is identical to the preceding&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT face="Courier New" color=#000080&gt;// code except that the "Restore" is used in place of "Backup".&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT face="Courier New" color=#000080&gt;//&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT face="Courier New" color=#000080&gt;// mySiteCols.Restore(@"htt//&lt;SPAN class=Placeholder&gt;&lt;EM&gt;Server/sites/MySiteCollection&lt;/EM&gt;&lt;/SPAN&gt;", @"\\&lt;SPAN class=Placeholder&gt;&lt;EM&gt;OtherServer\WSSBackups\SiteCollections\BackupOfMySiteCollection&lt;/EM&gt;&lt;/SPAN&gt;", true);&lt;/FONT&gt;&lt;/P&gt;
&lt;H3 style="MARGIN: 9pt 0in 3pt"&gt;&lt;FONT face=Verdana color=#c0c0c0 size=3&gt;Comments&lt;/FONT&gt;&lt;/H3&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;FONT face=Verdana&gt;The &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;Microsoft.SharePoint.SPSite&lt;/SPAN&gt;&lt;/STRONG&gt; class does not implement &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;Backup.IBackupRestore&lt;/SPAN&gt;&lt;/STRONG&gt; and the &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPSiteCollection.Backup&lt;/SPAN&gt;&lt;/STRONG&gt; and &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPSiteCollection.Restore&lt;/SPAN&gt;&lt;/STRONG&gt; methods do not use the facilities of the &lt;B style="mso-bidi-font-weight: normal"&gt;Microsoft.SharePoint.Administration.Backup&lt;/B&gt; namespace. This means that records of backups and restorations of site collections are &lt;I style="mso-bidi-font-style: normal"&gt;not&lt;/I&gt; kept in a history file (&lt;/FONT&gt;&lt;SPAN class=CodeEmbedded&gt;&lt;SPAN style="mso-bidi-font-family: 'Times New Roman'"&gt;&lt;FONT face="Courier New" color=#000080&gt;spbrtoc.xml&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;) in the backup directory. Similarly, backup and restoration data is not stored in &lt;/FONT&gt;&lt;SPAN class=CodeEmbedded&gt;&lt;SPAN style="mso-bidi-font-family: 'Times New Roman'"&gt;&lt;FONT face="Courier New" color=#000080&gt;spbackup.xml&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt; or &lt;/FONT&gt;&lt;SPAN class=CodeEmbedded&gt;&lt;SPAN style="mso-bidi-font-family: 'Times New Roman'"&gt;&lt;FONT face="Courier New" color=#000080&gt;sprestore.xml&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt; files, neither are these site collection operations logged in &lt;/FONT&gt;&lt;SPAN class=CodeEmbedded&gt;&lt;SPAN style="mso-bidi-font-family: 'Times New Roman'"&gt;&lt;FONT face="Courier New" color=#000080&gt;spbackup.log&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt; or &lt;/FONT&gt;&lt;SPAN class=CodeEmbedded&gt;&lt;SPAN style="mso-bidi-font-family: 'Times New Roman'"&gt;&lt;FONT face="Courier New" color=#000080&gt;sprestore.log&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt; files. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;FONT face=Verdana&gt;If you want to do any kind of logging of backups and restorations of site collection operations, you will have to program your own system. Writing to the system-created &lt;/FONT&gt;&lt;SPAN class=CodeEmbedded&gt;&lt;SPAN style="mso-bidi-font-family: 'Times New Roman'"&gt;&lt;FONT face="Courier New" color=#000080&gt;spbrtoc.xml,&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt; &lt;/FONT&gt;&lt;SPAN class=CodeEmbedded&gt;&lt;SPAN style="mso-bidi-font-family: 'Times New Roman'"&gt;&lt;FONT face="Courier New" color=#000080&gt;spbackup.xml&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;, &lt;/FONT&gt;&lt;SPAN class=CodeEmbedded&gt;&lt;SPAN style="mso-bidi-font-family: 'Times New Roman'"&gt;&lt;FONT face="Courier New" color=#000080&gt;sprestore.xml&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;, &lt;/FONT&gt;&lt;SPAN class=CodeEmbedded&gt;&lt;SPAN style="mso-bidi-font-family: 'Times New Roman'"&gt;&lt;FONT face="Courier New" color=#000080&gt;spbackup.log&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;, and &lt;/FONT&gt;&lt;SPAN class=CodeEmbedded&gt;&lt;SPAN style="mso-bidi-font-family: 'Times New Roman'"&gt;&lt;FONT face="Courier New" color=#000080&gt;sprestore.log&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt; files is not supported in Windows SharePoint Services 3.0. Neither is moving them, deleting them, or renaming them. However, you can create files that merge data from the system-created files with data from your site collection backups and restorations. &lt;/FONT&gt;&lt;/P&gt;
&lt;H2 style="MARGIN: 9pt 0in 3pt"&gt;&lt;FONT face=Verdana color=#808080 size=3&gt;See Also&lt;/FONT&gt;&lt;/H2&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;FONT face=Verdana&gt;&lt;SPAN class=LinkText&gt;&lt;U&gt;&lt;FONT color=#0000ff&gt;&lt;A class="" title="Programming with the Windows SharePoint Services Backup/Restore Object Model" href="http://blogs.msdn.com/sharepointdeveloperdocs/archive/2008/02/07/programming-with-the-windows-sharepoint-services-backup-restore-object-model.aspx" target=_blank mce_href="http://blogs.msdn.com/sharepointdeveloperdocs/archive/2008/02/07/programming-with-the-windows-sharepoint-services-backup-restore-object-model.aspx"&gt;Programming with the Windows SharePoint Services Backup/Restore Object Model&lt;/A&gt;&lt;/FONT&gt;&lt;/U&gt;&lt;/SPAN&gt; &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;FONT face=Verdana&gt;&lt;SPAN class=LinkText&gt;&lt;U&gt;&lt;FONT color=#0000ff&gt;&lt;A class="" title="How to: Programmatically Back Up Content" href="http://blogs.msdn.com/sharepointdeveloperdocs/archive/2008/02/07/how-to-programmatically-back-up-content.aspx" target=_blank mce_href="http://blogs.msdn.com/sharepointdeveloperdocs/archive/2008/02/07/how-to-programmatically-back-up-content.aspx"&gt;How to: Programmatically Back Up Content&lt;/A&gt;&lt;/FONT&gt;&lt;/U&gt;&lt;/SPAN&gt; &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;FONT face=Verdana&gt;&lt;SPAN class=LinkText&gt;&lt;U&gt;&lt;FONT color=#0000ff&gt;&lt;A class="" title="How to: Programmatically Restore Content" href="http://blogs.msdn.com/sharepointdeveloperdocs/archive/2008/02/07/how-to-programmatically-restore-content.aspx" target=_blank mce_href="http://blogs.msdn.com/sharepointdeveloperdocs/archive/2008/02/07/how-to-programmatically-restore-content.aspx"&gt;How to: Programmatically Restore Content&lt;/A&gt;&lt;/FONT&gt;&lt;/U&gt;&lt;/SPAN&gt; &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;FONT face=Verdana&gt;&lt;SPAN class=LinkText&gt;&lt;U&gt;&lt;FONT color=#0000ff&gt;&lt;A class="" title="How to: Create a Content Class That Can Be Backed Up and Restored" href="http://blogs.msdn.com/sharepointdeveloperdocs/archive/2008/02/07/how-to-create-a-content-class-that-can-be-backed-up-and-restored.aspx" target=_blank mce_href="http://blogs.msdn.com/sharepointdeveloperdocs/archive/2008/02/07/how-to-create-a-content-class-that-can-be-backed-up-and-restored.aspx"&gt;How to: Create a Content Class That Can Be Backed Up and Restored&lt;/A&gt;&lt;/FONT&gt;&lt;/U&gt;&lt;/SPAN&gt; &lt;SPAN class=MsoCommentReference&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;o:p&gt;&lt;FONT face=Verdana&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;o:p&gt;&lt;FONT face=Verdana&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=7529706" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/sharepointdeveloperdocs/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://blogs.msdn.com/sharepointdeveloperdocs/archive/tags/restore/default.aspx">restore</category><category domain="http://blogs.msdn.com/sharepointdeveloperdocs/archive/tags/backup/default.aspx">backup</category></item><item><title>How to: Programmatically Restore Content</title><link>http://blogs.msdn.com/sharepointdeveloperdocs/archive/2008/02/07/how-to-programmatically-restore-content.aspx</link><pubDate>Fri, 08 Feb 2008 02:50:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7529297</guid><dc:creator>RickK</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/sharepointdeveloperdocs/comments/7529297.aspx</comments><wfw:commentRss>http://blogs.msdn.com/sharepointdeveloperdocs/commentrss.aspx?PostID=7529297</wfw:commentRss><description>&lt;H1 style="MARGIN: 9pt 0in 3pt -0.25in"&gt;&lt;FONT face=Verdana size=5&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/H1&gt;
&lt;H2 style="MARGIN: 9pt 0in 3pt"&gt;&lt;FONT face=Verdana color=#808080 size=3&gt;Introduction&lt;/FONT&gt;&lt;/H2&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;FONT face=Verdana&gt;This post explains how to create an application that restores from a backup a content component, including a custom content component, of a Windows SharePoint Services 3.0 farm. The post assumes that you are familiar with my previous posts &lt;SPAN class=LinkText&gt;&lt;U&gt;&lt;FONT color=#0000ff&gt;&lt;A class="" title="Overview of Backing Up and Restoring Data in Windows SharePoint Services" href="http://blogs.msdn.com/sharepointdeveloperdocs/archive/2008/01/23/overview-of-backing-up-and-restoring-data-in-windows-sharepoint-services.aspx" target=_blank mce_href="http://blogs.msdn.com/sharepointdeveloperdocs/archive/2008/01/23/overview-of-backing-up-and-restoring-data-in-windows-sharepoint-services.aspx"&gt;Overview of Backing Up and Restoring Data in Windows SharePoint Services&lt;/A&gt;&lt;/FONT&gt;&lt;/U&gt;&lt;/SPAN&gt; and &lt;SPAN class=LinkText&gt;&lt;U&gt;&lt;FONT color=#0000ff&gt;&lt;A class="" title="Programming with the Windows SharePoint Services Backup/Restore Object Model" href="http://blogs.msdn.com/sharepointdeveloperdocs/archive/2008/02/07/programming-with-the-windows-sharepoint-services-backup-restore-object-model.aspx" target=_blank mce_href="http://blogs.msdn.com/sharepointdeveloperdocs/archive/2008/02/07/programming-with-the-windows-sharepoint-services-backup-restore-object-model.aspx"&gt;Programming with the Windows SharePoint Services Backup/Restore Object Model&lt;/A&gt;&lt;/FONT&gt;&lt;/U&gt;&lt;/SPAN&gt;. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in 3pt 0.5in"&gt;&lt;FONT face=Verdana&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;Note&lt;/B&gt;: Unless specified otherwise, all classes referred to in this post are in the &lt;B style="mso-bidi-font-weight: normal"&gt;Microsoft.SharePoint.Administration.Backup&lt;/B&gt; namespace. Classes that you create are in &lt;SPAN class=Bold&gt;&lt;STRONG&gt;&lt;FONT color=#ff00ff&gt;bold pink&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;.&lt;/FONT&gt;&lt;/P&gt;
&lt;H2 style="MARGIN: 9pt 0in 3pt"&gt;&lt;FONT face=Verdana color=#808080 size=3&gt;Procedures&lt;/FONT&gt;&lt;/H2&gt;
&lt;P class=TableSpacing style="MARGIN: 0in 0in 0pt"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;FONT face=Verdana color=#c0c0c0 size=1&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;TABLE class=Procedure style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; mso-border-alt: solid silver .5pt; mso-yfti-tbllook: 480; mso-padding-alt: 0in 5.4pt 0in 5.4pt" cellSpacing=0 cellPadding=0 border=1 class="Procedure"&gt;
&lt;TBODY&gt;
&lt;TR style="mso-yfti-irow: -1; mso-yfti-firstrow: yes"&gt;
&lt;TD class="" style="BORDER-RIGHT: silver 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: silver 1pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #d9d9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: silver 1pt solid; WIDTH: 6.15in; PADDING-TOP: 0in; BORDER-BOTTOM: silver 1pt solid; mso-border-alt: solid silver .5pt" vAlign=top width=590&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in; mso-yfti-cnfc: 1"&gt;&lt;FONT face=Verdana&gt;To Restore&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="COLOR: navy"&gt; a Content Component&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow: 0; mso-yfti-lastrow: yes"&gt;
&lt;TD class="" style="BORDER-RIGHT: silver 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: silver 1pt solid; WIDTH: 6.15in; PADDING-TOP: 0in; BORDER-BOTTOM: silver 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid silver .5pt; mso-border-top-alt: solid silver .5pt" vAlign=top width=590&gt;
&lt;P class=NumberedList1 style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;SPAN style="mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Verdana&gt;1.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;Add a reference to Windows SharePoint Services to your Visual Studio project and add &lt;SPAN class=LanguageKeyword&gt;&lt;STRONG&gt;using&lt;/STRONG&gt;&lt;/SPAN&gt; statements for the &lt;/FONT&gt;&lt;SPAN class=CodeEmbedded&gt;&lt;SPAN style="mso-bidi-font-family: 'Times New Roman'"&gt;&lt;FONT face="Courier New" color=#000080&gt;Microsoft.SharePoint.Administration&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt; and &lt;/FONT&gt;&lt;SPAN class=CodeEmbedded&gt;&lt;SPAN style="mso-bidi-font-family: 'Times New Roman'"&gt;&lt;FONT face="Courier New" color=#000080&gt;Microsoft.SharePoint.Administration.Backup&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt; namespaces to you code file. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=NumberedList1 style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;SPAN style="mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Verdana&gt;2.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;Inside the Main method, create a &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPRestoreSettings&lt;/SPAN&gt;&lt;/STRONG&gt; object by using the static &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPBackupRestoreSettings.GetRestoreSettings&lt;/SPAN&gt;&lt;/STRONG&gt; method. For the first parameter pass the path where the backup is stored. For the second parameter pass &lt;EM&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;a string version&lt;/SPAN&gt;&lt;/EM&gt; of one of the values of &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPRestoreMethodType&lt;/SPAN&gt;&lt;/STRONG&gt;. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;SPAN class=MultilanguageMarkerAuto&gt;&lt;SPAN style="FONT-SIZE: 8pt; mso-bidi-font-size: 10.0pt"&gt;&lt;FONT color=#808080&gt;&lt;FONT face=Verdana&gt;[C#]&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;SPRestoreSettings settings = SPBackupRestoreSettings.GetRestoreSettings((@"\\&lt;SPAN class=Placeholder&gt;&lt;EM&gt;Server&lt;/EM&gt;&lt;/SPAN&gt;\&lt;SPAN class=Placeholder&gt;&lt;EM&gt;WSSBackups&lt;/EM&gt;&lt;/SPAN&gt;", "Overwrite");&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=NumberedList1 style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;SPAN style="mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Verdana&gt;3.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;Prompt the user to specify the content component that is to be restored and assign its name to the &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPBackupRestoreSettings.IndividualItem&lt;/SPAN&gt;&lt;/STRONG&gt; property. To see an itemization of the names of the components on your farm that were included in the last full backup and that can be the objects of restore operations, you can either run the command &lt;/FONT&gt;&lt;SPAN class=CodeEmbedded&gt;&lt;SPAN style="mso-bidi-font-family: 'Times New Roman'"&gt;&lt;FONT face="Courier New" color=#000080&gt;stsadm -o restore -showtree&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt; at the server command line. To specify a different full backup package, use the &lt;/FONT&gt;&lt;SPAN class=CodeEmbedded&gt;&lt;SPAN style="mso-bidi-font-family: 'Times New Roman'"&gt;&lt;FONT face="Courier New" color=#000080&gt;-backupid&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt; parameter. Alternatively, you can visit &lt;SPAN class=UI&gt;&lt;STRONG&gt;&lt;FONT color=#808080&gt;Operations &amp;gt; Perform a Restore&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/SPAN&gt; in the Central Administration application. To specify the whole farm, use "Farm" as the name. (Setting the property to &lt;SPAN class=LanguageKeyword&gt;&lt;STRONG&gt;null&lt;/STRONG&gt;&lt;/SPAN&gt; also selects the whole farm for backup assuming that you use &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPBackupRestoreSettings.IndividualItem&lt;/SPAN&gt;&lt;/STRONG&gt; in all subsequent code to identify by name the component to be restored, as you should. For an example, see the use of the &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPBackupRestoreConsole.FindItems&lt;/SPAN&gt;&lt;/STRONG&gt; method in step 9.)&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;SPAN class=MultilanguageMarkerAuto&gt;&lt;SPAN style="FONT-SIZE: 8pt; mso-bidi-font-size: 10.0pt"&gt;&lt;FONT color=#808080&gt;&lt;FONT face=Verdana&gt;[C#]&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;Console.Write("Enter name of component to restore (default is whole farm):");&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;settings.IndividualItem = Console.ReadLine();&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=NumberedList1 style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;SPAN style="mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Verdana&gt;4.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;If you want to restore from a backup other than the most recent, identify the backup package by assigning its GUID to the &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPRestoreSettings.BackupId&lt;/SPAN&gt;&lt;/STRONG&gt; property. A record of each backup operation for a particular backup location is stored in &lt;/FONT&gt;&lt;SPAN class=CodeEmbedded&gt;&lt;SPAN style="mso-bidi-font-family: 'Times New Roman'"&gt;&lt;FONT face="Courier New" color=#000080&gt;spbrtoc.xml&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt; in the root of the location. Each backup and restore operation is represented in the file by an &lt;/FONT&gt;&lt;SPAN class=CodeEmbedded&gt;&lt;SPAN style="mso-bidi-font-family: 'Times New Roman'"&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;lt;SPHistoryObject&amp;gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt; element. If the operation is a backup, the &lt;/FONT&gt;&lt;SPAN class=CodeEmbedded&gt;&lt;SPAN style="mso-bidi-font-family: 'Times New Roman'"&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;lt;IsBackup&amp;gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt; child of the &lt;/FONT&gt;&lt;SPAN class=CodeEmbedded&gt;&lt;SPAN style="mso-bidi-font-family: 'Times New Roman'"&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;lt;SPHistoryObject&amp;gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt; element is "&lt;/FONT&gt;&lt;SPAN class=CodeEmbedded&gt;&lt;SPAN style="mso-bidi-font-family: 'Times New Roman'"&gt;&lt;FONT face="Courier New" color=#000080&gt;True&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;". The &lt;/FONT&gt;&lt;SPAN class=CodeEmbedded&gt;&lt;SPAN style="mso-bidi-font-family: 'Times New Roman'"&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;lt;SPId&amp;gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt; element of the &lt;/FONT&gt;&lt;SPAN class=CodeEmbedded&gt;&lt;SPAN style="mso-bidi-font-family: 'Times New Roman'"&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;lt;SPHistoryObject&amp;gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt; element contains the GUID of the backup.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=AlertTextinList1 style="MARGIN: 3pt 0in 3pt 0.5in"&gt;&lt;FONT face=Verdana&gt;&lt;SPAN class=LabelEmbedded&gt;&lt;STRONG&gt;Note: &lt;/STRONG&gt;&lt;/SPAN&gt;To programmatically obtain the list of all backup and restore operations, use the &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPBackupRestoreConsole.GetHistory&lt;/SPAN&gt;&lt;/STRONG&gt; method. This method returns an &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPBackupRestoreHistoryList&lt;/SPAN&gt;&lt;/STRONG&gt; object that contains &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPBackupRestoreHistoryObject&lt;/SPAN&gt;&lt;/STRONG&gt; objects. Each of the latter represents an operation and holds its GUID in the &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPBackupRestoreHistoryObject.SelfId&lt;/SPAN&gt;&lt;/STRONG&gt; property.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;SPAN class=MultilanguageMarkerAuto&gt;&lt;SPAN style="FONT-SIZE: 8pt; mso-bidi-font-size: 10.0pt"&gt;&lt;FONT color=#808080&gt;&lt;FONT face=Verdana&gt;[C#]&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;settings.BackupId = new Guid("&lt;SPAN class=Placeholder&gt;&lt;EM&gt;GUID&lt;/EM&gt;&lt;/SPAN&gt;");&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=NumberedList1 style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;SPAN style="mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Verdana&gt;5.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;Optionally, set one or both of the &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPBackupRestoreSettings.IsVerbose&lt;/SPAN&gt;&lt;/STRONG&gt; and &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPBackupRestoreSettings.UpdateProgress&lt;/SPAN&gt;&lt;/STRONG&gt; properties. (For details about these properties, see the reference topics for them.) &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;SPAN class=MultilanguageMarkerAuto&gt;&lt;SPAN style="FONT-SIZE: 8pt; mso-bidi-font-size: 10.0pt"&gt;&lt;FONT color=#808080&gt;&lt;FONT face=Verdana&gt;[C#]&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;settings.IsVerbose = true;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;settings.UpdateProgress = 10;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=NumberedList1 style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;SPAN style="mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Verdana&gt;6.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;If necessary, set the &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPRestoreSettings.FarmAdminLoginName&lt;/SPAN&gt;&lt;/STRONG&gt; and &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPRestoreSettings.FarmAdminLoginPassword&lt;/SPAN&gt;&lt;/STRONG&gt; properties. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;SPAN class=MultilanguageMarkerAuto&gt;&lt;SPAN style="FONT-SIZE: 8pt; mso-bidi-font-size: 10.0pt"&gt;&lt;FONT color=#808080&gt;&lt;FONT face=Verdana&gt;[C#]&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;settings.FarmAdminLoginName = "Bob";&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;settings.FarmAdminPassword = "7*j2U";&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=NumberedList1 style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;SPAN style="mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Verdana&gt;7.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;Create the restore operation with the &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPBackupRestoreConsole.CreateBackupRestore&lt;/SPAN&gt;&lt;/STRONG&gt; method. (A history object for the operation is also created.)&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;SPAN class=MultilanguageMarkerAuto&gt;&lt;SPAN style="FONT-SIZE: 8pt; mso-bidi-font-size: 10.0pt"&gt;&lt;FONT color=#808080&gt;&lt;FONT face=Verdana&gt;[C#]&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;Guid restore = SPBackupRestoreConsole.CreateBackupRestore(settings);&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=NumberedList1 style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;SPAN style="mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Verdana&gt;8.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;If your UI has users type a component name instead of pick one from a list, you must make sure that the name entered matches exactly one component. Add the following line to your Main method.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;SPAN class=MultilanguageMarkerAuto&gt;&lt;SPAN style="FONT-SIZE: 8pt; mso-bidi-font-size: 10.0pt"&gt;&lt;FONT color=#808080&gt;&lt;FONT face=Verdana&gt;[C#]&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;SPBackupRestoreObject node = EnsureUniqueValidComponentName(settings, ref restore);&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=NumberedList1 style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;SPAN style="mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Verdana&gt;9.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;Add the following declaration and implementation of your &lt;SPAN class=Bold&gt;&lt;STRONG&gt;&lt;FONT color=#ff00ff&gt;EnsureUniqueValidComponentName&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/SPAN&gt; method. Use the &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPBackupRestoreConsole.FindItems&lt;/SPAN&gt;&lt;/STRONG&gt; method to retrieve a collection of content objects whose names match the user-entered name. If there is no match, prompt the user to try again. If there is more than one, prompt the user to be more specific. If the component name that the user entered is valid and not ambiguous, get a reference to the &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPBackupRestoreObject&lt;/SPAN&gt;&lt;/STRONG&gt; object that represents the component that the user wants to restore.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;SPAN class=MultilanguageMarkerAuto&gt;&lt;SPAN style="FONT-SIZE: 8pt; mso-bidi-font-size: 10.0pt"&gt;&lt;FONT color=#808080&gt;&lt;FONT face=Verdana&gt;[C#]&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;private static SPBackupRestoreObject EnsureUniqueValidComponentName(SPBackupRestoreSettings settings, ref Guid operationGUID)&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;{&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;SPBackupRestoreObjectCollection list = SPBackupRestoreConsole.FindItems(operationGUID, settings.IndividualItem);&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;SPBackupRestoreObject component = null;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;o:p&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;if (list.Count &amp;lt;= 0)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Console.WriteLine("There is no component with that name. Run again with a new name.");&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Console.WriteLine("Press Enter to continue.");&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Console.ReadLine();&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;else if (list.Count &amp;gt; 1)&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;// The component name specified is ambiguous. Prompt user to be more specific.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Console.WriteLine("More than one component matches the name you entered.");&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Console.WriteLine("Run again with one of the following:");&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;for (int i = 0; i &amp;lt; list.Count; i++)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Console.WriteLine("\t{0}", list[i].ToString());&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Console.WriteLine("Press Enter to continue.");&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Console.ReadLine();&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;else&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;component = list[0];&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;o:p&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;return component;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;o:p&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;}&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=NumberedList1 style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;SPAN style="mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Verdana&gt;10.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;In the Main method, create a conditional structure that will run only if your &lt;SPAN class=Bold&gt;&lt;STRONG&gt;&lt;FONT color=#ff00ff&gt;EnsureUniqueValidComponentName&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/SPAN&gt; method has returned a valid node. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;SPAN class=MultilanguageMarkerAuto&gt;&lt;SPAN style="FONT-SIZE: 8pt; mso-bidi-font-size: 10.0pt"&gt;&lt;FONT color=#808080&gt;&lt;FONT face=Verdana&gt;[C#]&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;if (node != null)&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;{&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;// TODO: Set the restore operation as the active operation&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;// and run it.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;}&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=NumberedList1 style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;SPAN style="mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Verdana&gt;11.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;Replace the "TODO" line in the previous step with the following code. This sets the operation to be the active operation with the &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPBackupRestoreConsole.SetActive&lt;/SPAN&gt;&lt;/STRONG&gt; method and tests to verify that it succeeded. If it fails, which it will if another backup or restore operation is already underway, report an error to the UI of your application.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;SPAN class=MultilanguageMarkerAuto&gt;&lt;SPAN style="FONT-SIZE: 8pt; mso-bidi-font-size: 10.0pt"&gt;&lt;FONT color=#808080&gt;&lt;FONT face=Verdana&gt;[C#]&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;if (SPBackupRestoreConsole.SetActive(restore) == true)&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;{&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;// TODO: Run the operation. See next step.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;}&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;else&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;{&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;// Report through your UI that another backup&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;// or restore operation is underway. &lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;Console.WriteLine("Another backup or restore operation is already underway. Try again when it ends.");&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;}&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=NumberedList1 style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;SPAN style="mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Verdana&gt;12.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;In the code branch that runs if the &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPBackupRestoreConsole.SetActive&lt;/SPAN&gt;&lt;/STRONG&gt; call succeeds, run the operation with the &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPBackupRestoreConsole.Run&lt;/SPAN&gt;&lt;/STRONG&gt; method. Test that the operation succeeds. If it fails, report the operation's failure message to your UI. The following code replaces the "TODO" line in the previous step. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;SPAN class=MultilanguageMarkerAuto&gt;&lt;SPAN style="FONT-SIZE: 8pt; mso-bidi-font-size: 10.0pt"&gt;&lt;FONT color=#808080&gt;&lt;FONT face=Verdana&gt;[C#]&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;if (SPBackupRestoreConsole.Run(restore, node) == false)&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;{&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;// Report "error" through your UI.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;String error = SPBackupRestoreConsole.Get(restore).FailureMessage;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Console.WriteLine(error);&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;}&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=NumberedList1 style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;SPAN style="mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Verdana&gt;13.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;Clean up the restore with the &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPBackupRestoreConsole.Remove&lt;/SPAN&gt;&lt;/STRONG&gt; method. Add the following code just before the closing brace you inserted in step 10.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;SPAN class=MultilanguageMarkerAuto&gt;&lt;SPAN style="FONT-SIZE: 8pt; mso-bidi-font-size: 10.0pt"&gt;&lt;FONT color=#808080&gt;&lt;FONT face=Verdana&gt;[C#]&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;// Clean up the operation.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;SPBackupRestoreConsole.Remove(restore);&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;o:p&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;Console.WriteLine("Restore attempt complete. Press Enter to continue.");&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;Console.ReadLine();&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;o:p&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P class=TableSpacing style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Verdana color=#c0c0c0 size=1&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;o:p&gt;&lt;FONT face=Verdana&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;H2 style="MARGIN: 9pt 0in 3pt"&gt;&lt;FONT face=Verdana color=#808080 size=3&gt;Example&lt;/FONT&gt;&lt;/H2&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;FONT face=Verdana&gt;The following code shows how to program a restoration of a content component. Replace the placeholder &lt;SPAN class=Placeholder&gt;&lt;EM&gt;\\Server\WSSBackups&lt;/EM&gt;&lt;/SPAN&gt; with the path of your backup location. The runtime will automatically find the most recent backup at that location.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;FONT face=Verdana&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT face="Courier New" color=#000080&gt;using System;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT face="Courier New" color=#000080&gt;using Microsoft.SharePoint.Administration;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT face="Courier New" color=#000080&gt;using Microsoft.SharePoint.Administration.Backup;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;o:p&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT face="Courier New" color=#000080&gt;namespace &lt;SPAN class=Placeholder&gt;&lt;EM&gt;MyCompany&lt;/EM&gt;&lt;/SPAN&gt;.SharePoint.Administration.Backup&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT face="Courier New" color=#000080&gt;{&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;class Restore&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;static void Main(string[] args)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;// Create the restore settings.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;SPRestoreSettings settings = SPBackupRestoreSettings.GetRestoreSettings(@"\\&lt;SPAN class=Placeholder&gt;&lt;EM&gt;Server&lt;/EM&gt;&lt;/SPAN&gt;\&lt;SPAN class=Placeholder&gt;&lt;EM&gt;WSSBackups&lt;/EM&gt;&lt;/SPAN&gt;", "Overwrite");&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;o:p&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;// Identify the content component to restore.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Console.Write("Enter name of component to restore (default is whole farm):");&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;settings.IndividualItem = Console.ReadLine();&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;// Set optional operation parameters.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;settings.IsVerbose = true;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;settings.UpdateProgress = 10;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;// Create the restore operation and return its ID.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Guid restore = SPBackupRestoreConsole.CreateBackupRestore(settings);&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;o:p&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;SPBackupRestoreObject node = EnsureUniqueValidComponentName(settings, ref restore);&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;o:p&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;if (node != null)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;// Set the restore as the active job and run it.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;if (SPBackupRestoreConsole.SetActive(restore) == true)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;if (SPBackupRestoreConsole.Run(restore, node) == false)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;// Report "error" through your UI.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;String error = SPBackupRestoreConsole.Get(restore).FailureMessage;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Console.WriteLine(error);&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;else&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;// Report through your UI that another backup&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;// or restore operation is underway. &lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Console.WriteLine("Another backup or restore operation is already underway. Try again when it ends.");&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;o:p&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;// Clean up the operation.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;SPBackupRestoreConsole.Remove(restore);&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;o:p&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Console.WriteLine("Restore attempt complete. Press Enter to continue.");&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Console.ReadLine();&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}// end Main&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;o:p&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;private static SPBackupRestoreObject EnsureUniqueValidComponentName(SPBackupRestoreSettings settings, ref Guid operationGUID)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;SPBackupRestoreObjectCollection list = SPBackupRestoreConsole.FindItems(operationGUID, settings.IndividualItem);&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;SPBackupRestoreObject component = null;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;o:p&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;if (list.Count &amp;lt;= 0)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Console.WriteLine("There is no component with that name. Run again with a new name.");&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Console.WriteLine("Press Enter to continue.");&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;Console.ReadLine();&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;else if (list.Count &amp;gt; 1)&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;// The component name specified is ambiguous. Prompt user to be more specific.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Console.WriteLine("More than one component matches the name you entered.");&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Console.WriteLine("Run again with one of the following:");&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;for (int i = 0; i &amp;lt; list.Count; i++)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Console.WriteLine("\t{0}", list[i].ToString());&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Console.WriteLine("Press Enter to continue.");&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Console.ReadLine();&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;else&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;component = list[0];&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;o:p&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;return component;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;o:p&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}// end EnsureUniqueValidComponentName&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;o:p&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}// end Restore class&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT face="Courier New" color=#000080&gt;}// end namespace&lt;/FONT&gt;&lt;/P&gt;
&lt;H2 style="MARGIN: 9pt 0in 3pt"&gt;&lt;FONT size=3&gt;&lt;FONT color=#808080&gt;&lt;FONT face=Verdana&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;See Also&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/H2&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;FONT face=Verdana&gt;&lt;SPAN class=LinkText&gt;&lt;U&gt;&lt;FONT color=#0000ff&gt;&lt;SPAN class=LinkText&gt;&lt;FONT color=#0000ff&gt;&lt;SPAN class=LinkText&gt;&lt;FONT color=#0000ff&gt;&lt;A class="" title="Programming with the Windows SharePoint Services Backup/Restore Object Model" href="http://blogs.msdn.com/sharepointdeveloperdocs/archive/2008/02/07/programming-with-the-windows-sharepoint-services-backup-restore-object-model.aspx" target=_blank mce_href="http://blogs.msdn.com/sharepointdeveloperdocs/archive/2008/02/07/programming-with-the-windows-sharepoint-services-backup-restore-object-model.aspx"&gt;Programming with the Windows SharePoint Services Backup/Restore Object Model&lt;/A&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/U&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;FONT face=Verdana&gt;&lt;SPAN class=LinkText&gt;&lt;U&gt;&lt;FONT color=#0000ff&gt;&lt;A class="" title="How to: Programmatically Backup Content" href="http://blogs.msdn.com/sharepointdeveloperdocs/archive/2008/02/07/how-to-programmatically-back-up-content.aspx" target=_blank mce_href="http://blogs.msdn.com/sharepointdeveloperdocs/archive/2008/02/07/how-to-programmatically-back-up-content.aspx"&gt;How to: Programmatically Back Up Content&lt;/A&gt;&lt;/FONT&gt;&lt;/U&gt;&lt;/SPAN&gt; &lt;/FONT&gt;&lt;/P&gt;&lt;FONT face=Verdana&gt;&lt;SPAN class=LinkText&gt;&lt;U&gt;&lt;FONT color=#0000ff&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;FONT face=Verdana&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;FONT face=Verdana&gt;&lt;SPAN class=LinkText&gt;&lt;U&gt;&lt;FONT color=#0000ff&gt;&lt;A class="" title="How to: Create a Content Class That Can Be Backed Up and Restored" href="http://blogs.msdn.com/sharepointdeveloperdocs/archive/2008/02/07/how-to-create-a-content-class-that-can-be-backed-up-and-restored.aspx" target=_blank mce_href="http://blogs.msdn.com/sharepointdeveloperdocs/archive/2008/02/07/how-to-create-a-content-class-that-can-be-backed-up-and-restored.aspx"&gt;How to: Create a Content Class That Can Be Backed Up and Restored&lt;/A&gt;&lt;/FONT&gt;&lt;/U&gt;&lt;/SPAN&gt; &lt;SPAN class=MsoCommentReference&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;o:p&gt;&lt;FONT face=Verdana&gt;&lt;/FONT&gt;&lt;/o:p&gt;&amp;nbsp;&lt;/P&gt;&lt;/FONT&gt;&lt;/U&gt;&lt;/SPAN&gt;&lt;/FONT&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;o:p&gt;&lt;FONT face=Verdana&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;o:p&gt;&lt;FONT face=Verdana&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=7529297" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/sharepointdeveloperdocs/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://blogs.msdn.com/sharepointdeveloperdocs/archive/tags/restore/default.aspx">restore</category><category domain="http://blogs.msdn.com/sharepointdeveloperdocs/archive/tags/backup/default.aspx">backup</category></item><item><title>How to: Programmatically Back Up Content</title><link>http://blogs.msdn.com/sharepointdeveloperdocs/archive/2008/02/07/how-to-programmatically-back-up-content.aspx</link><pubDate>Fri, 08 Feb 2008 02:22:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7528894</guid><dc:creator>RickK</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/sharepointdeveloperdocs/comments/7528894.aspx</comments><wfw:commentRss>http://blogs.msdn.com/sharepointdeveloperdocs/commentrss.aspx?PostID=7528894</wfw:commentRss><description>&lt;H2 style="MARGIN: 9pt 0in 3pt"&gt;&lt;FONT face=Verdana color=#808080 size=3&gt;Introduction&lt;/FONT&gt;&lt;/H2&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;FONT face=Verdana&gt;This post explains how to program a backup of a content component, including custom components, in a Windows SharePoint Services 3.0 farm. The post assumes that you are familiar with my previous posts &lt;SPAN class=LinkText&gt;&lt;U&gt;&lt;FONT color=#0000ff&gt;&lt;A class="" title="Overview of Backing Up and Restoring Data in Windows SharePoint Services" href="http://blogs.msdn.com/sharepointdeveloperdocs/archive/2008/01/23/overview-of-backing-up-and-restoring-data-in-windows-sharepoint-services.aspx" target=_blank mce_href="http://blogs.msdn.com/sharepointdeveloperdocs/archive/2008/01/23/overview-of-backing-up-and-restoring-data-in-windows-sharepoint-services.aspx"&gt;Overview of Backing Up and Restoring Data in Windows SharePoint Services&lt;/A&gt;&lt;/FONT&gt;&lt;/U&gt;&lt;/SPAN&gt; and &lt;SPAN class=LinkText&gt;&lt;U&gt;&lt;FONT color=#0000ff&gt;&lt;A class="" title="Programming with the Windows SharePoint Services Backup/Restore Object Model" href="http://blogs.msdn.com/sharepointdeveloperdocs/archive/2008/02/07/programming-with-the-windows-sharepoint-services-backup-restore-object-model.aspx" target=_blank mce_href="http://blogs.msdn.com/sharepointdeveloperdocs/archive/2008/02/07/programming-with-the-windows-sharepoint-services-backup-restore-object-model.aspx"&gt;Programming with the Windows SharePoint Services Backup/Restore Object Model&lt;/A&gt;&lt;/FONT&gt;&lt;/U&gt;&lt;/SPAN&gt;. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in 3pt 0.5in"&gt;&lt;FONT face=Verdana&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;Note&lt;/B&gt;: Unless specified otherwise, all classes referred to in this post are in the &lt;B style="mso-bidi-font-weight: normal"&gt;Microsoft.SharePoint.Administration.Backup&lt;/B&gt; namespace. Classes that you create are in &lt;SPAN class=Bold&gt;&lt;STRONG&gt;&lt;FONT color=#ff00ff&gt;bold pink&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;. &lt;/FONT&gt;&lt;/P&gt;
&lt;H2 style="MARGIN: 9pt 0in 3pt"&gt;&lt;FONT face=Verdana color=#808080 size=3&gt;Procedures&lt;/FONT&gt;&lt;/H2&gt;
&lt;P class=TableSpacing style="MARGIN: 0in 0in 0pt"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;FONT face=Verdana color=#c0c0c0 size=1&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;TABLE class=Procedure style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; mso-border-alt: solid silver .5pt; mso-yfti-tbllook: 480; mso-padding-alt: 0in 5.4pt 0in 5.4pt" cellSpacing=0 cellPadding=0 border=1 class="Procedure"&gt;
&lt;TBODY&gt;
&lt;TR style="mso-yfti-irow: -1; mso-yfti-firstrow: yes"&gt;
&lt;TD class="" style="BORDER-RIGHT: silver 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: silver 1pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #d9d9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: silver 1pt solid; WIDTH: 6.15in; PADDING-TOP: 0in; BORDER-BOTTOM: silver 1pt solid; mso-border-alt: solid silver .5pt" vAlign=top width=590&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in; mso-yfti-cnfc: 1"&gt;&lt;FONT face=Verdana&gt;To Back Up a Content Component&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="COLOR: navy"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow: 0; mso-yfti-lastrow: yes"&gt;
&lt;TD class="" style="BORDER-RIGHT: silver 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: silver 1pt solid; WIDTH: 6.15in; PADDING-TOP: 0in; BORDER-BOTTOM: silver 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid silver .5pt; mso-border-top-alt: solid silver .5pt" vAlign=top width=590&gt;
&lt;P class=NumberedList1 style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;SPAN style="mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Verdana&gt;1.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;Add a reference to &lt;/FONT&gt;&lt;A style="mso-comment-reference: rk_1; mso-comment-date: 20080207T1503"&gt;&lt;FONT face=Verdana&gt;Windows SharePoint Services &lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Verdana&gt;to your Visual Studio project and add &lt;SPAN class=LanguageKeyword&gt;&lt;STRONG&gt;using&lt;/STRONG&gt;&lt;/SPAN&gt; statements for the &lt;/FONT&gt;&lt;SPAN class=CodeEmbedded&gt;&lt;SPAN style="mso-bidi-font-family: 'Times New Roman'"&gt;&lt;FONT face="Courier New" color=#000080&gt;Microsoft.SharePoint.Administration&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt; and &lt;/FONT&gt;&lt;SPAN class=CodeEmbedded&gt;&lt;SPAN style="mso-bidi-font-family: 'Times New Roman'"&gt;&lt;FONT face="Courier New" color=#000080&gt;Microsoft.SharePoint.Administration.Backup&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt; namespaces to you code file. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=NumberedList1 style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;SPAN style="mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Verdana&gt;2.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;Inside the Main method, prompt the user to specify where the backup should be stored. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;SPAN class=MultilanguageMarkerAuto&gt;&lt;SPAN style="FONT-SIZE: 8pt; mso-bidi-font-size: 10.0pt"&gt;&lt;FONT color=#808080&gt;&lt;FONT face=Verdana&gt;[C#]&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;Console.Write("Enter full UNC path to the directory where the backup will be stored:");&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;String backupLocation = Console.ReadLine();&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=NumberedList1 style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;SPAN style="mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Verdana&gt;3.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;Inside the Main method, create a &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPBackupSettings&lt;/SPAN&gt;&lt;/STRONG&gt; object by using the static &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPBackupRestoreSettings.GetBackupSettings&lt;/SPAN&gt;&lt;/STRONG&gt; method. For the first parameter pass the path where the backup should be stored. For the second parameter pass &lt;EM&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;a string version&lt;/SPAN&gt;&lt;/EM&gt; of one of the values of &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPBackupMethodType&lt;/SPAN&gt;&lt;/STRONG&gt;. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;SPAN class=MultilanguageMarkerAuto&gt;&lt;SPAN style="FONT-SIZE: 8pt; mso-bidi-font-size: 10.0pt"&gt;&lt;FONT color=#808080&gt;&lt;FONT face=Verdana&gt;[C#]&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;SPBackupSettings settings = SPBackupRestoreSettings.GetBackupSettings(backupLocation, "Full");&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=NumberedList1 style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;SPAN style="mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Verdana&gt;4.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;Prompt the user to specify the content component to back up and assign its name to the &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPBackupRestoreSettings.IndividualItem&lt;/SPAN&gt;&lt;/STRONG&gt; property. To see an itemization of the names of the components on your farm that can be the objects of backup operations, you can either run the command &lt;/FONT&gt;&lt;SPAN class=CodeEmbedded&gt;&lt;SPAN style="mso-bidi-font-family: 'Times New Roman'"&gt;&lt;FONT face="Courier New" color=#000080&gt;stsadm -o backup -showtree&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt; at the server command line or visit &lt;SPAN class=UI&gt;&lt;STRONG&gt;&lt;FONT color=#808080&gt;Operations &amp;gt; Perform a Backup&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/SPAN&gt; in the Central Administration application. To specify the whole farm, use "Farm" as the name. (Setting the property to &lt;SPAN class=LanguageKeyword&gt;&lt;STRONG&gt;null&lt;/STRONG&gt;&lt;/SPAN&gt; also selects the whole farm for backup assuming that you use &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPBackupRestoreSettings.IndividualItem&lt;/SPAN&gt;&lt;/STRONG&gt; in all subsequent code to identify by name the component to be backed up, as you should. For an example, see the use of the &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPBackupRestoreConsole.FindItems&lt;/SPAN&gt;&lt;/STRONG&gt; method in step 8.)&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;SPAN class=MultilanguageMarkerAuto&gt;&lt;SPAN style="FONT-SIZE: 8pt; mso-bidi-font-size: 10.0pt"&gt;&lt;FONT color=#808080&gt;&lt;FONT face=Verdana&gt;[C#]&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;Console.Write("Enter name of component to backup (default is whole farm):");&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;settings.IndividualItem = Console.ReadLine();&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=NumberedList1 style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;SPAN style="mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Verdana&gt;5.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;Optionally, set one or more of the &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPBackupRestoreSettings.IsVerbose&lt;/SPAN&gt;&lt;/STRONG&gt;, &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPBackupRestoreSettings.UpdateProgress&lt;/SPAN&gt;&lt;/STRONG&gt;, and &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPBackupSettings.BackupTheads&lt;/SPAN&gt;&lt;/STRONG&gt; properties. (For details about these properties, see the reference topics for them.) &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;SPAN class=MultilanguageMarkerAuto&gt;&lt;SPAN style="FONT-SIZE: 8pt; mso-bidi-font-size: 10.0pt"&gt;&lt;FONT color=#808080&gt;&lt;FONT face=Verdana&gt;[C#]&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;settings.IsVerbose = true;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;settings.UpdateProgress = 10;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;settings.BackupThreads = 2;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=NumberedList1 style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;SPAN style="mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Verdana&gt;6.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;Create the backup operation with the &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPBackupRestoreConsole.CreateBackupRestore&lt;/SPAN&gt;&lt;/STRONG&gt; method. (A history object for the operation is also created. For more information, see &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPBackupRestoreHistoryObject&lt;/SPAN&gt;&lt;/STRONG&gt; and &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPBackupRestoreHistoryList&lt;/SPAN&gt;&lt;/STRONG&gt;.)&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;SPAN class=MultilanguageMarkerAuto&gt;&lt;SPAN style="FONT-SIZE: 8pt; mso-bidi-font-size: 10.0pt"&gt;&lt;FONT color=#808080&gt;&lt;FONT face=Verdana&gt;[C#]&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;Guid backup = SPBackupRestoreConsole.CreateBackupRestore(settings);&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=NumberedList1 style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;SPAN style="mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Verdana&gt;7.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;If your UI has users type a component name instead of pick one from a list, you must make sure that the name entered matches exactly one component. Add the following line to your Main method.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;SPAN class=MultilanguageMarkerAuto&gt;&lt;SPAN style="FONT-SIZE: 8pt; mso-bidi-font-size: 10.0pt"&gt;&lt;FONT color=#808080&gt;&lt;FONT face=Verdana&gt;[C#]&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;SPBackupRestoreObject node = EnsureUniqueValidComponentName(settings, ref backup);&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=NumberedList1 style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;SPAN style="mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Verdana&gt;8.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;Add the following declaration and implementation of your &lt;SPAN class=Bold&gt;&lt;STRONG&gt;&lt;FONT color=#ff00ff&gt;EnsureUniqueValidComponentName&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/SPAN&gt; method. Use the &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPBackupRestoreConsole.FindItems&lt;/SPAN&gt;&lt;/STRONG&gt; method to retrieve a collection of content objects whose names match the user-entered name. If there is no match, prompt the user to try again. If there is more than one, prompt the user to be more specific. If the component name that the user entered is valid and not ambiguous, get a reference to the &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPBackupRestoreObject&lt;/SPAN&gt;&lt;/STRONG&gt; object that represents the component that the user wants to restore.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;SPAN class=MultilanguageMarkerAuto&gt;&lt;SPAN style="FONT-SIZE: 8pt; mso-bidi-font-size: 10.0pt"&gt;&lt;FONT color=#808080&gt;&lt;FONT face=Verdana&gt;[C#]&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;private static SPBackupRestoreObject EnsureUniqueValidComponentName(SPBackupRestoreSettings settings, ref Guid operationGUID)&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;{&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;SPBackupRestoreObjectCollection list = SPBackupRestoreConsole.FindItems(operationGUID, settings.IndividualItem);&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;SPBackupRestoreObject component = null;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;o:p&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;if (list.Count &amp;lt;= 0)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Console.WriteLine("There is no component with that name. Run again with a new name.");&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Console.WriteLine("Press Enter to continue.");&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;Console.ReadLine();&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;else if (list.Count &amp;gt; 1)&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;// The component name specified is ambiguous. Prompt user to be more specific.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Console.WriteLine("More than one component matches the name you entered.");&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Console.WriteLine("Run again with one of the following:");&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;for (int i = 0; i &amp;lt; list.Count; i++)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Console.WriteLine("\t{0}", list[i].ToString());&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Console.WriteLine("Press Enter to continue.");&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Console.ReadLine();&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;else&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;component = list[0];&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;o:p&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;return component;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;o:p&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;}&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=NumberedList1 style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;SPAN style="mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Verdana&gt;9.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;In the Main method, create a &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;Boolean&lt;/SPAN&gt;&lt;/STRONG&gt; flag that will signal whether there is sufficient space for the backup, and a conditional structure that will run only if your &lt;SPAN class=Bold&gt;&lt;STRONG&gt;&lt;FONT color=#ff00ff&gt;EnsureUniqueValidComponentName&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/SPAN&gt; method has returned a valid node.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;SPAN class=MultilanguageMarkerAuto&gt;&lt;SPAN style="FONT-SIZE: 8pt; mso-bidi-font-size: 10.0pt"&gt;&lt;FONT color=#808080&gt;&lt;FONT face=Verdana&gt;[C#]&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;Boolean targetHasEnoughSpace = false;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;if (node != null)&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;{&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;targetHasEnoughSpace = EnsureEnoughDiskSpace(backupLocation, backup, node);&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;}&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=NumberedList1 style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;SPAN style="mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Verdana&gt;10.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;Add the following declaration and implementation of your &lt;SPAN class=Bold&gt;&lt;STRONG&gt;&lt;FONT color=#ff00ff&gt;EnsureEnoughDiskSpace&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/SPAN&gt; method. Use the &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPBackupRestoreConsole.DiskSizeRequired&lt;/SPAN&gt;&lt;/STRONG&gt; method to obtain the amount of space that is needed, and the &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPBackupRestoreConsole.DiskSize&lt;/SPAN&gt;&lt;/STRONG&gt; method to determine how much free space is available on the destination disk.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;SPAN class=MultilanguageMarkerAuto&gt;&lt;SPAN style="FONT-SIZE: 8pt; mso-bidi-font-size: 10.0pt"&gt;&lt;FONT color=#808080&gt;&lt;FONT face=Verdana&gt;[C#]&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;private static Boolean EnsureEnoughDiskSpace(String location, Guid backup, SPBackupRestoreObject node)&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;{&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;UInt64 backupSize = SPBackupRestoreConsole.DiskSizeRequired(backup, node);&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;UInt64 diskFreeSize = 0;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;UInt64 diskSize = 0;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Boolean hasEnoughSpace = true;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;o:p&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;try&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;SPBackupRestoreConsole.DiskSize(location, out diskFreeSize, out diskSize);&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;catch&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;diskFreeSize = diskSize = UInt64.MaxValue;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;o:p&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;if (backupSize &amp;gt; diskFreeSize)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;// Report through your UI that there is not enough disk space.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Console.WriteLine("{0} bytes of space is needed but the disk hosting {1} has only {2}.", backupSize, location, diskFreeSize);&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Console.WriteLine("Please try again with a different backup location or a smaller component.");&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;hasEnoughSpace = false;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;else if (backupSize == UInt64.MaxValue || diskFreeSize == 0)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;// Report through your UI that it cannot be determined whether there is enough disk space.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Console.WriteLine("Cannot determine if that location has enough disk space.");&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Console.WriteLine("Please try again with a different backup location or a smaller component.");&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;hasEnoughSpace = false;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;return hasEnoughSpace;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;o:p&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;}&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=NumberedList1 style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;SPAN style="mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Verdana&gt;11.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;In the Main method, create a conditional structure that will run only if your &lt;SPAN class=Bold&gt;&lt;STRONG&gt;&lt;FONT color=#ff00ff&gt;EnsureEnoughDiskSpace&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/SPAN&gt; returns &lt;SPAN class=LanguageKeyword&gt;&lt;STRONG&gt;true&lt;/STRONG&gt;&lt;/SPAN&gt;. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;SPAN class=MultilanguageMarkerAuto&gt;&lt;SPAN style="FONT-SIZE: 8pt; mso-bidi-font-size: 10.0pt"&gt;&lt;FONT color=#808080&gt;&lt;FONT face=Verdana&gt;[C#]&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;if (targetHasEnoughSpace)&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;{&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;// TODO: Set the backup operation as the active operation&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;// and run it.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;}&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=NumberedList1 style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;SPAN style="mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Verdana&gt;12.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;Replace the "TODO" line in the previous step with the following code. This sets the operation to be the active operation with the &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPBackupRestoreConsole.SetActive&lt;/SPAN&gt;&lt;/STRONG&gt; method and tests to verify that it succeeded. If it fails, which it will if another backup or restore operation is already underway, report an error to the UI of your application.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;SPAN class=MultilanguageMarkerAuto&gt;&lt;SPAN style="FONT-SIZE: 8pt; mso-bidi-font-size: 10.0pt"&gt;&lt;FONT color=#808080&gt;&lt;FONT face=Verdana&gt;[C#]&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;if (SPBackupRestoreConsole.SetActive(backup) == true)&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;{&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;// TODO: Run the operation. See next step.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;}&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;else&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;{&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;// Report through your UI that another backup&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;// or restore operation is underway. &lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Console.WriteLine("Another backup or restore operation is already underway. Try again when it ends.");&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;}&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=NumberedList1 style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;SPAN style="mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Verdana&gt;13.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;In the code branch that runs if the &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPBackupRestoreConsole.SetActive&lt;/SPAN&gt;&lt;/STRONG&gt; call succeeds, run the operation with the &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPBackupRestoreConsole.Run&lt;/SPAN&gt;&lt;/STRONG&gt; method. Test that the operation succeeds. If it fails, report the operation's failure message to your UI. The following code replaces the "TODO" line in the previous step. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;SPAN class=MultilanguageMarkerAuto&gt;&lt;SPAN style="FONT-SIZE: 8pt; mso-bidi-font-size: 10.0pt"&gt;&lt;FONT color=#808080&gt;&lt;FONT face=Verdana&gt;[C#]&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;if (SPBackupRestoreConsole.Run(backup, node) == false)&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;{&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;// Report "error" through your UI.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;String error = SPBackupRestoreConsole.Get(backup).FailureMessage;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Console.WriteLine(error);&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;}&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=NumberedList1 style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;SPAN style="mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Verdana&gt;14.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;Clean up the restore with the &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPBackupRestoreConsole.Remove&lt;/SPAN&gt;&lt;/STRONG&gt; method. Add the following code just before the closing brace you inserted in step 11.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;SPAN class=MultilanguageMarkerAuto&gt;&lt;SPAN style="FONT-SIZE: 8pt; mso-bidi-font-size: 10.0pt"&gt;&lt;FONT color=#808080&gt;&lt;FONT face=Verdana&gt;[C#]&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;// Clean up the operation.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;SPBackupRestoreConsole.Remove(backup);&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;o:p&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;Console.WriteLine("Backup attempt complete. Press Enter to continue.");&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;FONT face="Courier New" color=#000080&gt;Console.ReadLine();&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CodeinList1 style="MARGIN: 0in 0in 3pt 0.25in"&gt;&lt;o:p&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P class=TableSpacing style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Verdana color=#c0c0c0 size=1&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;o:p&gt;&lt;FONT face=Verdana&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;H2 style="MARGIN: 9pt 0in 3pt"&gt;&lt;FONT face=Verdana color=#808080 size=3&gt;Example&lt;/FONT&gt;&lt;/H2&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;FONT face=Verdana&gt;The following code shows how to program a backup of a content component. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;SPAN class=MultilanguageMarkerAuto&gt;&lt;SPAN style="FONT-SIZE: 8pt; mso-bidi-font-size: 10.0pt"&gt;&lt;FONT color=#808080&gt;&lt;FONT face=Verdana&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT face="Courier New" color=#000080&gt;using System;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT face="Courier New" color=#000080&gt;using Microsoft.SharePoint.Administration;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT face="Courier New" color=#000080&gt;using Microsoft.SharePoint.Administration.Backup;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;o:p&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT face="Courier New" color=#000080&gt;namespace &lt;SPAN class=Placeholder&gt;&lt;EM&gt;MyCompany&lt;/EM&gt;&lt;/SPAN&gt;.SharePoint.Administration.Backup&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT face="Courier New" color=#000080&gt;{&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;class Backup&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;static void Main(string[] args)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;// Identify the location for the backup storage.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Console.Write("Enter full UNC path to the directory where the backup will be stored:");&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;String backupLocation = Console.ReadLine();&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;// Create the backup settings.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;SPBackupSettings settings = SPBackupRestoreSettings.GetBackupSettings(backupLocation, "Full");&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;o:p&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;// Identify the content component to backup.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Console.Write("Enter name of component to backup (default is whole farm):");&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;settings.IndividualItem = Console.ReadLine();&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;// Set optional operation parameters.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;settings.IsVerbose = true;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;settings.UpdateProgress = 10;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;settings.BackupThreads = 10;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;o:p&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;// Create the backup operation and return its ID.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Guid backup = SPBackupRestoreConsole.CreateBackupRestore(settings);&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;o:p&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;// Ensure that user has identified a valid and unique component.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;SPBackupRestoreObject node = EnsureUniqueValidComponentName(settings, ref backup);&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;o:p&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;// Ensure that there is enough space.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Boolean targetHasEnoughSpace = false;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;if (node != null)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;targetHasEnoughSpace = EnsureEnoughDiskSpace(backupLocation, backup, node);&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;o:p&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;// If there is enough space, attempt to run the backup.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;if (targetHasEnoughSpace)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;// Set the backup as the active job and run it.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;if (SPBackupRestoreConsole.SetActive(backup) == true)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;if (SPBackupRestoreConsole.Run(backup, node) == false)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;// Report "error" through your UI.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;String error = SPBackupRestoreConsole.Get(backup).FailureMessage;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Console.WriteLine(error);&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;else&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;// Report through your UI that another backup&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;// or restore operation is underway. &lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Console.WriteLine("Another backup or restore operation is already underway. Try again when it ends.");&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;o:p&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;// Clean up the operation.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;SPBackupRestoreConsole.Remove(backup);&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;o:p&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;Console.WriteLine("Backup attempt complete. Press Enter to continue.");&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Console.ReadLine();&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}// end Main&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;o:p&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;private static SPBackupRestoreObject EnsureUniqueValidComponentName(SPBackupRestoreSettings settings, ref Guid operationGUID)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;SPBackupRestoreObjectCollection list = SPBackupRestoreConsole.FindItems(operationGUID, settings.IndividualItem);&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;SPBackupRestoreObject component = null;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;o:p&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;if (list.Count &amp;lt;= 0)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Console.WriteLine("There is no component with that name. Run again with a new name.");&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Console.WriteLine("Press Enter to continue.");&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Console.ReadLine();&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;else if (list.Count &amp;gt; 1)&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;// The component name specified is ambiguous. Prompt user to be more specific.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Console.WriteLine("More than one component matches the name you entered.");&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Console.WriteLine("Run again with one of the following:");&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;for (int i = 0; i &amp;lt; list.Count; i++)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Console.WriteLine("\t{0}", list[i].ToString());&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Console.WriteLine("Press Enter to continue.");&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Console.ReadLine();&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;else&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;component = list[0];&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;o:p&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;return component;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;o:p&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}// end EnsureUniqueValidComponentName&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;o:p&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;private static Boolean EnsureEnoughDiskSpace(String location, Guid backup, SPBackupRestoreObject node)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;UInt64 backupSize = SPBackupRestoreConsole.DiskSizeRequired(backup, node);&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;UInt64 diskFreeSize = 0;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;UInt64 diskSize = 0;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Boolean hasEnoughSpace = true;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;o:p&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;try&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;SPBackupRestoreConsole.DiskSize(location, out diskFreeSize, out diskSize);&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;catch&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;diskFreeSize = diskSize = UInt64.MaxValue;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;o:p&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;if (backupSize &amp;gt; diskFreeSize)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;// Report through your UI that there is not enough disk space.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Console.WriteLine("{0} bytes of space is needed but the disk hosting {1} has only {2}.", backupSize, location, diskFreeSize);&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Console.WriteLine("Please try again with a different backup location or a smaller component.");&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;hasEnoughSpace = false;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;else if (backupSize == UInt64.MaxValue || diskFreeSize == 0)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;// Report through your UI that it cannot be determined whether there is enough disk space.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Console.WriteLine("Cannot determine if that location has enough disk space.");&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Console.WriteLine("Please try again with a different backup location or a smaller component.");&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;hasEnoughSpace = false;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;return hasEnoughSpace;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;o:p&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}// end EnsureEnoughDiskSpace&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;o:p&gt;&lt;FONT face="Courier New" color=#000080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT color=#000080&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}// end Backup class&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Code style="MARGIN: 0in 0in 3pt"&gt;&lt;FONT face="Courier New" color=#000080&gt;}// end namespace&lt;/FONT&gt;&lt;/P&gt;
&lt;H2 style="MARGIN: 9pt 0in 3pt"&gt;&lt;FONT face=Verdana color=#808080 size=3&gt;See Also&lt;/FONT&gt;&lt;/H2&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;FONT face=Verdana&gt;&lt;SPAN class=LinkText&gt;&lt;FONT color=#0000ff&gt;&lt;SPAN class=LinkText&gt;&lt;FONT color=#0000ff&gt;&lt;A class="" title="Programming with the Windows SharePoint Services Backup/Restore Object Model" href="http://blogs.msdn.com/sharepointdeveloperdocs/archive/2008/02/07/programming-with-the-windows-sharepoint-services-backup-restore-object-model.aspx" target=_blank mce_href="http://blogs.msdn.com/sharepointdeveloperdocs/archive/2008/02/07/programming-with-the-windows-sharepoint-services-backup-restore-object-model.aspx"&gt;Programming with the Windows SharePoint Services Backup/Restore Object Model&lt;/A&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;FONT face=Verdana&gt;&lt;SPAN class=LinkText&gt;&lt;U&gt;&lt;FONT color=#0000ff&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;FONT face=Verdana&gt;&lt;SPAN class=LinkText&gt;&lt;U&gt;&lt;FONT color=#0000ff&gt;&lt;A class="" title="How to: Programmatically Restore Content" href="http://blogs.msdn.com/sharepointdeveloperdocs/archive/2008/02/07/how-to-programmatically-restore-content.aspx" target=_blank mce_href="http://blogs.msdn.com/sharepointdeveloperdocs/archive/2008/02/07/how-to-programmatically-restore-content.aspx"&gt;How to: Programmatically Restore Content&lt;/A&gt;&lt;/FONT&gt;&lt;/U&gt;&lt;/SPAN&gt; &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;FONT face=Verdana&gt;&lt;SPAN class=LinkText&gt;&lt;U&gt;&lt;FONT color=#0000ff&gt;&lt;A class="" title="How to: Create a Content Class That Can Be Backed Up and Restored" href="http://blogs.msdn.com/sharepointdeveloperdocs/archive/2008/02/07/how-to-create-a-content-class-that-can-be-backed-up-and-restored.aspx" target=_blank mce_href="http://blogs.msdn.com/sharepointdeveloperdocs/archive/2008/02/07/how-to-create-a-content-class-that-can-be-backed-up-and-restored.aspx"&gt;How to: Create a Content Class That Can Be Backed Up and Restored&lt;/A&gt;&lt;/FONT&gt;&lt;/U&gt;&lt;/SPAN&gt; &lt;SPAN class=MsoCommentReference&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;/FONT&gt;&lt;/U&gt;&lt;/SPAN&gt;&lt;/FONT&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;o:p&gt;&lt;FONT face=Verdana&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=7528894" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/sharepointdeveloperdocs/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://blogs.msdn.com/sharepointdeveloperdocs/archive/tags/restore/default.aspx">restore</category><category domain="http://blogs.msdn.com/sharepointdeveloperdocs/archive/tags/backup/default.aspx">backup</category></item><item><title>Programming with the Windows SharePoint Services Backup/Restore Object Model</title><link>http://blogs.msdn.com/sharepointdeveloperdocs/archive/2008/02/07/programming-with-the-windows-sharepoint-services-backup-restore-object-model.aspx</link><pubDate>Fri, 08 Feb 2008 00:49:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7527283</guid><dc:creator>RickK</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/sharepointdeveloperdocs/comments/7527283.aspx</comments><wfw:commentRss>http://blogs.msdn.com/sharepointdeveloperdocs/commentrss.aspx?PostID=7527283</wfw:commentRss><description>&lt;H2 style="MARGIN: 9pt 0in 3pt"&gt;&lt;FONT face=Verdana color=#808080 size=3&gt;Introduction&lt;/FONT&gt;&lt;/H2&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;FONT face=Verdana&gt;&lt;SPAN class=MsoCommentReference&gt;This post describes the architecture of the backup and restore object model in Windows &lt;/SPAN&gt;SharePoint&lt;SPAN class=MsoCommentReference&gt; Services 3.0 and provides some advice about how to program against it. Your backup application can be an independent application or an extension of the &lt;/SPAN&gt;&lt;SPAN class=LegacyLinkText&gt;&lt;EM&gt;&lt;U&gt;&lt;FONT color=#0000ff&gt;&lt;A class="" title="stsadmn.exe command line tool" href="http://technet2.microsoft.com/Office/en-us/library/188f006d-aa66-4784-a65b-a31822aa13f71033.mspx" target=_blank mce_href="http://technet2.microsoft.com/Office/en-us/library/188f006d-aa66-4784-a65b-a31822aa13f71033.mspx"&gt;stsadm.exe command-line tool&lt;/A&gt;&lt;/FONT&gt;&lt;/U&gt;&lt;/EM&gt;&lt;/SPAN&gt;&lt;SPAN class=MsoCommentReference&gt;. For more &lt;/SPAN&gt;information about how to extend stsadm&lt;SPAN class=MsoCommentReference&gt;, see &lt;/SPAN&gt;&lt;SPAN class=LinkText&gt;&lt;U&gt;&lt;FONT color=#0000ff&gt;&lt;A class="" title="How to: Extend the STSADM Utility" href="http://msdn2.microsoft.com/en-us/library/bb417382.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/library/bb417382.aspx"&gt;How to: Extend the STSADM Utility&lt;/A&gt;&lt;/FONT&gt;&lt;/U&gt;&lt;/SPAN&gt;&lt;SPAN class=MsoCommentReference&gt;. &lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in 3pt 0.5in"&gt;&lt;SPAN class=MsoCommentReference&gt;&lt;FONT face=Verdana&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;Note&lt;/B&gt;: All classes in this post are in the &lt;B style="mso-bidi-font-weight: normal"&gt;Microsoft.SharePoint.Administration.Backup&lt;/B&gt; namespace unless specified otherwise. &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;H2 style="MARGIN: 9pt 0in 3pt"&gt;&lt;FONT face=Verdana color=#808080 size=3&gt;The Backup and Restore Object Model&lt;/FONT&gt;&lt;/H2&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;FONT face=Verdana&gt;At the top of the object model is the &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPBackupRestoreConsole&lt;/SPAN&gt;&lt;/STRONG&gt; class. (See &lt;/FONT&gt;&lt;SPAN style="FONT-FAMILY: 'Arial Unicode MS','sans-serif'"&gt;①&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;, in Figure 1.) It provides an umbrella operations manager responsible for queuing backup and restore jobs, starting jobs, and persisting a history of jobs in the form of xml files. An object of this class is "just underneath the surface" of the UI of a backup application. Its members are mainly static methods and properties that provide hooks for the UI of the backup application. Both the Central Administration application and the &lt;SPAN class=LegacyLinkText&gt;&lt;EM&gt;&lt;U&gt;&lt;FONT color=#0000ff&gt;&lt;SPAN class=LegacyLinkText&gt;&lt;EM&gt;&lt;U&gt;&lt;FONT color=#0000ff&gt;&lt;A class="" title="stsadmn.exe command line tool" href="http://technet2.microsoft.com/Office/en-us/library/188f006d-aa66-4784-a65b-a31822aa13f71033.mspx" target=_blank mce_href="http://technet2.microsoft.com/Office/en-us/library/188f006d-aa66-4784-a65b-a31822aa13f71033.mspx"&gt;stsadm.exe command-line tool&lt;/A&gt;&lt;/FONT&gt;&lt;/U&gt;&lt;/EM&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/U&gt;&lt;/EM&gt;&lt;/SPAN&gt; use these hooks. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;FONT face=Verdana&gt;There is always just one object of this class and it is created the first time one of its members is called. It remains in memory until the next time Internet Information Server (IIS) is reset; however, its memory footprint is small. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=Label style="MARGIN: 3pt 0in"&gt;&lt;STRONG&gt;&lt;FONT face=Verdana&gt;Figure 1: The primary objects in the backup/restore hierarchy. &lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P class=Label style="MARGIN: 3pt 0in"&gt;&lt;o:p&gt;&lt;STRONG&gt;&lt;FONT face=Verdana&gt;&lt;IMG title="Primary Objects in WSS Backup Restore OM" style="WIDTH: 572px; HEIGHT: 422px" height=422 alt="Primary Objects in WSS Backup Restore OM" src="http://blogs.msdn.com/photos/andrew_may/images/7545478/original.aspx" width=572 align=top mce_src="http://blogs.msdn.com/photos/andrew_may/images/7545478/original.aspx"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=Label style="MARGIN: 3pt 0in"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=Figure style="MARGIN: 6pt 0in"&gt;&lt;FONT face=Verdana&gt;Each particular backup or restore operation is represented by an object of the class &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPBackupRestoreConsoleObject&lt;/SPAN&gt;&lt;/STRONG&gt; that is created by the &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPBackupRestoreConsole.CreateBackupRestore&lt;/SPAN&gt;&lt;/STRONG&gt; method of the console object. (See &lt;/FONT&gt;&lt;SPAN style="FONT-FAMILY: 'Arial Unicode MS','sans-serif'"&gt;②&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;, in Figure 1, the queued backup and restore operations.) The properties of one of these lightweight objects hold information about the operation such as whether it is a backup or a restore, the location of the backup files, the backup or restore method, the current stage of the operation, and the tree of content components that his being backed up or restored. These objects also have an &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPBackupRestoreConsoleObject.Id&lt;/SPAN&gt;&lt;/STRONG&gt; property of type &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;System.Guid&lt;/SPAN&gt;&lt;/STRONG&gt; that serves as a handle for the object that can be passed to the methods of &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPBackupRestoreConsole&lt;/SPAN&gt;&lt;/STRONG&gt;. For example, &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPBackupRestoreConsole.Run&lt;/SPAN&gt;&lt;/STRONG&gt; is passed the ID of the operation (that is; the &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPBackupRestoreConsoleObject&lt;/SPAN&gt;&lt;/STRONG&gt; object) that the console is to run next. Finally, each &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPBackupRestoreConsoleObject&lt;/SPAN&gt;&lt;/STRONG&gt; has a &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPBackupRestoreConsoleObject.Settings&lt;/SPAN&gt;&lt;/STRONG&gt; property that holds a persisting object that contains a reusable pattern of backup (or restore) settings. This object also identifies the content component that the operation is to back up or restore. The settings objects are discussed in more detail near the end of this section.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;FONT face=Verdana&gt;While the &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPBackupRestoreConsoleObject&lt;/SPAN&gt;&lt;/STRONG&gt; objects represent operations, the content components themselves are represented by &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPBackupRestoreObject&lt;/SPAN&gt;&lt;/STRONG&gt; objects. (See &lt;/FONT&gt;&lt;SPAN style="FONT-FAMILY: 'Arial Unicode MS','sans-serif'"&gt;③&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;, in Figure 1.) These objects can be nested with the &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPBackupRestoreObject.Children&lt;/SPAN&gt;&lt;/STRONG&gt; property. Therefore, each one represents a tree of one or more content components. For example, a Web application would be represented by a by &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPBackupRestoreObject&lt;/SPAN&gt;&lt;/STRONG&gt; object that would have each of the Web application's content databases as child &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPBackupRestoreObject&lt;/SPAN&gt;&lt;/STRONG&gt; objects. The tree of components that are the subject a particular backup or restore operation is internally linked to the &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPBackupRestoreConsoleObject&lt;/SPAN&gt;&lt;/STRONG&gt; object that represents the operation. You can get a reference to the topmost &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPBackupRestoreObject&lt;/SPAN&gt;&lt;/STRONG&gt; object in the tree by passing the ID of the &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPBackupRestoreConsoleObject&lt;/SPAN&gt;&lt;/STRONG&gt; object to the &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPBackupRestoreConsole.GetRoot&lt;/SPAN&gt;&lt;/STRONG&gt; method. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;FONT face=Verdana&gt;A &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPBackupRestoreObject&lt;/SPAN&gt;&lt;/STRONG&gt; object is a container for two critical types of objects: &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=BulletedList1 style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;In its &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPBackupRestoreObject.Information&lt;/SPAN&gt;&lt;/STRONG&gt; property the &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPBackupRestoreObject&lt;/SPAN&gt;&lt;/STRONG&gt; object holds either a &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPBackupInformation&lt;/SPAN&gt;&lt;/STRONG&gt; or a &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPRestoreInformation&lt;/SPAN&gt;&lt;/STRONG&gt; object. These kinds of objects hold information about how to back up or restore a particular component and methods that can be called internally by &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPBackupRestoreConsoleObject&lt;/SPAN&gt;&lt;/STRONG&gt; and &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPBackupRestoreObject&lt;/SPAN&gt;&lt;/STRONG&gt; as part of an operation. More specifically, these classes hold methods and properties whose implementation should never change regardless of what kind of content component is being represented. Hence, they are sealed and deriving a new class from their parent, &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPBackupRestoreInformation&lt;/SPAN&gt;&lt;/STRONG&gt;, is not supported. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=BulletedList1 style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;In its &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPBackupRestoreObject.IBackupRestore&lt;/SPAN&gt;&lt;/STRONG&gt; property the &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPBackupRestoreObject&lt;/SPAN&gt;&lt;/STRONG&gt; object holds an object that implements the &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;IBackupRestore&lt;/SPAN&gt;&lt;/STRONG&gt; interface (and might also inherit from &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;Microsoft.SharePoint.Administration.SPPersistedObject&lt;/SPAN&gt;&lt;/STRONG&gt;). (See &lt;/FONT&gt;&lt;SPAN style="FONT-FAMILY: 'Arial Unicode MS','sans-serif'"&gt;④&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;, in Figure 1.) Implementation of the latter interface turns an object into something that can potentially be backed up and restored. Like an &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPBackupRestoreInformation&lt;/SPAN&gt;&lt;/STRONG&gt; object, an &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;IBackupRestore&lt;/SPAN&gt;&lt;/STRONG&gt; object contains members that provide information and methods needed for backups and restorations. But the members of &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;IBackupRestore&lt;/SPAN&gt;&lt;/STRONG&gt; must be given different implementations depending on the kind of content component that is being represented. Most importantly, the implementation includes event handlers for an operation's events, such as &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;IBackupRestore.OnBackup&lt;/SPAN&gt;&lt;/STRONG&gt; and &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;IBackupRestore.OnRestore&lt;/SPAN&gt;&lt;/STRONG&gt;. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;FONT face=Verdana&gt;Besides acting as a container, &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPBackupRestoreObject&lt;/SPAN&gt;&lt;/STRONG&gt; is a helper class that provides easier interaction between the operation objects (&lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPBackupRestoreConsoleObject&lt;/SPAN&gt;&lt;/STRONG&gt;), on the one hand, and the component information objects (&lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPBackupRestoreInformation&lt;/SPAN&gt;&lt;/STRONG&gt; and &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;IBackupRestore&lt;/SPAN&gt;&lt;/STRONG&gt;), on the other. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;FONT face=Verdana&gt;The final major classes are &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPBackupSettings&lt;/SPAN&gt;&lt;/STRONG&gt; and &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPRestoreSettings&lt;/SPAN&gt;&lt;/STRONG&gt;. An object of one of these two types is passed to the &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPBackupRestoreConsole.CreateBackupRestore&lt;/SPAN&gt;&lt;/STRONG&gt; method when an operation is created. (See &lt;/FONT&gt;&lt;SPAN style="FONT-FAMILY: 'Arial Unicode MS','sans-serif'"&gt;⑤&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;, in Figure 1.) Each of these objects holds settings for use in operations; most importantly, they identify, in their &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPBackupRestoreSettings.IndividualItem&lt;/SPAN&gt;&lt;/STRONG&gt; property, the content component that is the subject of the backup or restore operation. (See &lt;/FONT&gt;&lt;SPAN style="FONT-FAMILY: 'Arial Unicode MS','sans-serif'"&gt;⑥&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;, in Figure 1.)&lt;/FONT&gt;&lt;/P&gt;
&lt;H2 style="MARGIN: 9pt 0in 3pt"&gt;&lt;FONT face=Verdana color=#808080 size=3&gt;Programming Advice&lt;/FONT&gt;&lt;/H2&gt;
&lt;H3 style="MARGIN: 9pt 0in 3pt"&gt;&lt;FONT face=Verdana color=#c0c0c0 size=3&gt;Ways of Customization &lt;/FONT&gt;&lt;/H3&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;FONT face=Verdana&gt;Most of the critical classes in the backup restore object model are sealed (&lt;SPAN class=LanguageKeyword&gt;&lt;STRONG&gt;NotInheritable&lt;/STRONG&gt;&lt;/SPAN&gt; in Visual Basic). Moreover, although the following classes are not sealed, deriving from them is not supported. In each case, you must use the existing derived classes:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=BulletedList1 style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPBackupRestoreInformation&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;FONT face=Verdana&gt;. (Existing derived classes: &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPBackupInformation&lt;/SPAN&gt;&lt;/STRONG&gt; and &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPRestoreInformation&lt;/SPAN&gt;&lt;/STRONG&gt;.) &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=BulletedList1 style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPBackupRestoreSettings&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;FONT face=Verdana&gt;. (Existing derived classes: &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPBackupSettings&lt;/SPAN&gt;&lt;/STRONG&gt; and &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPRestoreSettings&lt;/SPAN&gt;&lt;/STRONG&gt;.) &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;FONT face=Verdana&gt;Accordingly, there are just two primary points of customization:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=BulletedList1 style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;You can create your own high level application, and UI, that will use the static methods of the operations console — an &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;SPBackupRestoreConsole&lt;/SPAN&gt;&lt;/STRONG&gt; object — to manage and run backup and restore jobs. For more information about how to do this see &lt;SPAN class=LinkText&gt;&lt;U&gt;&lt;FONT color=#0000ff&gt;&lt;A class="" title="How to: Programmatically Back Up Content" href="http://blogs.msdn.com/sharepointdeveloperdocs/archive/2008/02/07/how-to-programmatically-back-up-content.aspx" target=_blank mce_href="http://blogs.msdn.com/sharepointdeveloperdocs/archive/2008/02/07/how-to-programmatically-back-up-content.aspx"&gt;How to: Programmatically Back Up Content&lt;/A&gt;&lt;/FONT&gt;&lt;/U&gt;&lt;/SPAN&gt; and &lt;SPAN class=LinkText&gt;&lt;FONT color=#0000ff&gt;&lt;SPAN class=LinkText&gt;&lt;FONT color=#0000ff&gt;&lt;A class="" title="How to: Programmatically Restore Content" href="http://blogs.msdn.com/sharepointdeveloperdocs/archive/2008/02/07/how-to-programmatically-restore-content.aspx" target=_blank mce_href="http://blogs.msdn.com/sharepointdeveloperdocs/archive/2008/02/07/how-to-programmatically-restore-content.aspx"&gt;How to: Programmatically Restore Content&lt;/A&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=BulletedList1 style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;You can create a class that implements the &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;IBackupRestore&lt;/SPAN&gt;&lt;/STRONG&gt; interface and might or might not also derive the &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;Microsoft.SharePoint.Administration.SPPersistedObject&lt;/SPAN&gt;&lt;/STRONG&gt; class. For more information about how to create a custom content class, see &lt;SPAN class=LinkText&gt;&lt;FONT color=#0000ff&gt;&lt;SPAN class=LinkText&gt;&lt;FONT color=#0000ff&gt;&lt;A class="" title="How to: Create a Content Class That Can Be Backed Up and Restored" href="http://blogs.msdn.com/sharepointdeveloperdocs/archive/2008/02/07/how-to-create-a-content-class-that-can-be-backed-up-and-restored.aspx" target=_blank mce_href="http://blogs.msdn.com/sharepointdeveloperdocs/archive/2008/02/07/how-to-create-a-content-class-that-can-be-backed-up-and-restored.aspx"&gt;How to: Create a Content Class That Can Be Backed Up and Restored&lt;/A&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT color=#000000&gt;.&lt;SPAN class=MsoCommentReference&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt; &lt;/FONT&gt;&lt;/P&gt;
&lt;H3 style="MARGIN: 9pt 0in 3pt"&gt;&lt;FONT face=Verdana color=#c0c0c0 size=3&gt;Permissions&lt;/FONT&gt;&lt;/H3&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;FONT face=Verdana&gt;Code that backs up content must run in the user context of a farm administrator. Code that restores must run in the context of a user who is both a farm administrator and an administrator on all the front-end servers. The user should also have read and write permissions for the backup location. &lt;/FONT&gt;&lt;/P&gt;
&lt;H3 style="MARGIN: 9pt 0in 3pt"&gt;&lt;FONT face=Verdana color=#c0c0c0 size=3&gt;Failure Logging&lt;/FONT&gt;&lt;/H3&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;FONT face=Verdana&gt;If a backup or restore operation fails, details about the failure will be logged in &lt;/FONT&gt;&lt;SPAN class=CodeEmbedded&gt;&lt;SPAN style="mso-bidi-font-family: 'Times New Roman'"&gt;&lt;FONT face="Courier New" color=#000080&gt;spbackup.log&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt; or &lt;/FONT&gt;&lt;SPAN class=CodeEmbedded&gt;&lt;SPAN style="mso-bidi-font-family: 'Times New Roman'"&gt;&lt;FONT face="Courier New" color=#000080&gt;sprestore.log&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt; in the backup location.&lt;/FONT&gt;&lt;/P&gt;
&lt;H2 style="MARGIN: 9pt 0in 3pt"&gt;&lt;FONT face=Verdana color=#808080 size=3&gt;Backups and Restores of Site Collections&lt;/FONT&gt;&lt;/H2&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;FONT face=Verdana&gt;Aside from custom content types that you create by implementing &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;IBackupRestore&lt;/SPAN&gt;&lt;/STRONG&gt;, the smallest content object that you can back up and restore with the classes in the &lt;B style="mso-bidi-font-weight: normal"&gt;Microsoft.SharePoint.Administration.Backup &lt;/B&gt;namespace is a content database. To programmatically backup or restore individual site collections, use &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;Microsoft.SharePoint.Administration.SPSiteCollection.Backup(System.String,System.String,System.Boolean)&lt;/SPAN&gt;&lt;/STRONG&gt; and &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;Microsoft.SharePoint.Administration.SPSiteCollection.Restore(System.String,System.String,System.Boolean)&lt;/SPAN&gt;&lt;/STRONG&gt;. For more information on backing up and restoring site collections, see &lt;SPAN class=LinkText&gt;&lt;U&gt;&lt;FONT color=#0000ff&gt;&lt;A class="" title="How to: Programmatically Backup and Restore a Single Site Collection" href="http://blogs.msdn.com/sharepointdeveloperdocs/archive/2008/02/07/how-to-programmatically-back-up-and-restore-a-single-site-collection.aspx" target=_blank mce_href="http://blogs.msdn.com/sharepointdeveloperdocs/archive/2008/02/07/how-to-programmatically-back-up-and-restore-a-single-site-collection.aspx"&gt;How to: Programmatically Backup and Restore a Single Site Collection&lt;/A&gt;&lt;/FONT&gt;&lt;/U&gt;&lt;/SPAN&gt;. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;o:p&gt;&lt;FONT face=Verdana&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=7527283" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/sharepointdeveloperdocs/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://blogs.msdn.com/sharepointdeveloperdocs/archive/tags/restore/default.aspx">restore</category><category domain="http://blogs.msdn.com/sharepointdeveloperdocs/archive/tags/backup/default.aspx">backup</category></item><item><title>Overview of Backing Up and Restoring Data in Windows SharePoint Services</title><link>http://blogs.msdn.com/sharepointdeveloperdocs/archive/2008/01/23/overview-of-backing-up-and-restoring-data-in-windows-sharepoint-services.aspx</link><pubDate>Thu, 24 Jan 2008 01:11:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7212945</guid><dc:creator>RickK</dc:creator><slash:comments>5</slash:comments><comments>http://blogs.msdn.com/sharepointdeveloperdocs/comments/7212945.aspx</comments><wfw:commentRss>http://blogs.msdn.com/sharepointdeveloperdocs/commentrss.aspx?PostID=7212945</wfw:commentRss><description>&lt;H1 style="MARGIN: 9pt 0in 3pt -0.25in"&gt;&lt;FONT face=Verdana size=5&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/H1&gt;
&lt;H2 style="MARGIN: 9pt 0in 3pt"&gt;&lt;FONT face=Verdana color=#333333 size=3&gt;Introduction&lt;/FONT&gt;&lt;/H2&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;FONT face=Verdana&gt;This post provides some basic facts about backing up and restoring data in Windows SharePoint Services 3.0. It will serve as background information for several developer-oriented posts that I will create in the next couple of weeks.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=AlertTextinList1 style="MARGIN: 3pt 0in 3pt 0.5in"&gt;&lt;FONT face=Verdana&gt;&lt;SPAN class=LabelEmbedded&gt;&lt;STRONG&gt;Note&lt;/STRONG&gt;&lt;/SPAN&gt;: Unless explicitly stated otherwise, all classes and members referenced in this post are in the &lt;B style="mso-bidi-font-weight: normal"&gt;Microsoft.SharePoint.Administration.Backup&lt;/B&gt; namespace. &lt;/FONT&gt;&lt;/P&gt;
&lt;H2 style="MARGIN: 9pt 0in 3pt"&gt;&lt;FONT face=Verdana color=#333333 size=3&gt;What Can Be Backed Up and What Can Be Restored&lt;/FONT&gt;&lt;/H2&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;FONT face=Verdana&gt;There are six &lt;EM&gt;types&lt;/EM&gt; of content components built-in to Windows SharePoint Services 3.0 that can be backed up and restored through either the Central Administration application's UI, the &lt;A class="" href="http://blogs.msdn.com/Office/en-us/library/188f006d-aa66-4784-a65b-a31822aa13f71033.mspx" target=_blank mce_href="http://blogs.msdn.com/Office/en-us/library/188f006d-aa66-4784-a65b-a31822aa13f71033.mspx"&gt;Stsadm.exe Command-line Tool&lt;/A&gt; or a custom application that uses the Windows SharePoint Services 3.0 backup and restore object model. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=BulletedList1 style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;Site collections, each of which might contain multiple Web sites.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=BulletedList1 style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;Content databases, each of which might contain multiple site collections.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=BulletedList1 style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;Web applications, each of which might contain multiple content databases.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=BulletedList1 style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;Content publishing "Web services," each of which might contain multiple Web applications. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=AlertTextinList1 style="MARGIN: 3pt 0in 3pt 0.5in"&gt;&lt;FONT face=Verdana&gt;&lt;SPAN class=LabelEmbedded&gt;&lt;STRONG&gt;Note&lt;/STRONG&gt;&lt;/SPAN&gt;: This refers to content publishing "Web services" (which are really partitions of content) that are represented in the object model by &lt;SPAN class=CodeEntityReference&gt;&lt;U&gt;&lt;FONT color=#0000ff&gt;Microsoft.SharePoint.Administration.SPWebService&lt;/FONT&gt;&lt;/U&gt;&lt;/SPAN&gt; objects. It does not refer to the functional Web services in the more common sense of "Web service," such as the Alerts (&lt;SPAN class=CodeEntityReference&gt;&lt;U&gt;&lt;FONT color=#0000ff&gt;websvcAlerts&lt;/FONT&gt;&lt;/U&gt;&lt;/SPAN&gt;) service or the Meetings (&lt;SPAN class=CodeEntityReference&gt;&lt;U&gt;&lt;FONT color=#0000ff&gt;websvcMeetings&lt;/FONT&gt;&lt;/U&gt;&lt;/SPAN&gt;) service. For more information about content publishing "Web services," see &lt;SPAN class=LinkText&gt;&lt;U&gt;&lt;FONT color=#0000ff&gt;&lt;A class="" href="http://msdn2.microsoft.com/en-us/library/ms980916.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/library/ms980916.aspx"&gt;Server and Site Architecture: Object Model Overview&lt;/A&gt;&lt;/FONT&gt;&lt;/U&gt;&lt;/SPAN&gt; and &lt;SPAN class=LinkText&gt;&lt;U&gt;&lt;FONT color=#0000ff&gt;The High Level Object Model of Windows SharePoint Sevices 3.0&lt;/FONT&gt;&lt;/U&gt;&lt;/SPAN&gt; (to be published on MSDN). &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=BulletedList1 style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;Search &lt;EM&gt;Windows&lt;/EM&gt; service including its databases and indexes. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=AlertTextinList1 style="MARGIN: 3pt 0in 3pt 0.5in"&gt;&lt;FONT face=Verdana&gt;&lt;SPAN class=LabelEmbedded&gt;&lt;STRONG&gt;Note&lt;/STRONG&gt;&lt;/SPAN&gt;: This does not refer to the Search&amp;nbsp;&lt;EM&gt;Web&lt;/EM&gt; service &lt;SPAN class=CodeEntityReference&gt;&lt;U&gt;&lt;FONT color=#0000ff&gt;websvcSPSearch&lt;/FONT&gt;&lt;/U&gt;&lt;/SPAN&gt;.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=BulletedList1 style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;A whole Windows SharePoint Services farm. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;FONT face=Verdana&gt;If an enhanced functionality product such as Office SharePoint Server 2007 has been installed in addition to Windows SharePoint Services 3.0 and that product includes Shared Service Providers, then they can also be backed up and restored with Windows SharePoint Services 3.0. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;FONT face=Verdana&gt;In addition, you can create new types of content objects that can be backed up and restored by implementing the &lt;SPAN class=CodeEntityReference&gt;&lt;U&gt;&lt;FONT color=#0000ff&gt;IBackupRestore&lt;/FONT&gt;&lt;/U&gt;&lt;/SPAN&gt; interface.&lt;/FONT&gt;&lt;/P&gt;
&lt;H3 style="MARGIN: 9pt 0in 3pt"&gt;&lt;FONT face=Verdana color=#333333 size=2&gt;Limitations&lt;/FONT&gt;&lt;/H3&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;FONT face=Verdana&gt;There are some limitations on what can be backed up and restored through either the Central Administration application's UI, the stsadm command line utility or a custom application that uses the Windows SharePoint Services 3.0 backup and restore object model. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=BulletedList1 style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;You cannot backup (or restore) an individual Web site, list, or list item except by backing up (or restoring) the entire site collection to which it belongs. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=BulletedList1 style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;You cannot back up a Windows SharePoint Services farm's configuration database or the content database of the Central Administration application except by backing up the whole farm. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=BulletedList1 style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;You cannot restore a farm's configuration database or the content database of the Central Administration application. The backups of these components that are included in a backup of a farm provide a snapshot of these components at the time of the backup. Such snapshots might be useful for troubleshooting because they can be used to compare with the present state of the components using SQL Server tools. (There is an exception to this point: you can restore the configuration database and the content database of the Central Administration application if you are using the Volume Shadow Copy Service – VSS - of Windows Server 2003/2008). &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=BulletedList1 style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;You cannot back up the Internet Information Server (IIS) metabase. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;FONT face=Verdana&gt;The following kinds of content cannot be backed up with either the Central Administration application's UI or the stsadm command line utility, but you can create custom backup solutions with the Windows SharePoint Services SDK that include these types of content.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=BulletedList1 style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;Registry keys.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=BulletedList1 style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;Files that live on the front-end servers; that is, outside any content database, such as certain master pages, .ascx files, web.config files, and other configuration files. &lt;/FONT&gt;&lt;/P&gt;
&lt;H2 style="MARGIN: 9pt 0in 3pt"&gt;&lt;FONT face=Verdana color=#333333 size=3&gt;Types of Backups and Restorations&lt;/FONT&gt;&lt;/H2&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;FONT face=Verdana&gt;Backups of a given component can be either full or incremental. In the latter case, only parts of the component that have changed since the last full backup are backed up. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=AlertText style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;FONT face=Verdana&gt;&lt;SPAN class=LabelEmbedded&gt;&lt;STRONG&gt;Note&lt;/STRONG&gt;&lt;/SPAN&gt;: A Windows SharePoint Services Search index cannot be incrementally backed up. If a search index is included in an incremental backup job, the index will get a full backup. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;FONT face=Verdana&gt;Restorations can either overwrite the original backup source or they can be to a new location. This means that the backup and restore functionality in Windows SharePoint Services 3.0 can also be used as a method of migrating content components. &lt;/FONT&gt;&lt;/P&gt;
&lt;H2 style="MARGIN: 9pt 0in 3pt"&gt;&lt;FONT face=Verdana color=#333333 size=3&gt;Two Kinds of Custom Backup Applications&lt;/FONT&gt;&lt;/H2&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;FONT face=Verdana&gt;There are two ways to use the Windows SharePoint Services object model to create custom backup applications. &lt;/FONT&gt;&lt;/P&gt;
&lt;H3 style="MARGIN: 9pt 0in 3pt"&gt;&lt;FONT face=Verdana color=#333333 size=2&gt;The Main Backup and Restore Object Model&lt;/FONT&gt;&lt;/H3&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;FONT face=Verdana&gt;You can create a backup and restore application by using the main backup and restore object model, sometimes called "catastrophic" backup/restore. This is located mainly in the &lt;SPAN class=CodeEntityReferenceQualified&gt;&lt;U&gt;&lt;FONT color=#0000ff&gt;Microsoft.SharePoint.Administration.Backup&lt;/FONT&gt;&lt;/U&gt;&lt;/SPAN&gt; namespace; but backups and restores of individual site collections are performed with the &lt;SPAN class=CodeEntityReferenceQualified&gt;&lt;U&gt;&lt;FONT color=#0000ff&gt;Microsoft.SharePoint.Administration.SPSiteCollection.Backup()&lt;/FONT&gt;&lt;/U&gt;&lt;/SPAN&gt; and &lt;SPAN class=CodeEntityReferenceQualified&gt;&lt;U&gt;&lt;FONT color=#0000ff&gt;Microsoft.SharePoint.Administration.SPSiteCollection.Restore()&lt;/FONT&gt;&lt;/U&gt;&lt;/SPAN&gt; methods. &lt;/FONT&gt;&lt;/P&gt;
&lt;H3 style="MARGIN: 9pt 0in 3pt"&gt;&lt;FONT face=Verdana color=#333333 size=2&gt;Interface to the Volume Shadow Copy Service&lt;/FONT&gt;&lt;/H3&gt;
&lt;P class=MsoNormal style="MARGIN: 3pt 0in"&gt;&lt;FONT face=Verdana&gt;Windows SharePoint Services 3.0 deployments can also take advantage of the Volume Shadow Copy Service (VSS) in Windows Server 2003/2008. Windows SharePoint Services 3.0 includes a Windows SharePoint Services VSS Writer service that will create shadow copies of native and custom content in the deployment. The service contains a VSS writer that will write shadow copies of all native Windows SharePoint Services 3.0 databases and all custom databases. Non-database custom components can also be registered with the service by using the &lt;SPAN class=CodeEntityReference&gt;&lt;U&gt;&lt;FONT color=#0000ff&gt;SPVssComponentDefinition&lt;/FONT&gt;&lt;/U&gt;&lt;/SPAN&gt; and &lt;SPAN class=CodeEntityReference&gt;&lt;U&gt;&lt;FONT color=#0000ff&gt;SPVssDiscoveryHelper&lt;/FONT&gt;&lt;/U&gt;&lt;/SPAN&gt; classes. It is also necessary that you create a VSS writer for any such non-database custom components. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=AlertText style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;FONT face=Verdana&gt;&lt;SPAN class=LabelEmbedded&gt;&lt;STRONG&gt;Note&lt;/STRONG&gt;&lt;/SPAN&gt;: With the VSS service, you can target only the whole farm or individual content databases for database shadow copy. Individual Web applications and individual content publishing "Web services" cannot be set for shadow copying independently of making a shadow copy of the whole farm. (For information about the meaning of "content publishing Web service" see the first note of this post.)&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=AlertText style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;FONT face=Verdana&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=7212945" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/sharepointdeveloperdocs/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://blogs.msdn.com/sharepointdeveloperdocs/archive/tags/content+migration/default.aspx">content migration</category><category domain="http://blogs.msdn.com/sharepointdeveloperdocs/archive/tags/restore/default.aspx">restore</category><category domain="http://blogs.msdn.com/sharepointdeveloperdocs/archive/tags/backup/default.aspx">backup</category></item></channel></rss>