<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;D04CR3w7fSp7ImA9WhRbEUw.&quot;"><id>tag:blogger.com,1999:blog-4488134356468314016</id><updated>2012-02-01T09:06:06.205-08:00</updated><category term="SPD 2007" /><category term="K2" /><category term="Windows 2003" /><category term="Guidence" /><category term="Win 2008" /><category term="MOSS 2007" /><category term="Architecture" /><category term="Troubleshoot" /><category term="InfoPath 2007" /><category term="SPS 2003-MOSS 2007 Upgrading" /><category term="SSRS" /><category term="VS2010" /><category term="Batch Scripts" /><category term="MOSS" /><category term="SPS 2010" /><category term="Developer" /><category term="Windows" /><category term="Virtualization" /><category term="Kerberos" /><category term="DB Upgrade" /><category term="Office 2010" /><category term="Windows 7" /><category term="Nintex Workflow 2007" /><title>My findings in Microsoft world</title><subtitle type="html">Only that matter of significance...</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://rajeshagadi.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://rajeshagadi.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/4488134356468314016/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Rajesh Agadi</name><uri>http://www.blogger.com/profile/17908384970712474388</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://3.bp.blogspot.com/__-HvNNPF_6s/SuzadWw3wDI/AAAAAAAAEHw/UNJGp_Zugxc/S220/ProfilePicture.JPG" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>47</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/MyfindingsinMicrosoftworld" /><feedburner:info uri="myfindingsinmicrosoftworld" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;CEYCQn4-fSp7ImA9WhZXF0w.&quot;"><id>tag:blogger.com,1999:blog-4488134356468314016.post-5294667912443568966</id><published>2011-05-06T13:02:00.000-07:00</published><updated>2011-05-06T13:02:43.055-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-06T13:02:43.055-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Office 2010" /><category scheme="http://www.blogger.com/atom/ns#" term="Windows 7" /><title>How to open each file in new window in Excel 2010</title><content type="html">&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;h4&gt;Overview&lt;/h4&gt;&lt;p&gt;You are using Excel 2010 (May for for Excel 2007 as well). You want to open each file in Excel as separate window. By default Excel 2010 (and Excel 2007) opens each file within the Excel Program. Excel 2010 and 2007 are designed as MDI applications. &lt;/p&gt;&lt;h4&gt;Disclaimer&lt;/h4&gt;&lt;p&gt;This is not Microsoft supported option. Although this has worked well for me, use caution as this approach includes on undocumented registry changes suggested by many other internet search results. It was confusing to try out all the options and get the result correct.&amp;#160; I wanted to share clearly given my situation what has worked.&lt;/p&gt;&lt;h4&gt;Other Considerations&lt;/h4&gt;&lt;p&gt;Being able to open each file in new window means being able to run new instance of Excel.exe program, that means you are using more memory. So use caution while trying to open more files when you have your excel program configured for this situation.&lt;/p&gt;&lt;h3&gt;My Platform&lt;/h3&gt;&lt;li&gt;Windows 7 x64 Ultimate (I Guess any editions might result with same behavior) &lt;/li&gt;&lt;br /&gt;
&lt;li&gt;Office Professional Plus 2010 (I Guess any editions might result with same behavior)    &lt;h3&gt;My Settings&lt;/h3&gt;&lt;h5&gt;To make .xlsx file open in new window.&lt;/h5&gt;&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;Open registering editing tool. &lt;/li&gt;&lt;br /&gt;
&lt;li&gt;Navigate to “HKEY_CLASSES_ROOT\Excel.Sheet.12\shell\Open” &lt;/li&gt;&lt;br /&gt;
&lt;li&gt;Right click on “Open” note and and export to file to save as backup. &lt;/li&gt;&lt;br /&gt;
&lt;li&gt;Go to “Command” node. &lt;/li&gt;&lt;br /&gt;
&lt;li&gt;Update the “Default” key to below value    &lt;p&gt;&lt;font face="Courier New"&gt;&amp;quot;C:\Program Files\Microsoft Office\Office14\EXCEL.EXE&amp;quot; /e &amp;quot;%1&amp;quot;&lt;/font&gt;&lt;/p&gt;&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;Rename the “Command” key below the “Default” key to “CommandOld” &lt;/li&gt;&lt;br /&gt;
&lt;li&gt;Rename the “ddeexec”&amp;#160; Node to “ddeexecOld”    &lt;p&gt;You should see your registry changes similar to below pictures after change has been made:&lt;/p&gt;&lt;p&gt;&lt;a href="http://lh3.ggpht.com/__-HvNNPF_6s/TcHDuXdMbjI/AAAAAAAAEf4/txdcp-FUYjI/s1600-h/image%5B2%5D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/__-HvNNPF_6s/TcHDu1sVFQI/AAAAAAAAEf8/kysPPnopc8U/image_thumb.png?imgmax=800" width="180" height="150" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://lh3.ggpht.com/__-HvNNPF_6s/TcHDvAGBOEI/AAAAAAAAEgA/qWBi482jNSY/s1600-h/image%5B7%5D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/__-HvNNPF_6s/TcHDvT5_iuI/AAAAAAAAEgE/__8Lgz3eyew/image_thumb%5B3%5D.png?imgmax=800" width="516" height="86" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Now give it shot by open the “.xlsx”&amp;#160; files, you will see each file is opened in new window.&lt;/p&gt;&lt;p&gt;&lt;font color="#ff0000"&gt;Beware each Excel.xxxx&amp;#160; registry key is for each type of file that Excel as association with.&lt;/font&gt;&lt;/p&gt;&lt;p&gt;For other type of extension based files fine below nodes and based on that I guess you can figure out your other type of files that you want to open to be configured the same.&lt;/p&gt;&lt;table border="1" cellspacing="0" cellpadding="2" width="480"&gt;&lt;tbody&gt;
&lt;tr&gt;         &lt;td valign="top" width="133"&gt;&lt;strong&gt;File Type to Open&lt;/strong&gt;&lt;/td&gt;          &lt;td valign="top" width="133"&gt;&lt;strong&gt;Registry sub key&lt;/strong&gt;&lt;/td&gt;          &lt;td valign="top" width="212"&gt;&lt;strong&gt;File Version&lt;/strong&gt;&lt;/td&gt;       &lt;/tr&gt;
&lt;tr&gt;         &lt;td valign="top" width="133"&gt;For .xlsx&lt;/td&gt;          &lt;td valign="top" width="133"&gt;Excel.sheet.12&lt;/td&gt;          &lt;td valign="top" width="212"&gt;Excel 2010 file&lt;/td&gt;       &lt;/tr&gt;
&lt;tr&gt;         &lt;td valign="top" width="133"&gt;For .xls&lt;/td&gt;          &lt;td valign="top" width="133"&gt;Excel.sheet.8&lt;/td&gt;          &lt;td valign="top" width="212"&gt;Excel 2003-2007 file&lt;/td&gt;       &lt;/tr&gt;
&lt;tr&gt;         &lt;td valign="top" width="133"&gt;For .csv&lt;/td&gt;          &lt;td valign="top" width="133"&gt;Excel.CSV&lt;/td&gt;          &lt;td valign="top" width="212"&gt;Comma separated file&lt;/td&gt;       &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;Happy Excelling with more windows!&lt;/p&gt;&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:fcc7bbfd-c42a-43af-9f1d-5b98f09ac144" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Excel+2010" rel="tag"&gt;Excel 2010&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4488134356468314016-5294667912443568966?l=rajeshagadi.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MyfindingsinMicrosoftworld/~4/8ikB_C0ZWF4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rajeshagadi.blogspot.com/feeds/5294667912443568966/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4488134356468314016&amp;postID=5294667912443568966" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4488134356468314016/posts/default/5294667912443568966?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4488134356468314016/posts/default/5294667912443568966?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MyfindingsinMicrosoftworld/~3/8ikB_C0ZWF4/how-to-open-each-file-in-new-window-in.html" title="How to open each file in new window in Excel 2010" /><author><name>Rajesh Agadi</name><uri>http://www.blogger.com/profile/17908384970712474388</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://3.bp.blogspot.com/__-HvNNPF_6s/SuzadWw3wDI/AAAAAAAAEHw/UNJGp_Zugxc/S220/ProfilePicture.JPG" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh6.ggpht.com/__-HvNNPF_6s/TcHDu1sVFQI/AAAAAAAAEf8/kysPPnopc8U/s72-c/image_thumb.png?imgmax=800" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://rajeshagadi.blogspot.com/2011/05/how-to-open-each-file-in-new-window-in.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEACQ3Y4fip7ImA9WhZREkU.&quot;"><id>tag:blogger.com,1999:blog-4488134356468314016.post-6502224875624234817</id><published>2011-04-08T11:15:00.001-07:00</published><updated>2011-04-08T11:19:22.836-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-08T11:19:22.836-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="MOSS 2007" /><title>How to programmatically copy Web Level, List level and List Item Level Security Information for SharePoint Sites</title><content type="html">&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;[Note : This post is part of&amp;#160; my main blog “&lt;a href="http://rajeshagadi.blogspot.com/2011/03/segregating-large-moss-2007-sites.html"&gt;Moving Large MOSS 2007 Sites&lt;/a&gt;” and “&lt;a href="http://rajeshagadi.blogspot.com/2011/03/sharepoint-2010-migration.html"&gt;SharePoint 2010 Migration&lt;/a&gt;”]&lt;/p&gt;  &lt;h3&gt;Some Background&lt;/h3&gt;  &lt;p&gt;[See my other blog on &lt;a href="http://rajeshagadi.blogspot.com/2011/04/drawbacks-of-current-list-export-and.html"&gt;Drawbacks of current List Export and Import MOSS 2007 Content Migration APIs&lt;/a&gt;]&lt;/p&gt;  &lt;h3&gt;How to fix this gap?&lt;/h3&gt;  &lt;p&gt;Well, there are SharePoint APIs you can use to copy all the necessary missing security information. But there needs to be an order to perform the process most efficiently. Follow below order of steps:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;First you will be creating a new site collection, or you may already have your target importing site collection existing. &lt;/li&gt;    &lt;li&gt;In any case before you perform your Import, you want to &lt;strong&gt;first copy over the Custom Permission Level&lt;/strong&gt;. &lt;/li&gt;    &lt;li&gt;Next you want to perform your usual &lt;strong&gt;Import &lt;/strong&gt;with All security Included. (settings.IncludeSecurity = SPIncludeSecurity.All) &lt;/li&gt;    &lt;li&gt;Above Import process will ensure to import all the Users and SharePoint Groups and any OOTB Permission Levels as applicable. &lt;/li&gt;    &lt;li&gt;Now you want to &lt;strong&gt;Copy all the Web level Permission Assignments&lt;/strong&gt;. Having all ready&amp;#160; copied the custom permission levels, this step will ensure all the permission assignments are appropriately copied over. &lt;/li&gt;    &lt;li&gt;Next you can attend for each of the &lt;strong&gt;lists and libraries &lt;/strong&gt;you have imported, copy the Permission Assignments. &lt;/li&gt;    &lt;li&gt;Next you can attend for each &lt;strong&gt;Items &lt;/strong&gt;in your lists and libraries you have imported, copy the Item Level Permission Assignments. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Below are the methods for each of these above tasks:&lt;/h3&gt;  &lt;p&gt;Your call order:&lt;/p&gt;  &lt;p&gt;1. PrepareNewSiteCollection();//Here either create the new site collection in preparation for Import, or simply establish your site collection SPSite object.&lt;/p&gt;  &lt;p&gt;2. CopyWebRoleAssignments(); //Here copy the web level permission levels.&lt;/p&gt;  &lt;p&gt;3. PerformListExportImporting(); //Here perform your List Export and Import.&lt;/p&gt;  &lt;p&gt;4. CopyWebRoleAssignments();//Here perform your Web level Permission Assignments copy.    &lt;br /&gt;5. CopyListRoleAssignments(); //Here finally copy your List and List item level permissions.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Common Methods:&lt;/h3&gt;  &lt;blockquote&gt;   &lt;pre class="code"&gt;&lt;span style="color: blue"&gt;        public static void &lt;/span&gt;CopyWebRoles(&lt;span style="color: #2b91af"&gt;SPWeb &lt;/span&gt;sourceWeb, &lt;span style="color: #2b91af"&gt;SPWeb &lt;/span&gt;destinationWeb)&lt;br /&gt;        {&lt;br /&gt;&lt;br /&gt;            &lt;span style="color: green"&gt;//First copy Source Web Role Definitions to the Destination Web&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: blue"&gt;foreach &lt;/span&gt;(&lt;span style="color: #2b91af"&gt;SPRoleDefinition &lt;/span&gt;roleDef &lt;span style="color: blue"&gt;in &lt;/span&gt;sourceWeb.RoleDefinitions)&lt;br /&gt;            {&lt;br /&gt;                &lt;span style="color: green"&gt;//Skip WSS base permission levels&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: blue"&gt;if &lt;/span&gt;(roleDef.Type != &lt;span style="color: #2b91af"&gt;SPRoleType&lt;/span&gt;.Administrator&lt;br /&gt;                    &amp;amp;&amp;amp; roleDef.Type != &lt;span style="color: #2b91af"&gt;SPRoleType&lt;/span&gt;.Contributor&lt;br /&gt;                    &amp;amp;&amp;amp; roleDef.Type != &lt;span style="color: #2b91af"&gt;SPRoleType&lt;/span&gt;.Guest&lt;br /&gt;                    &amp;amp;&amp;amp; roleDef.Type != &lt;span style="color: #2b91af"&gt;SPRoleType&lt;/span&gt;.Reader&lt;br /&gt;                    &amp;amp;&amp;amp; roleDef.Type != &lt;span style="color: #2b91af"&gt;SPRoleType&lt;/span&gt;.WebDesigner&lt;br /&gt;                    )&lt;br /&gt;                {&lt;br /&gt;                    &lt;span style="color: green"&gt;//handle additon of existing  permission level error&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: blue"&gt;try &lt;/span&gt;{ destinationWeb.RoleDefinitions.Add(roleDef); }&lt;br /&gt;                    &lt;span style="color: blue"&gt;catch &lt;/span&gt;(&lt;span style="color: #2b91af"&gt;SPException&lt;/span&gt;) { }&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: blue"&gt;public static void &lt;/span&gt;CopyWebRoleAssignments(&lt;span style="color: #2b91af"&gt;SPWeb &lt;/span&gt;sourceWeb, &lt;span style="color: #2b91af"&gt;SPWeb &lt;/span&gt;destinationWeb)&lt;br /&gt;        {&lt;br /&gt;&lt;br /&gt;            &lt;span style="color: green"&gt;//Copy Role Assignments from source to destination web.&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: blue"&gt;foreach &lt;/span&gt;(&lt;span style="color: #2b91af"&gt;SPRoleAssignment &lt;/span&gt;sourceRoleAsg &lt;span style="color: blue"&gt;in &lt;/span&gt;sourceWeb.RoleAssignments)&lt;br /&gt;            {&lt;br /&gt;                &lt;span style="color: #2b91af"&gt;SPRoleAssignment &lt;/span&gt;destinationRoleAsg = &lt;span style="color: blue"&gt;null&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;                &lt;span style="color: green"&gt;//Get the source member object&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #2b91af"&gt;SPPrincipal &lt;/span&gt;member = sourceRoleAsg.Member;&lt;br /&gt;&lt;br /&gt;                &lt;span style="color: green"&gt;//Check if the member is a user &lt;br /&gt;                &lt;/span&gt;&lt;span style="color: blue"&gt;try&lt;br /&gt;                &lt;/span&gt;{&lt;br /&gt;                    &lt;span style="color: #2b91af"&gt;SPUser &lt;/span&gt;sourceUser = (&lt;span style="color: #2b91af"&gt;SPUser&lt;/span&gt;)member;&lt;br /&gt;                    &lt;span style="color: #2b91af"&gt;SPUser &lt;/span&gt;destinationUser = destinationWeb.AllUsers[sourceUser.LoginName];&lt;br /&gt;                    &lt;span style="color: blue"&gt;if &lt;/span&gt;(destinationUser != &lt;span style="color: blue"&gt;null&lt;/span&gt;)&lt;br /&gt;                    {&lt;br /&gt;                        destinationRoleAsg = &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;SPRoleAssignment&lt;/span&gt;(destinationUser);&lt;br /&gt;                    }&lt;br /&gt;                }&lt;br /&gt;                &lt;span style="color: blue"&gt;catch&lt;br /&gt;                &lt;/span&gt;{ }&lt;br /&gt;&lt;br /&gt;                &lt;span style="color: blue"&gt;if &lt;/span&gt;(destinationRoleAsg == &lt;span style="color: blue"&gt;null&lt;/span&gt;)&lt;br /&gt;                {&lt;br /&gt;                    &lt;span style="color: green"&gt;//Check if the member is a group&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: blue"&gt;try&lt;br /&gt;                    &lt;/span&gt;{&lt;br /&gt;                        &lt;span style="color: #2b91af"&gt;SPGroup &lt;/span&gt;sourceGroup = (&lt;span style="color: #2b91af"&gt;SPGroup&lt;/span&gt;)member;&lt;br /&gt;                        &lt;span style="color: #2b91af"&gt;SPGroup &lt;/span&gt;destinationGroup = destinationWeb.SiteGroups[sourceGroup.Name];&lt;br /&gt;                        destinationRoleAsg = &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;SPRoleAssignment&lt;/span&gt;(destinationGroup);&lt;br /&gt;                    }&lt;br /&gt;                    &lt;span style="color: blue"&gt;catch&lt;br /&gt;                    &lt;/span&gt;{ }&lt;br /&gt;                }&lt;br /&gt;&lt;br /&gt;                &lt;span style="color: green"&gt;//At this state we should have the role assignment established either by user or group&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: blue"&gt;if &lt;/span&gt;(destinationRoleAsg != &lt;span style="color: blue"&gt;null&lt;/span&gt;)&lt;br /&gt;                {&lt;br /&gt;&lt;br /&gt;                    &lt;span style="color: blue"&gt;foreach &lt;/span&gt;(&lt;span style="color: #2b91af"&gt;SPRoleDefinition &lt;/span&gt;sourceRoleDefinition &lt;span style="color: blue"&gt;in &lt;/span&gt;sourceRoleAsg.RoleDefinitionBindings)&lt;br /&gt;                    {&lt;br /&gt;                        &lt;span style="color: blue"&gt;try &lt;/span&gt;{ destinationRoleAsg.RoleDefinitionBindings.Add(destinationWeb.RoleDefinitions[sourceRoleDefinition.Name]); }&lt;br /&gt;                        &lt;span style="color: blue"&gt;catch &lt;/span&gt;{ }&lt;br /&gt;                    }&lt;br /&gt;&lt;br /&gt;                    &lt;span style="color: blue"&gt;if &lt;/span&gt;(destinationRoleAsg.RoleDefinitionBindings.Count &amp;gt; 0)&lt;br /&gt;                    {&lt;br /&gt;                        &lt;span style="color: green"&gt;//handle additon of an existing  permission assignment error&lt;br /&gt;                        &lt;/span&gt;&lt;span style="color: blue"&gt;try &lt;/span&gt;{ destinationWeb.RoleAssignments.Add(destinationRoleAsg); }&lt;br /&gt;                        &lt;span style="color: blue"&gt;catch &lt;/span&gt;(&lt;span style="color: #2b91af"&gt;ArgumentException&lt;/span&gt;) { }&lt;br /&gt;                    }&lt;br /&gt;&lt;br /&gt;                }&lt;br /&gt;&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;            &lt;span style="color: green"&gt;//Finally update the destination web&lt;br /&gt;            &lt;/span&gt;destinationWeb.Update();&lt;br /&gt;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: blue"&gt;public static void &lt;/span&gt;CopyListRoleAssignments(&lt;span style="color: #2b91af"&gt;SPList &lt;/span&gt;sourceList, &lt;span style="color: #2b91af"&gt;SPList &lt;/span&gt;destinationList)&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: green"&gt;//First check if the Source List has Unique permissions&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: blue"&gt;if &lt;/span&gt;(sourceList.HasUniqueRoleAssignments)&lt;br /&gt;            {&lt;br /&gt;&lt;br /&gt;                &lt;span style="color: green"&gt;//Break List permission inheritance first&lt;br /&gt;                &lt;/span&gt;destinationList.BreakRoleInheritance(&lt;span style="color: blue"&gt;true&lt;/span&gt;);&lt;br /&gt;                &lt;br /&gt;                &lt;span style="color: green"&gt;//Remove current role assignemnts&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: blue"&gt;while &lt;/span&gt;(destinationList.RoleAssignments.Count &amp;gt; 0)&lt;br /&gt;                {&lt;br /&gt;                    destinationList.RoleAssignments.Remove(0);&lt;br /&gt;                }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;                &lt;span style="color: green"&gt;//Copy Role Assignments from source to destination list.&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: blue"&gt;foreach &lt;/span&gt;(&lt;span style="color: #2b91af"&gt;SPRoleAssignment &lt;/span&gt;sourceRoleAsg &lt;span style="color: blue"&gt;in &lt;/span&gt;sourceList.RoleAssignments)&lt;br /&gt;                {&lt;br /&gt;                    &lt;span style="color: #2b91af"&gt;SPRoleAssignment &lt;/span&gt;destinationRoleAsg = &lt;span style="color: blue"&gt;null&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;                    &lt;span style="color: green"&gt;//Get the source member object&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #2b91af"&gt;SPPrincipal &lt;/span&gt;member = sourceRoleAsg.Member;&lt;br /&gt;&lt;br /&gt;                    &lt;span style="color: green"&gt;//Check if the member is a user &lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: blue"&gt;try&lt;br /&gt;                    &lt;/span&gt;{&lt;br /&gt;                        &lt;span style="color: #2b91af"&gt;SPUser &lt;/span&gt;sourceUser = (&lt;span style="color: #2b91af"&gt;SPUser&lt;/span&gt;)member;&lt;br /&gt;                        &lt;span style="color: #2b91af"&gt;SPUser &lt;/span&gt;destinationUser = destinationList.ParentWeb.Users.GetByEmail(sourceUser.Email);&lt;br /&gt;                        destinationRoleAsg = &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;SPRoleAssignment&lt;/span&gt;(destinationUser);&lt;br /&gt;                    }&lt;br /&gt;                    &lt;span style="color: blue"&gt;catch&lt;br /&gt;                    &lt;/span&gt;{ }&lt;br /&gt;&lt;br /&gt;                    &lt;span style="color: blue"&gt;if &lt;/span&gt;(destinationRoleAsg == &lt;span style="color: blue"&gt;null&lt;/span&gt;)&lt;br /&gt;                    {&lt;br /&gt;                        &lt;span style="color: green"&gt;//Check if the member is a group&lt;br /&gt;                        &lt;/span&gt;&lt;span style="color: blue"&gt;try&lt;br /&gt;                        &lt;/span&gt;{&lt;br /&gt;                            &lt;span style="color: #2b91af"&gt;SPGroup &lt;/span&gt;sourceGroup = (&lt;span style="color: #2b91af"&gt;SPGroup&lt;/span&gt;)member;&lt;br /&gt;                            &lt;span style="color: #2b91af"&gt;SPGroup &lt;/span&gt;destinationGroup = destinationList.ParentWeb.SiteGroups[sourceGroup.Name];&lt;br /&gt;                            destinationRoleAsg = &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;SPRoleAssignment&lt;/span&gt;(destinationGroup);&lt;br /&gt;                        }&lt;br /&gt;                        &lt;span style="color: blue"&gt;catch&lt;br /&gt;                        &lt;/span&gt;{ }&lt;br /&gt;                    }&lt;br /&gt;&lt;br /&gt;                    &lt;span style="color: green"&gt;//At this state we should have the role assignment established either by user or group&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: blue"&gt;if &lt;/span&gt;(destinationRoleAsg != &lt;span style="color: blue"&gt;null&lt;/span&gt;)&lt;br /&gt;                    {&lt;br /&gt;&lt;br /&gt;                        &lt;span style="color: blue"&gt;foreach &lt;/span&gt;(&lt;span style="color: #2b91af"&gt;SPRoleDefinition &lt;/span&gt;sourceRoleDefinition &lt;span style="color: blue"&gt;in &lt;/span&gt;sourceRoleAsg.RoleDefinitionBindings)&lt;br /&gt;                        {&lt;br /&gt;                            &lt;span style="color: blue"&gt;try &lt;/span&gt;{ destinationRoleAsg.RoleDefinitionBindings.Add(destinationList.ParentWeb.RoleDefinitions[sourceRoleDefinition.Name]); }&lt;br /&gt;                            &lt;span style="color: blue"&gt;catch &lt;/span&gt;{ }&lt;br /&gt;                        }&lt;br /&gt;&lt;br /&gt;                        &lt;span style="color: blue"&gt;if &lt;/span&gt;(destinationRoleAsg.RoleDefinitionBindings.Count &amp;gt; 0)&lt;br /&gt;                        {&lt;br /&gt;                            &lt;span style="color: green"&gt;//handle additon of an existing  permission assignment error&lt;br /&gt;                            &lt;/span&gt;&lt;span style="color: blue"&gt;try &lt;/span&gt;{ destinationList.RoleAssignments.Add(destinationRoleAsg); }&lt;br /&gt;                            &lt;span style="color: blue"&gt;catch &lt;/span&gt;(&lt;span style="color: #2b91af"&gt;ArgumentException&lt;/span&gt;) { }&lt;br /&gt;                        }&lt;br /&gt;&lt;br /&gt;                    }&lt;br /&gt;&lt;br /&gt;                }&lt;br /&gt;&lt;br /&gt;                &lt;span style="color: green"&gt;//Does not require list update&lt;br /&gt;                //destinationList.Update();&lt;br /&gt;            &lt;/span&gt;}&lt;br /&gt;            &lt;span style="color: blue"&gt;else&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: green"&gt;//No need to assign permissions&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: blue"&gt;return&lt;/span&gt;;&lt;br /&gt;            &lt;br /&gt;            &lt;br /&gt;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: blue"&gt;public static void &lt;/span&gt;CopyListItemsRoleAssignments(&lt;span style="color: #2b91af"&gt;SPList &lt;/span&gt;sourceList, &lt;span style="color: #2b91af"&gt;SPList &lt;/span&gt;destinationList)&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: blue"&gt;foreach &lt;/span&gt;(&lt;span style="color: #2b91af"&gt;SPListItem &lt;/span&gt;sourceListitem &lt;span style="color: blue"&gt;in &lt;/span&gt;sourceList.Items)&lt;br /&gt;            {&lt;br /&gt;                CopyListItemRoleAssignments(sourceListitem, destinationList.GetItemById(sourceListitem.ID));&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;        }&lt;br /&gt;        &lt;span style="color: blue"&gt;public static void &lt;/span&gt;CopyListItemRoleAssignments(&lt;span style="color: #2b91af"&gt;SPListItem &lt;/span&gt;sourceListItem, &lt;span style="color: #2b91af"&gt;SPListItem &lt;/span&gt;destinationListItem)&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: green"&gt;//First check if the Source List has Unique permissions&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: blue"&gt;if &lt;/span&gt;(sourceListItem.HasUniqueRoleAssignments)&lt;br /&gt;            {&lt;br /&gt;&lt;br /&gt;                &lt;span style="color: green"&gt;//Break List permission inheritance first&lt;br /&gt;                &lt;/span&gt;destinationListItem.BreakRoleInheritance(&lt;span style="color: blue"&gt;true&lt;/span&gt;);&lt;br /&gt;                destinationListItem.Update();&lt;br /&gt;&lt;br /&gt;                &lt;span style="color: green"&gt;//Remove current role assignemnts&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: blue"&gt;while &lt;/span&gt;(destinationListItem.RoleAssignments.Count &amp;gt; 0)&lt;br /&gt;                {&lt;br /&gt;                    destinationListItem.RoleAssignments.Remove(0);&lt;br /&gt;                }&lt;br /&gt;                destinationListItem.Update();&lt;br /&gt;&lt;br /&gt;                &lt;span style="color: green"&gt;//Copy Role Assignments from source to destination list.&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: blue"&gt;foreach &lt;/span&gt;(&lt;span style="color: #2b91af"&gt;SPRoleAssignment &lt;/span&gt;sourceRoleAsg &lt;span style="color: blue"&gt;in &lt;/span&gt;sourceListItem.RoleAssignments)&lt;br /&gt;                {&lt;br /&gt;                    &lt;span style="color: #2b91af"&gt;SPRoleAssignment &lt;/span&gt;destinationRoleAsg = &lt;span style="color: blue"&gt;null&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;                    &lt;span style="color: green"&gt;//Get the source member object&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #2b91af"&gt;SPPrincipal &lt;/span&gt;member = sourceRoleAsg.Member;&lt;br /&gt;&lt;br /&gt;                    &lt;span style="color: green"&gt;//Check if the member is a user &lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: blue"&gt;try&lt;br /&gt;                    &lt;/span&gt;{&lt;br /&gt;                        &lt;span style="color: #2b91af"&gt;SPUser &lt;/span&gt;sourceUser = (&lt;span style="color: #2b91af"&gt;SPUser&lt;/span&gt;)member;&lt;br /&gt;                        &lt;span style="color: #2b91af"&gt;SPUser &lt;/span&gt;destinationUser = destinationListItem.ParentList.ParentWeb.AllUsers[sourceUser.LoginName];&lt;br /&gt;                        &lt;span style="color: blue"&gt;if &lt;/span&gt;(destinationUser != &lt;span style="color: blue"&gt;null&lt;/span&gt;)&lt;br /&gt;                        {&lt;br /&gt;                            destinationRoleAsg = &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;SPRoleAssignment&lt;/span&gt;(destinationUser);&lt;br /&gt;                        }&lt;br /&gt;                    }&lt;br /&gt;                    &lt;span style="color: blue"&gt;catch&lt;br /&gt;                    &lt;/span&gt;{ }&lt;br /&gt;&lt;br /&gt;                    &lt;span style="color: green"&gt;//Not a user, try check if the member is a Group&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: blue"&gt;if &lt;/span&gt;(destinationRoleAsg == &lt;span style="color: blue"&gt;null&lt;/span&gt;)&lt;br /&gt;                    {&lt;br /&gt;                        &lt;span style="color: green"&gt;//Check if the member is a group&lt;br /&gt;                        &lt;/span&gt;&lt;span style="color: blue"&gt;try&lt;br /&gt;                        &lt;/span&gt;{&lt;br /&gt;                            &lt;span style="color: #2b91af"&gt;SPGroup &lt;/span&gt;sourceGroup = (&lt;span style="color: #2b91af"&gt;SPGroup&lt;/span&gt;)member;&lt;br /&gt;                            &lt;span style="color: #2b91af"&gt;SPGroup &lt;/span&gt;destinationGroup = destinationListItem.ParentList.ParentWeb.SiteGroups[sourceGroup.Name];&lt;br /&gt;                            &lt;span style="color: blue"&gt;if &lt;/span&gt;(destinationGroup != &lt;span style="color: blue"&gt;null&lt;/span&gt;)&lt;br /&gt;                            {&lt;br /&gt;                                destinationRoleAsg = &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;SPRoleAssignment&lt;/span&gt;(destinationGroup);&lt;br /&gt;                            }&lt;br /&gt;                        }&lt;br /&gt;                        &lt;span style="color: blue"&gt;catch&lt;br /&gt;                        &lt;/span&gt;{ }&lt;br /&gt;                    }&lt;br /&gt;&lt;br /&gt;                    &lt;span style="color: green"&gt;//At this state we should have the role assignment established either by user or group&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: blue"&gt;if &lt;/span&gt;(destinationRoleAsg != &lt;span style="color: blue"&gt;null&lt;/span&gt;)&lt;br /&gt;                    {&lt;br /&gt;&lt;br /&gt;                        &lt;span style="color: blue"&gt;foreach &lt;/span&gt;(&lt;span style="color: #2b91af"&gt;SPRoleDefinition &lt;/span&gt;sourceRoleDefinition &lt;span style="color: blue"&gt;in &lt;/span&gt;sourceRoleAsg.RoleDefinitionBindings)&lt;br /&gt;                        {&lt;br /&gt;                            &lt;span style="color: blue"&gt;try &lt;/span&gt;{ destinationRoleAsg.RoleDefinitionBindings.Add(destinationListItem.ParentList.ParentWeb.RoleDefinitions[sourceRoleDefinition.Name]); }&lt;br /&gt;                            &lt;span style="color: blue"&gt;catch &lt;/span&gt;{ }&lt;br /&gt;                        }&lt;br /&gt;&lt;br /&gt;                        &lt;span style="color: blue"&gt;if &lt;/span&gt;(destinationRoleAsg.RoleDefinitionBindings.Count &amp;gt; 0)&lt;br /&gt;                        {&lt;br /&gt;                            &lt;span style="color: green"&gt;//handle additon of an existing  permission assignment error&lt;br /&gt;                            &lt;/span&gt;&lt;span style="color: blue"&gt;try &lt;/span&gt;{ destinationListItem.RoleAssignments.Add(destinationRoleAsg); }&lt;br /&gt;                            &lt;span style="color: blue"&gt;catch &lt;/span&gt;(&lt;span style="color: #2b91af"&gt;ArgumentException&lt;/span&gt;) { }&lt;br /&gt;                        }&lt;br /&gt;&lt;br /&gt;                    }&lt;br /&gt;&lt;br /&gt;                }&lt;br /&gt;&lt;br /&gt;                &lt;span style="color: green"&gt;//Ensure item update metadata is not affected.&lt;br /&gt;                &lt;/span&gt;destinationListItem.SystemUpdate(&lt;span style="color: blue"&gt;false&lt;/span&gt;);&lt;br /&gt;            }&lt;br /&gt;            &lt;span style="color: blue"&gt;else&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: green"&gt;//No need to assign permissions&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: blue"&gt;return&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        }&lt;/pre&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:852c5233-0c6a-4b27-b76f-5ad4277672f1" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/MOSS+2007" rel="tag"&gt;MOSS 2007&lt;/a&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4488134356468314016-6502224875624234817?l=rajeshagadi.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MyfindingsinMicrosoftworld/~4/4Ek8LcRO70o" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rajeshagadi.blogspot.com/feeds/6502224875624234817/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4488134356468314016&amp;postID=6502224875624234817" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4488134356468314016/posts/default/6502224875624234817?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4488134356468314016/posts/default/6502224875624234817?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MyfindingsinMicrosoftworld/~3/4Ek8LcRO70o/how-to-programmatically-copy-web-level.html" title="How to programmatically copy Web Level, List level and List Item Level Security Information for SharePoint Sites" /><author><name>Rajesh Agadi</name><uri>http://www.blogger.com/profile/17908384970712474388</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://3.bp.blogspot.com/__-HvNNPF_6s/SuzadWw3wDI/AAAAAAAAEHw/UNJGp_Zugxc/S220/ProfilePicture.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://rajeshagadi.blogspot.com/2011/04/how-to-programmatically-copy-web-level.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEEERXYyeSp7ImA9WhZREkU.&quot;"><id>tag:blogger.com,1999:blog-4488134356468314016.post-394555458507857636</id><published>2011-04-08T10:50:00.001-07:00</published><updated>2011-04-08T11:16:44.891-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-08T11:16:44.891-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="MOSS 2007" /><title>Drawbacks of current List Export and Import MOSS 2007 Content Migration APIs</title><content type="html">&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;[Note : This post is part of&amp;#160; my main blog “&lt;a href="http://rajeshagadi.blogspot.com/2011/03/segregating-large-moss-2007-sites.html"&gt;Moving Large MOSS 2007 Sites&lt;/a&gt;” and “&lt;a href="http://rajeshagadi.blogspot.com/2011/03/sharepoint-2010-migration.html"&gt;SharePoint 2010 Migration&lt;/a&gt;”]&lt;/p&gt;  &lt;h4&gt;Some Background.&lt;/h4&gt;  &lt;p&gt;Suppose you are considering using the SharePoint Content Migration API for copying your SharePoint content from one site to another site. Consider below tested scenarios on what you will actually get out of the API usage results&amp;#160; for your implementation.&lt;/p&gt;  &lt;p&gt;When you are using SharePoint SPWeb Object as source to Export/Import API Process, you will get the SharePoint Permissions, SharePoint Users and the SharePoint Groups as well as Site Permissions. In additionally since all the List and list items are part of the larger scope of the SPWeb, you will also get the entire list and list item level permissions copied as well. &lt;/p&gt;  &lt;p&gt;Other than security all of your metadata, date and time stamps is all retained. Hence you are covered for the most part. (Excluding any of your customizations, workflows, alerts etc. which you are responsible to appropriately make the transition).&lt;/p&gt;  &lt;p&gt;I have experienced a lack of security data being transferred appropriately when it comes to Export/Importing anything&amp;#160; below the SPWeb object. &lt;/p&gt;  &lt;h3&gt;What security information does SharePoint List Export/Import API Process copy?&lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;Copies only the Users/AD Groups&amp;#160; and the SharePoint Groups and their members. &lt;/li&gt; &lt;/ul&gt;  &lt;table border="1" cellspacing="0" cellpadding="2" width="400"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="200"&gt;Source&lt;/td&gt;        &lt;td valign="top" width="200"&gt;Target&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="200"&gt;&lt;a href="http://lh3.ggpht.com/__-HvNNPF_6s/TZ9Kyr89xcI/AAAAAAAAEeY/dQRzgzPaEwU/s1600-h/image%5B3%5D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/__-HvNNPF_6s/TZ9Ky_7WVBI/AAAAAAAAEec/j0bX-PcvOsQ/image_thumb%5B1%5D.png?imgmax=800" width="164" height="372" /&gt;&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="200"&gt;&lt;a href="http://lh5.ggpht.com/__-HvNNPF_6s/TZ9KzLpJVNI/AAAAAAAAEeg/HrVEFgXvS5Q/s1600-h/image%5B7%5D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/__-HvNNPF_6s/TZ9KzWlOL3I/AAAAAAAAEek/LYKKkN_rjfU/image_thumb%5B3%5D.png?imgmax=800" width="168" height="378" /&gt;&lt;/a&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="200"&gt;Users          &lt;br /&gt;&lt;a href="http://lh6.ggpht.com/__-HvNNPF_6s/TZ9Kz79DnBI/AAAAAAAAEeo/KwP2vDeSdQE/s1600-h/image%5B13%5D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/__-HvNNPF_6s/TZ9K0NtYZeI/AAAAAAAAEes/TTd1G9LcQCs/image_thumb%5B5%5D.png?imgmax=800" width="205" height="141" /&gt;&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="200"&gt;Users          &lt;br /&gt;&lt;a href="http://lh3.ggpht.com/__-HvNNPF_6s/TZ9K0Z_-sHI/AAAAAAAAEew/lbmMdD_FyEg/s1600-h/image%5B16%5D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/__-HvNNPF_6s/TZ9K0poWd8I/AAAAAAAAEe0/ksvmROgIk4Y/image_thumb%5B6%5D.png?imgmax=800" width="221" height="92" /&gt;&lt;/a&gt;           &lt;br /&gt;&lt;font style="background-color: #ffff00"&gt;Users are missing.&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="200"&gt;Permission Levels          &lt;br /&gt;&lt;a href="http://lh4.ggpht.com/__-HvNNPF_6s/TZ9K08bxb0I/AAAAAAAAEe4/LPzAsbd82mA/s1600-h/image%5B20%5D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/__-HvNNPF_6s/TZ9K1UeRkMI/AAAAAAAAEe8/cM9ZLEc2mPQ/image_thumb%5B8%5D.png?imgmax=800" width="189" height="270" /&gt;&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="200"&gt;Permission levels          &lt;br /&gt;&lt;a href="http://lh3.ggpht.com/__-HvNNPF_6s/TZ9K1vMtJSI/AAAAAAAAEfA/X4opAMx7r9c/s1600-h/image%5B40%5D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/__-HvNNPF_6s/TZ9K10VzIXI/AAAAAAAAEfE/fJIkPRo9-WQ/image_thumb%5B18%5D.png?imgmax=800" width="129" height="146" /&gt;&lt;/a&gt;           &lt;br /&gt;&lt;font style="background-color: #ffff00"&gt;Custom Permission Level(s) are missing            &lt;br /&gt;(Publishing Portal specific Permission Levels will also be missed if the target site collection is not a Publishing Site which is fine).&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;h3&gt;&amp;#160;&lt;/h3&gt;  &lt;h3&gt;What security information does SharePoint List Export/Import API Process not copy?&lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;Does not copy Web Level Permission Assignments. &lt;/li&gt;    &lt;li&gt;Does not copy List/Lib Level Permission Assignments (Other than the OOTB Groups and OOTB Permission Levels). &lt;/li&gt;    &lt;li&gt;Does not copy List/Lib Item/Folder Level Permission Assignments (Other than the OOTB Groups and permission levels). &lt;/li&gt; &lt;/ul&gt;  &lt;table border="1" cellspacing="0" cellpadding="2" width="400"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="200"&gt;Source&lt;/td&gt;        &lt;td valign="top" width="200"&gt;Target&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="200"&gt;Web Level Permissions          &lt;br /&gt;&lt;a href="http://lh4.ggpht.com/__-HvNNPF_6s/TZ9K2GK4erI/AAAAAAAAEfI/uwi9ySxupVc/s1600-h/image%5B58%5D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/__-HvNNPF_6s/TZ9K2emunyI/AAAAAAAAEfM/6EYCqDdr9bM/image_thumb%5B28%5D.png?imgmax=800" width="511" height="368" /&gt;&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="200"&gt;Web level Permissions          &lt;br /&gt;&lt;a href="http://lh6.ggpht.com/__-HvNNPF_6s/TZ9K2g7gTkI/AAAAAAAAEfQ/VRh7b2wlTzU/s1600-h/image%5B41%5D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/__-HvNNPF_6s/TZ9K262VOYI/AAAAAAAAEfU/KqKiFIAzsrA/image_thumb%5B19%5D.png?imgmax=800" width="444" height="57" /&gt;&lt;/a&gt;           &lt;br /&gt;          &lt;br /&gt;&lt;font style="background-color: #ffff00"&gt;All Web Level permission assignments are missing.&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="200"&gt;Library Level Permissions          &lt;br /&gt;&lt;a href="http://lh3.ggpht.com/__-HvNNPF_6s/TZ9K3GgL0SI/AAAAAAAAEfY/LTxGoFQU5KY/s1600-h/image%5B48%5D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/__-HvNNPF_6s/TZ9K3ZMPslI/AAAAAAAAEfc/3SpYUvwPnYI/image_thumb%5B22%5D.png?imgmax=800" width="446" height="219" /&gt;&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="200"&gt;Library Level Permissions&lt;a href="http://lh6.ggpht.com/__-HvNNPF_6s/TZ9K3qxsyaI/AAAAAAAAEfg/KqfBTs5UKuE/s1600-h/image%5B49%5D.png"&gt;            &lt;br /&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/__-HvNNPF_6s/TZ9K3_kvJvI/AAAAAAAAEfk/CcT5vfJ_zK8/image_thumb%5B23%5D.png?imgmax=800" width="420" height="144" /&gt;&lt;/a&gt;           &lt;br /&gt;&lt;font style="background-color: #ffff00"&gt;All Library Level permission assignments are missing.&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="200"&gt;Library Item Level Permissions          &lt;br /&gt;&lt;a href="http://lh5.ggpht.com/__-HvNNPF_6s/TZ9K4MHNygI/AAAAAAAAEfo/8T0-yQnetEk/s1600-h/image%5B59%5D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/__-HvNNPF_6s/TZ9K4TTMqeI/AAAAAAAAEfs/AdSQro_5BLA/image_thumb%5B29%5D.png?imgmax=800" width="373" height="69" /&gt;&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="200"&gt;Library Item Level Permissions          &lt;br /&gt;&lt;a href="http://lh4.ggpht.com/__-HvNNPF_6s/TZ9K4p8ua9I/AAAAAAAAEfw/-wlPQaasHwE/s1600-h/image%5B57%5D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/__-HvNNPF_6s/TZ9K45YpYYI/AAAAAAAAEf0/dHH0DX_tl0s/image_thumb%5B27%5D.png?imgmax=800" width="428" height="98" /&gt;&lt;/a&gt;           &lt;br /&gt;&lt;font style="background-color: #ffff00"&gt;All Library Item Level permission assignments are missing.&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;h3&gt;&amp;#160;&lt;/h3&gt;  &lt;h3&gt;How to fix this gap?&lt;/h3&gt;  &lt;p&gt;See my other blog on &lt;a href="http://rajeshagadi.blogspot.com/2011/04/how-to-programmatically-copy-web-level.html"&gt;How to programmatically copy Web Level, List level and List Item Level Security Information for SharePoint Sites&lt;/a&gt;&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:484efe6b-4716-4dd5-b3d8-2778972e557b" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/MOSS+2007+Export+and+Import+API" rel="tag"&gt;MOSS 2007 Export and Import API&lt;/a&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4488134356468314016-394555458507857636?l=rajeshagadi.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MyfindingsinMicrosoftworld/~4/BAEtzjFe3sw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rajeshagadi.blogspot.com/feeds/394555458507857636/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4488134356468314016&amp;postID=394555458507857636" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4488134356468314016/posts/default/394555458507857636?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4488134356468314016/posts/default/394555458507857636?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MyfindingsinMicrosoftworld/~3/BAEtzjFe3sw/drawbacks-of-current-list-export-and.html" title="Drawbacks of current List Export and Import MOSS 2007 Content Migration APIs" /><author><name>Rajesh Agadi</name><uri>http://www.blogger.com/profile/17908384970712474388</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://3.bp.blogspot.com/__-HvNNPF_6s/SuzadWw3wDI/AAAAAAAAEHw/UNJGp_Zugxc/S220/ProfilePicture.JPG" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh5.ggpht.com/__-HvNNPF_6s/TZ9Ky_7WVBI/AAAAAAAAEec/j0bX-PcvOsQ/s72-c/image_thumb%5B1%5D.png?imgmax=800" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://rajeshagadi.blogspot.com/2011/04/drawbacks-of-current-list-export-and.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUcCRXs5cCp7ImA9WhZREk0.&quot;"><id>tag:blogger.com,1999:blog-4488134356468314016.post-5727386295454344949</id><published>2011-04-07T11:23:00.000-07:00</published><updated>2011-04-07T12:04:24.528-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-07T12:04:24.528-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="MOSS 2007" /><title>SharePoint (MOSS 2007) Export and Import API specifics (PRIME)</title><content type="html">&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;[Note : This post is part of&amp;#160; my main blog “&lt;a href="http://rajeshagadi.blogspot.com/2011/03/segregating-large-moss-2007-sites.html"&gt;Moving Large MOSS 2007 Sites&lt;/a&gt;” and “&lt;a href="http://rajeshagadi.blogspot.com/2011/03/sharepoint-2010-migration.html"&gt;SharePoint 2010 Migration&lt;/a&gt;”]&lt;/p&gt;  &lt;p&gt;[Also see my other blog on Drawbacks of current List Export and Import Content Migration APIs]&lt;/p&gt;  &lt;p&gt;[Also see my other blog on Copying Web Level, List level and List Item Level Security Information]&lt;/p&gt;  &lt;h5&gt;Overview&lt;/h5&gt;  &lt;p&gt;There are several good references (refer to my main blog on SharePoint 2010 Migration) when it comes to SharePoint Export and Import API. I still wanted to call out as reference to all of the options that will need to be appropriately set to get your export and import going.&lt;/p&gt;  &lt;h3&gt;Export Specifics&lt;/h3&gt;  &lt;p&gt;Below I am listing all the possible Export Settings properties following by my comments:&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Basic Object definition properties to be set:&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;SPExportObject exportObject = new SPExportObject();    &lt;br /&gt;exportObject.Id = web.ID;     &lt;br /&gt;exportObject.IncludeDescendants = SPIncludeDescendants.All;     &lt;br /&gt;exportObject.Type = SPDeploymentObjectType.Web; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Export Specific settings:&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;SPExportSettings settings = new SPExportSettings(); &lt;/p&gt;  &lt;p&gt;//Standard Options    &lt;br /&gt;settings.SiteUrl = web.Url;     &lt;br /&gt;settings.FileLocation = exportFolderPath;     &lt;br /&gt;string exportImportSubFolder = YourExportFolder; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Export Log File settings:      &lt;br /&gt;&lt;/u&gt;string exportLogFile = YourExportLogFilename;     &lt;br /&gt;if(System.IO.File.Exists(YourExportLogFilename))     &lt;br /&gt;{     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; File.Delete(YourExportLogFilename);     &lt;br /&gt;}     &lt;br /&gt;settings.LogFilePath = YourExportLogFilename;&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;&lt;u&gt;Export general Settings: &lt;/u&gt;    &lt;br /&gt;settings.FileCompression = false;     &lt;br /&gt;settings.ExcludeDependencies = true;     &lt;br /&gt;settings.OverwriteExistingDataFile = true; &lt;/p&gt;  &lt;p&gt;&lt;u&gt;Export events to be disabled Settings:      &lt;br /&gt;&lt;/u&gt;settings.HaltOnNonfatalError = false;     &lt;br /&gt;settings.HaltOnWarning = false; &lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;&lt;u&gt;Export configurable Settings:&lt;/u&gt;     &lt;br /&gt;settings.IncludeSecurity = SPIncludeSecurity.All;     &lt;br /&gt;settings.IncludeVersions = .All;     &lt;br /&gt;settings.CommandLineVerbose = true;&amp;#160; &lt;br /&gt;settings.ExportMethod = SPExportMethodType.ExportAll; &lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;&lt;u&gt;Note this&amp;#160; settings if you want to mock-run the export&lt;/u&gt;:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;settings.TestRun = true;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&lt;u&gt;As best practice run the validate, your try catch can catch early error much before the Export is kicked off:&lt;/u&gt;     &lt;br /&gt;settings.Validate(); &lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;&lt;u&gt;Final Export Run Settings:      &lt;br /&gt;&lt;/u&gt;settings.ExportObjects.Add(exportObject);     &lt;br /&gt;SPExport export = new SPExport(settings);     &lt;br /&gt;export.Run(); &lt;/p&gt;  &lt;h5&gt;&lt;/h5&gt;  &lt;h5&gt;&amp;#160;&lt;/h5&gt;  &lt;h3&gt;Import Specifics&lt;/h3&gt;  &lt;p&gt;&lt;u&gt;Basic Object definition properties to be set:      &lt;br /&gt;&lt;/u&gt;SPImportSettings settings = new SPImportSettings();     &lt;br /&gt;settings.SiteUrl = YourNewSiteCollection.Url;     &lt;br /&gt;//Assign the importing parent web URL     &lt;br /&gt;settings.WebUrl = DestinationWebURL;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Set the file locations for where the exported data is located:      &lt;br /&gt;&lt;/u&gt;settings.FileLocation = YourImportFolderPath;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Set the Import log file name. Delete first if exists from he previous run, otherwise it will append and could get large:      &lt;br /&gt;&lt;/u&gt;if (System.IO.File.Exists(YourImportLogFile))     &lt;br /&gt;{     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; File.Delete(YourImportLogFile);     &lt;br /&gt;}     &lt;br /&gt;settings.LogFilePath = YourImportLogFile;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;No need to set compressed since we will be importing from an uncompressed export:      &lt;br /&gt;&lt;/u&gt;settings.FileCompression = false;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Set to false to be able reparent in a new site collection:&lt;/u&gt;     &lt;br /&gt;settings.RetainObjectIdentity = false;&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;u&gt;You want all the security to be included (See my other blog on .... ):      &lt;br /&gt;&lt;/u&gt;settings.IncludeSecurity = SPIncludeSecurity.All;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;You want to set to all to import all user date time into:&lt;/u&gt;     &lt;br /&gt;settings.UserInfoDateTime = SPImportUserInfoDateTimeOption.ImportAll; &lt;/p&gt;  &lt;p&gt;&lt;u&gt;You want to supress the events to increase your import performance:      &lt;br /&gt;&lt;/u&gt;settings.HaltOnNonfatalError = false;     &lt;br /&gt;settings.HaltOnWarning = false;     &lt;br /&gt;settings.SuppressAfterEvents = false;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;You want to get all the versions:&lt;/u&gt;     &lt;br /&gt;settings.UpdateVersions = SPUpdateVersions.Append;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Verbose log will generate detailed log while running: &lt;/u&gt;    &lt;br /&gt;settings.CommandLineVerbose = true;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;As best practice run the validate, your try catch can catch early errors much before the Import is kicked off:      &lt;br /&gt;&lt;/u&gt;settings.Validate();&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Final Import Run Settings: &lt;/u&gt;    &lt;br /&gt;SPImport import = new SPImport(settings);     &lt;br /&gt;import.Run();&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:8e517be9-a997-48b2-9b94-a746ec2ae988" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/MOSS+2007+Export+and+Import+API" rel="tag"&gt;MOSS 2007 Export and Import API&lt;/a&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4488134356468314016-5727386295454344949?l=rajeshagadi.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MyfindingsinMicrosoftworld/~4/CJUWyfp4tPY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rajeshagadi.blogspot.com/feeds/5727386295454344949/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4488134356468314016&amp;postID=5727386295454344949" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4488134356468314016/posts/default/5727386295454344949?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4488134356468314016/posts/default/5727386295454344949?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MyfindingsinMicrosoftworld/~3/CJUWyfp4tPY/sharepoint-moss-2007-export-and-import.html" title="SharePoint (MOSS 2007) Export and Import API specifics (PRIME)" /><author><name>Rajesh Agadi</name><uri>http://www.blogger.com/profile/17908384970712474388</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://3.bp.blogspot.com/__-HvNNPF_6s/SuzadWw3wDI/AAAAAAAAEHw/UNJGp_Zugxc/S220/ProfilePicture.JPG" /></author><thr:total>3</thr:total><feedburner:origLink>http://rajeshagadi.blogspot.com/2011/04/sharepoint-moss-2007-export-and-import.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUcMSX08eSp7ImA9WhZREkU.&quot;"><id>tag:blogger.com,1999:blog-4488134356468314016.post-3613364335974241878</id><published>2011-04-07T11:04:00.001-07:00</published><updated>2011-04-08T11:24:48.371-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-08T11:24:48.371-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="MOSS 2007" /><title>How to programmatically lock SharePoint Site Collection while Exporting and other maintenance work</title><content type="html">&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;[Note : This post is part of&amp;#160; my main blog “&lt;a href="http://rajeshagadi.blogspot.com/2011/03/segregating-large-moss-2007-sites.html"&gt;Moving Large MOSS 2007 Sites&lt;/a&gt;” and “&lt;a href="http://rajeshagadi.blogspot.com/2011/03/sharepoint-2010-migration.html"&gt;SharePoint 2010 Migration&lt;/a&gt;”]&lt;/p&gt;  &lt;p&gt;In order to ensure your export remains consistent through the process of Export and then till the completion of Import, consider Read Locking your Exporting Site Collection.&amp;#160;&amp;#160; &lt;/p&gt;  &lt;p&gt;Lets see how these&amp;#160; UI settings for the locks map to the code options:&lt;/p&gt;  &lt;p&gt;&lt;u&gt;SPSite.WriteLocked&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/__-HvNNPF_6s/TZ38q1siQMI/AAAAAAAAEeA/xoKDxGG4f88/s1600-h/image_thumb1%5B2%5D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image_thumb1" border="0" alt="image_thumb1" src="http://lh3.ggpht.com/__-HvNNPF_6s/TZ38rLGp5gI/AAAAAAAAEeE/3M98-eaKLgY/image_thumb1_thumb.png?imgmax=800" width="244" height="120" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;SPSite.ReadOnly&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/__-HvNNPF_6s/TZ38rUmtlQI/AAAAAAAAEeI/-HmEHyGD9XE/s1600-h/image_thumb2%5B2%5D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image_thumb2" border="0" alt="image_thumb2" src="http://lh5.ggpht.com/__-HvNNPF_6s/TZ38ru-hWGI/AAAAAAAAEeM/Tzp-QM6RJjE/image_thumb2_thumb.png?imgmax=800" width="244" height="121" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;SPSite.ReadLocked&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/__-HvNNPF_6s/TZ38r3nS7JI/AAAAAAAAEeQ/Wyg-r4RqzcE/s1600-h/image_thumb3%5B2%5D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image_thumb3" border="0" alt="image_thumb3" src="http://lh3.ggpht.com/__-HvNNPF_6s/TZ38sCKBsmI/AAAAAAAAEeU/ASgvFgleCzI/image_thumb3_thumb.png?imgmax=800" width="244" height="114" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Below I am sharing my code base for implementing the ReadOnly locks. Few things to note:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;When you are assigning any lock, it is important that you first assign the LockHint before setting the Lock as the site collection becomes the respective lock mode. &lt;/li&gt;    &lt;li&gt;When you are removing any lock, it is important that you first setting the given Lock false. as the site collection becomes released from the respective lock mode. Then clear off the lock hint. &lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;Your Call order &lt;/h3&gt;  &lt;p&gt;1. LockSiteCollection(SiteCollection);   &lt;br /&gt;2. Perform Your Export/Import here    &lt;br /&gt;3. UnLockSiteCollection(SiteCollection);&lt;/p&gt;  &lt;h3&gt;Common Methods you can use:&lt;/h3&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;blockquote&gt;   &lt;pre class="csharpcode"&gt;       private &lt;span class="kwrd"&gt;void&lt;/span&gt; LockSiteCollection(SPSite Site)&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="rem"&gt;//Try lock the Portal Site Collection&lt;/span&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;try&lt;/span&gt;&lt;br /&gt;                {&lt;br /&gt;                    Site.LockIssue = “Your Lock reason”;&lt;br /&gt;                }&lt;br /&gt;                &lt;span class="rem"&gt;//handle prior left out read only locks due to errors.&lt;/span&gt;&lt;br /&gt;                &lt;span class="kwrd"&gt;catch&lt;/span&gt; (UnauthorizedAccessException)&lt;br /&gt;                {&lt;br /&gt;                    Site.ReadOnly = &lt;span class="kwrd"&gt;false&lt;/span&gt;;&lt;br /&gt;                    Site.LockIssue = “Your Lock reason”;&lt;br /&gt;                }&lt;br /&gt;                Site.ReadOnly = &lt;span class="kwrd"&gt;true&lt;/span&gt;;&lt;br /&gt;                &lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; UnLockSiteCollection(SPSite Site)&lt;br /&gt;        {&lt;br /&gt;&lt;br /&gt;                Site.ReadOnly = &lt;span class="kwrd"&gt;false&lt;/span&gt;;&lt;br /&gt;                Site.ReadLocked = &lt;span class="kwrd"&gt;false&lt;/span&gt;;&lt;br /&gt;                Site.WriteLocked = &lt;span class="kwrd"&gt;false&lt;/span&gt;;&lt;br /&gt;                Site.LockIssue = &lt;span class="str"&gt;&amp;quot;&amp;quot;&lt;/span&gt;;&lt;br /&gt;          }&lt;/pre&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;style type="text/css"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:e705972c-09bd-4495-928c-35866e6c012b" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Sharepoint" rel="tag"&gt;Sharepoint&lt;/a&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4488134356468314016-3613364335974241878?l=rajeshagadi.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MyfindingsinMicrosoftworld/~4/NercFc6BSPA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rajeshagadi.blogspot.com/feeds/3613364335974241878/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4488134356468314016&amp;postID=3613364335974241878" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4488134356468314016/posts/default/3613364335974241878?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4488134356468314016/posts/default/3613364335974241878?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MyfindingsinMicrosoftworld/~3/NercFc6BSPA/how-to-programmatically-lock-sharepoint.html" title="How to programmatically lock SharePoint Site Collection while Exporting and other maintenance work" /><author><name>Rajesh Agadi</name><uri>http://www.blogger.com/profile/17908384970712474388</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://3.bp.blogspot.com/__-HvNNPF_6s/SuzadWw3wDI/AAAAAAAAEHw/UNJGp_Zugxc/S220/ProfilePicture.JPG" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh3.ggpht.com/__-HvNNPF_6s/TZ38rLGp5gI/AAAAAAAAEeE/3M98-eaKLgY/s72-c/image_thumb1_thumb.png?imgmax=800" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://rajeshagadi.blogspot.com/2011/04/how-to-programmatically-lock-sharepoint.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0QESX4ycCp7ImA9WhZREUQ.&quot;"><id>tag:blogger.com,1999:blog-4488134356468314016.post-5002545402966561304</id><published>2011-04-07T11:01:00.001-07:00</published><updated>2011-04-07T11:01:48.098-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-07T11:01:48.098-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="MOSS 2007" /><title>Site Collection Creation and re-parenting</title><content type="html">&lt;p&gt;[Note : This post is part of&amp;#160; my main blog “&lt;a href="http://rajeshagadi.blogspot.com/2011/03/segregating-large-moss-2007-sites.html"&gt;Segregating Large MOSS 2007 Sites&lt;/a&gt;” and “&lt;a href="http://rajeshagadi.blogspot.com/2011/03/sharepoint-2010-migration.html"&gt;SharePoint 2010 Migration&lt;/a&gt;”]&lt;/p&gt;  &lt;p&gt;When you are importing a SPWeb or an SPWeb tree in to a new Site Collection, you will want to first create new site collection.&amp;#160; Now moving a given SPWeb as Root Web in to a new Site Collection is called re-parenting. From the above references you will get the more on this. But something I wanted to emphasize and clarify why we should create a new Site Collection via an STSADM&amp;#160; createsite as supposed to SPWebApplication.CreateSite().&lt;/p&gt;  &lt;p&gt;&lt;u&gt;SPWebApplication.CreateSite().&lt;/u&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Result:&amp;#160; &lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;Site Collection &lt;/li&gt;      &lt;li&gt;--&amp;gt;Rootweb is created with given Template Type (STS/MPS/Custom) &lt;/li&gt;   &lt;/ul&gt;    &lt;p&gt;What happens here: you can only import on top of the RootWeb. So the end result is that your imported web is always a sub web of the rootweb.&lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;&lt;u&gt;STSADM&amp;#160; createsite &lt;/u&gt;&lt;/p&gt;    &lt;p&gt;Result:&amp;#160; &lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;Site Collection &lt;/li&gt;      &lt;li&gt;--&amp;gt;Rootweb is created with Blank Template Type (NOT STS/MPS/Custom) &lt;/li&gt;   &lt;/ul&gt;    &lt;p&gt;What happens here: you can import in to the RootWeb. So the end result is that your imported web can be at rootweb level.&lt;/p&gt;&lt;/blockquote&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4488134356468314016-5002545402966561304?l=rajeshagadi.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MyfindingsinMicrosoftworld/~4/-LPuBWAZg9Y" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rajeshagadi.blogspot.com/feeds/5002545402966561304/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4488134356468314016&amp;postID=5002545402966561304" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4488134356468314016/posts/default/5002545402966561304?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4488134356468314016/posts/default/5002545402966561304?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MyfindingsinMicrosoftworld/~3/-LPuBWAZg9Y/site-collection-creation-and-re.html" title="Site Collection Creation and re-parenting" /><author><name>Rajesh Agadi</name><uri>http://www.blogger.com/profile/17908384970712474388</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://3.bp.blogspot.com/__-HvNNPF_6s/SuzadWw3wDI/AAAAAAAAEHw/UNJGp_Zugxc/S220/ProfilePicture.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://rajeshagadi.blogspot.com/2011/04/site-collection-creation-and-re.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0QBR3s7eyp7ImA9WhZRF0k.&quot;"><id>tag:blogger.com,1999:blog-4488134356468314016.post-4642772664447724369</id><published>2011-04-05T19:14:00.001-07:00</published><updated>2011-04-13T17:35:56.503-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-13T17:35:56.503-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Developer" /><category scheme="http://www.blogger.com/atom/ns#" term="MOSS 2007" /><title>How to find SharePoint List and Libraries true Size?</title><content type="html">&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h5&gt;Overview&lt;/h5&gt;  &lt;p&gt;I wanted to get size of list and libraries for my portal in a reporting fashion. For Publishing Portal site collection you can access the list and library size from site actions&amp;gt; under the Site Collection Administration group, you have access to “Storage space allocation”. This is great info. But not something I can consume the same information programmatically.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/__-HvNNPF_6s/TZvMn-Z6mEI/AAAAAAAAEdg/kKybE7k_kyk/s1600-h/image4.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/__-HvNNPF_6s/TZvMocTjQwI/AAAAAAAAEdk/SDdS81fwB-4/image_thumb2.png?imgmax=800" width="727" height="274" /&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;If you notice this page is server through /_layouts/storman.aspx. Further digging on this page gives me the inherited&amp;#160; name space “Microsoft.SharePoint.ApplicationPages.StorMan” which is obfuscated and hence not sure how this above data is retrieved. &lt;/p&gt;  &lt;h5&gt;&amp;#160;&lt;/h5&gt;  &lt;h3&gt;Further exploration&lt;/h3&gt;  &lt;p&gt;So still hoping to find the little nugget that is producing this information, I started diggings in to the Content Database Stored Procedures.&lt;/p&gt;  &lt;p&gt;Then I came across two interesting stored procedures: proc_GetListSizes and proc_GetDocLibrarySizes&lt;/p&gt;  &lt;p&gt;Both stored procedures take the Site Collection GUID. When test ran, the result was the same as the above Storage space allocation page.&lt;/p&gt;  &lt;h5&gt;&amp;#160;&lt;/h5&gt;  &lt;h3&gt;So what I did with these stored procedures?&lt;/h3&gt;  &lt;p&gt;I took these two stored procedures, ran against the content database of my portal site collection. Merged the results of both stored procedures. Used some rudimentary caching&amp;#160; to store and retain the results set. Now you can list or get size for your given SPList object in MB.&lt;/p&gt;  &lt;h3&gt;Warning&lt;/h3&gt;  &lt;p&gt;This is not recommended against the production system as this is not a Microsoft Supported operation. Also be aware that the results could be huge and may impact your system. &lt;/p&gt;  &lt;h3&gt;Well here is all you are waiting for… the code base:&lt;/h3&gt;  &lt;p&gt;I have tested this against the MOSS 2007 and have not had chance to validate for any other SharePoint versions yet. &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;I have also included the Web Lists Size GetWebSizeWithUnitMeasure().&lt;/li&gt;    &lt;li&gt;I have also included the Lists Size GetListSizeInBytes().&lt;/li&gt;    &lt;li&gt;Then I have also included a function to determined the best way to represent the size in Bytes or KB or MB or GB or TB DefineSizeWithUnitMeasure&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Your calls examples&lt;/h3&gt;  &lt;p&gt;&lt;u&gt;To get size of a list:&lt;/u&gt;&lt;/p&gt;  &lt;pre class="code"&gt;&lt;span style="color: blue"&gt;string &lt;/span&gt;SizeWithUnitMeasure;&lt;br /&gt;&lt;span style="color: blue"&gt;double &lt;/span&gt;webSizeInBytes = GetWebSizeWithUnitMeasure(web, &lt;span style="color: blue"&gt;out &lt;/span&gt;withUnitMeasure);&lt;br /&gt;//Use the SizeWithUnitMeasure to print with the measure.&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="code"&gt;&lt;u&gt;To get size of a web:&lt;/u&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="code"&gt;&lt;span style="color: blue"&gt;string &lt;/span&gt;listSizeWithMeasure;&lt;br /&gt;&lt;span style="color: blue"&gt;double &lt;/span&gt;listSizeInBytes = GetListSizeWithUnit(list, &lt;span style="color: blue"&gt;out &lt;/span&gt;listSizeWithMeasure);&lt;br /&gt;//Use the listSizeWithMeasureto print with the measure.&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Common Function&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="csharpcode"&gt;&lt;br /&gt;  &lt;pre&gt;&amp;#160;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;style type="text/css"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;  &lt;pre class="code"&gt;&lt;span style="color: blue"&gt;public static double &lt;/span&gt;DefineSizeWithUnitMeasure(&lt;span style="color: blue"&gt;double &lt;/span&gt;sizeInBytes, &lt;span style="color: blue"&gt;out string &lt;/span&gt;unitMeasure)&lt;br /&gt;       {&lt;br /&gt;           unitMeasure = &lt;span style="color: #a31515"&gt;&amp;quot;Bytes&amp;quot;&lt;/span&gt;;&lt;br /&gt;           &lt;span style="color: blue"&gt;double &lt;/span&gt;size = sizeInBytes;&lt;br /&gt;&lt;br /&gt;           &lt;span style="color: blue"&gt;if &lt;/span&gt;(size &amp;gt; 1024)&lt;br /&gt;           {&lt;br /&gt;               size = sizeInBytes / 1024d;&lt;span style="color: green"&gt;//KB&lt;br /&gt;               &lt;/span&gt;unitMeasure = &lt;span style="color: #a31515"&gt;&amp;quot;KB&amp;quot;&lt;/span&gt;;&lt;br /&gt;           }&lt;br /&gt;           &lt;span style="color: blue"&gt;if &lt;/span&gt;(size &amp;gt; 1024)&lt;br /&gt;           {&lt;br /&gt;               size = size / 1024d;&lt;span style="color: green"&gt;//MB&lt;br /&gt;               &lt;/span&gt;unitMeasure = &lt;span style="color: #a31515"&gt;&amp;quot;MB&amp;quot;&lt;/span&gt;;&lt;br /&gt;           }&lt;br /&gt;           &lt;span style="color: blue"&gt;if &lt;/span&gt;(size &amp;gt; 1024)&lt;br /&gt;           {&lt;br /&gt;               size = size / 1024d; &lt;span style="color: green"&gt;//GB&lt;br /&gt;               &lt;/span&gt;unitMeasure = &lt;span style="color: #a31515"&gt;&amp;quot;GB&amp;quot;&lt;/span&gt;;&lt;br /&gt;           }&lt;br /&gt;&lt;br /&gt;           &lt;span style="color: blue"&gt;if &lt;/span&gt;(size &amp;gt; 1024)&lt;br /&gt;           {&lt;br /&gt;               size = size / 1024d; &lt;span style="color: green"&gt;//TB&lt;br /&gt;               &lt;/span&gt;unitMeasure = &lt;span style="color: #a31515"&gt;&amp;quot;TB&amp;quot;&lt;/span&gt;;&lt;br /&gt;           }&lt;br /&gt;&lt;br /&gt;           &lt;span style="color: blue"&gt;return &lt;/span&gt;size;&lt;br /&gt;       }&lt;br /&gt;&lt;br /&gt;       &lt;span style="color: blue"&gt;public static double &lt;/span&gt;GetWebSizeWithUnitMeasure(&lt;span style="color: #2b91af"&gt;SPWeb &lt;/span&gt;web, &lt;span style="color: blue"&gt;out string &lt;/span&gt;withUnitMeasure)&lt;br /&gt;       {&lt;br /&gt;       &lt;br /&gt;           &lt;span style="color: blue"&gt;double &lt;/span&gt;storageUsage = 0d;&lt;br /&gt;&lt;br /&gt;           &lt;br /&gt;           &lt;span style="color: blue"&gt;foreach &lt;/span&gt;(&lt;span style="color: #2b91af"&gt;SPList &lt;/span&gt;list &lt;span style="color: blue"&gt;in &lt;/span&gt;web.Lists)&lt;br /&gt;           {&lt;br /&gt;               storageUsage += (&lt;span style="color: blue"&gt;double&lt;/span&gt;) GetListSizeInBytes(list);&lt;br /&gt;           }&lt;br /&gt;           &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;           &lt;span style="color: blue"&gt;string &lt;/span&gt;unitMeasure = &lt;span style="color: #a31515"&gt;&amp;quot;&amp;quot;&lt;/span&gt;;&lt;br /&gt;           &lt;span style="color: blue"&gt;double &lt;/span&gt;webSize = DefineSizeWithUnitMeasure(storageUsage, &lt;span style="color: blue"&gt;out &lt;/span&gt;unitMeasure);&lt;br /&gt;&lt;br /&gt;           withUnitMeasure = &lt;span style="color: blue"&gt;string&lt;/span&gt;.Format(&lt;span style="color: #a31515"&gt;&amp;quot;{0} {1}&amp;quot;&lt;/span&gt;, webSize.ToString(&lt;span style="color: #a31515"&gt;&amp;quot;f&amp;quot;&lt;/span&gt;), unitMeasure);&lt;br /&gt;&lt;br /&gt;           &lt;span style="color: blue"&gt;return &lt;/span&gt;storageUsage;&lt;br /&gt;       }&lt;br /&gt;       &lt;br /&gt;&lt;br /&gt;       &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;       &lt;span style="color: blue"&gt;public static double &lt;/span&gt;GetListSizeWithUnit(&lt;span style="color: #2b91af"&gt;SPList &lt;/span&gt;list, &lt;span style="color: blue"&gt;out string &lt;/span&gt;withUnitMeasure )&lt;br /&gt;       {&lt;br /&gt;           &lt;span style="color: blue"&gt;double &lt;/span&gt;listSizeinBytes = (&lt;span style="color: blue"&gt;double&lt;/span&gt;) GetListSizeInBytes(list);&lt;br /&gt;           &lt;span style="color: blue"&gt;string &lt;/span&gt;unitMeasure = &lt;span style="color: #a31515"&gt;&amp;quot;&amp;quot;&lt;/span&gt;;&lt;br /&gt;           &lt;span style="color: blue"&gt;double &lt;/span&gt;listSize = DefineSizeWithUnitMeasure(listSizeinBytes, &lt;span style="color: blue"&gt;out &lt;/span&gt;unitMeasure);&lt;br /&gt;&lt;br /&gt;           withUnitMeasure=&lt;span style="color: blue"&gt;string&lt;/span&gt;.Format(&lt;span style="color: #a31515"&gt;&amp;quot;{0} {1}&amp;quot;&lt;/span&gt;, listSize.ToString(&lt;span style="color: #a31515"&gt;&amp;quot;f&amp;quot;&lt;/span&gt;), unitMeasure);&lt;br /&gt;&lt;br /&gt;           &lt;span style="color: blue"&gt;return &lt;/span&gt;listSizeinBytes;&lt;br /&gt;       }&lt;/pre&gt;&lt;br /&gt;  &lt;br /&gt;&lt;br /&gt;  &lt;pre class="code"&gt;        &lt;span style="color: blue"&gt;public static long &lt;/span&gt;GetListSizeInBytes(&lt;span style="color: #2b91af"&gt;SPList &lt;/span&gt;list)&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: blue"&gt;long &lt;/span&gt;listSize = 0;&lt;br /&gt;&lt;br /&gt;            &lt;span style="color: blue"&gt;string &lt;/span&gt;filter = &lt;span style="color: blue"&gt;string&lt;/span&gt;.Format(&lt;span style="color: #a31515"&gt;&amp;quot;tp_id='{0}'&amp;quot;&lt;/span&gt;, list.ID);&lt;br /&gt;&lt;br /&gt;            &lt;span style="color: #2b91af"&gt;DataTable &lt;/span&gt;myDataTable = GetCachedSiteCollectionListSizes(list.ParentWeb.Site);&lt;br /&gt;            &lt;span style="color: #2b91af"&gt;DataRow&lt;/span&gt;[] dataRows = myDataTable.Select(filter);&lt;br /&gt;&lt;br /&gt;            &lt;span style="color: blue"&gt;if &lt;/span&gt;(dataRows.Length &amp;gt; 0)&lt;br /&gt;            {&lt;br /&gt;                listSize = (&lt;span style="color: blue"&gt;long&lt;/span&gt;)dataRows[0][&lt;span style="color: #a31515"&gt;&amp;quot;TotalSize&amp;quot;&lt;/span&gt;];&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;            &lt;span style="color: blue"&gt;return &lt;/span&gt;listSize;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: blue"&gt;private static &lt;/span&gt;&lt;span style="color: #2b91af"&gt;DataTable &lt;/span&gt;m_SiteCollectionListSizes;&lt;br /&gt;        &lt;span style="color: blue"&gt;private static &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Guid &lt;/span&gt;m_SiteCollectionListSizesSiteID;&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: blue"&gt;private static &lt;/span&gt;&lt;span style="color: #2b91af"&gt;DataTable &lt;/span&gt;GetCachedSiteCollectionListSizes(&lt;span style="color: #2b91af"&gt;SPSite &lt;/span&gt;site)&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: blue"&gt;if &lt;/span&gt;(m_SiteCollectionListSizes == &lt;span style="color: blue"&gt;null &lt;/span&gt;|| m_SiteCollectionListSizesSiteID != site.ID)&lt;br /&gt;            {&lt;br /&gt;                m_SiteCollectionListSizes = GetSiteCollectionListSizes(site);&lt;br /&gt;                m_SiteCollectionListSizesSiteID = site.ID;&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;            &lt;span style="color: blue"&gt;return &lt;/span&gt;m_SiteCollectionListSizes;&lt;br /&gt;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: blue"&gt;private static &lt;/span&gt;&lt;span style="color: #2b91af"&gt;DataTable &lt;/span&gt;GetSiteCollectionListSizes(&lt;span style="color: #2b91af"&gt;SPSite &lt;/span&gt;site)&lt;br /&gt;        {&lt;br /&gt;&lt;br /&gt;            &lt;span style="color: #2b91af"&gt;DataTable &lt;/span&gt;dataTable = GetDocLibSizes(site);&lt;br /&gt;            &lt;span style="color: green"&gt;//Combine both list and doc lib size results&lt;br /&gt;            &lt;/span&gt;dataTable.Merge(GetListSizes(site));&lt;br /&gt;            &lt;br /&gt;            &lt;span style="color: blue"&gt;return &lt;/span&gt;dataTable;&lt;br /&gt;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: blue"&gt;private static &lt;/span&gt;&lt;span style="color: #2b91af"&gt;DataTable &lt;/span&gt;GetDocLibSizes(&lt;span style="color: #2b91af"&gt;SPSite &lt;/span&gt;site)&lt;br /&gt;        {&lt;br /&gt;           &lt;br /&gt;            &lt;span style="color: blue"&gt;string &lt;/span&gt;connectionString = site.WebApplication.ContentDatabases[site.ContentDatabase.Id].DatabaseConnectionString;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="code"&gt;           &lt;span style="color: blue"&gt;string &lt;/span&gt;storedProcName = &lt;span style="color: #a31515"&gt;&amp;quot;proc_GetDocLibrarySizes&amp;quot;&lt;/span&gt;;&lt;br /&gt;            &lt;br /&gt;            System.Data.SqlClient.&lt;span style="color: #2b91af"&gt;SqlConnection &lt;/span&gt;connection = &lt;span style="color: blue"&gt;null&lt;/span&gt;;&lt;br /&gt;            System.Data.SqlClient.&lt;span style="color: #2b91af"&gt;SqlDataReader &lt;/span&gt;reader = &lt;span style="color: blue"&gt;null&lt;/span&gt;;&lt;br /&gt;            &lt;span style="color: #2b91af"&gt;DataTable &lt;/span&gt;dataTable = &lt;span style="color: blue"&gt;null&lt;/span&gt;;&lt;br /&gt;            &lt;br /&gt;            &lt;span style="color: blue"&gt;try&lt;br /&gt;            &lt;/span&gt;{&lt;br /&gt;                connection = &lt;span style="color: blue"&gt;new &lt;/span&gt;System.Data.SqlClient.&lt;span style="color: #2b91af"&gt;SqlConnection&lt;/span&gt;(connectionString);&lt;br /&gt;                connection.Open();&lt;br /&gt;&lt;br /&gt;                System.Data.SqlClient.&lt;span style="color: #2b91af"&gt;SqlCommand &lt;/span&gt;command = &lt;span style="color: blue"&gt;new &lt;/span&gt;System.Data.SqlClient.&lt;span style="color: #2b91af"&gt;SqlCommand&lt;/span&gt;(storedProcName, connection);&lt;br /&gt;                command.CommandType = &lt;span style="color: #2b91af"&gt;CommandType&lt;/span&gt;.StoredProcedure;&lt;br /&gt;&lt;br /&gt;                command.Parameters.Add(&lt;span style="color: blue"&gt;new &lt;/span&gt;System.Data.SqlClient.&lt;span style="color: #2b91af"&gt;SqlParameter&lt;/span&gt;(&lt;span style="color: #a31515"&gt;&amp;quot;@SiteId&amp;quot;&lt;/span&gt;, site.ID.ToString()));&lt;br /&gt;&lt;br /&gt;                reader = command.ExecuteReader();&lt;br /&gt;&lt;br /&gt;                dataTable = &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;DataTable&lt;/span&gt;();&lt;br /&gt;                dataTable.Load(reader);&lt;br /&gt;&lt;br /&gt;            }&lt;br /&gt;            &lt;span style="color: blue"&gt;finally&lt;br /&gt;            &lt;/span&gt;{&lt;br /&gt;                &lt;span style="color: blue"&gt;if &lt;/span&gt;(reader != &lt;span style="color: blue"&gt;null&lt;/span&gt;)&lt;br /&gt;                    reader.Close();&lt;br /&gt;                &lt;span style="color: blue"&gt;if &lt;/span&gt;(connection != &lt;span style="color: blue"&gt;null&lt;/span&gt;)&lt;br /&gt;                    connection.Close();&lt;br /&gt;            }&lt;br /&gt;            &lt;span style="color: blue"&gt;return &lt;/span&gt;dataTable;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: blue"&gt;private static &lt;/span&gt;&lt;span style="color: #2b91af"&gt;DataTable &lt;/span&gt;GetListSizes(&lt;span style="color: #2b91af"&gt;SPSite &lt;/span&gt;site)&lt;br /&gt;        {&lt;br /&gt;&lt;br /&gt;            &lt;span style="color: blue"&gt;string &lt;/span&gt;connectionString = site.WebApplication.ContentDatabases[site.ContentDatabase.Id].DatabaseConnectionString;&lt;span style="color: green"&gt;&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: blue"&gt;string &lt;/span&gt;storedProcName = &lt;span style="color: #a31515"&gt;&amp;quot;proc_GetListSizes&amp;quot;&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;            System.Data.SqlClient.&lt;span style="color: #2b91af"&gt;SqlConnection &lt;/span&gt;connection = &lt;span style="color: blue"&gt;null&lt;/span&gt;;&lt;br /&gt;            System.Data.SqlClient.&lt;span style="color: #2b91af"&gt;SqlDataReader &lt;/span&gt;reader = &lt;span style="color: blue"&gt;null&lt;/span&gt;;&lt;br /&gt;            &lt;span style="color: #2b91af"&gt;DataTable &lt;/span&gt;dataTable = &lt;span style="color: blue"&gt;null&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;            &lt;span style="color: blue"&gt;try&lt;br /&gt;            &lt;/span&gt;{&lt;br /&gt;                connection = &lt;span style="color: blue"&gt;new &lt;/span&gt;System.Data.SqlClient.&lt;span style="color: #2b91af"&gt;SqlConnection&lt;/span&gt;(connectionString);&lt;br /&gt;                connection.Open();&lt;br /&gt;&lt;br /&gt;                System.Data.SqlClient.&lt;span style="color: #2b91af"&gt;SqlCommand &lt;/span&gt;command = &lt;span style="color: blue"&gt;new &lt;/span&gt;System.Data.SqlClient.&lt;span style="color: #2b91af"&gt;SqlCommand&lt;/span&gt;(storedProcName, connection);&lt;br /&gt;                command.CommandType = &lt;span style="color: #2b91af"&gt;CommandType&lt;/span&gt;.StoredProcedure;&lt;br /&gt;&lt;br /&gt;                command.Parameters.Add(&lt;span style="color: blue"&gt;new &lt;/span&gt;System.Data.SqlClient.&lt;span style="color: #2b91af"&gt;SqlParameter&lt;/span&gt;(&lt;span style="color: #a31515"&gt;&amp;quot;@SiteId&amp;quot;&lt;/span&gt;, site.ID.ToString()));&lt;br /&gt;&lt;br /&gt;                reader = command.ExecuteReader();&lt;br /&gt;&lt;br /&gt;                dataTable = &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;DataTable&lt;/span&gt;();&lt;br /&gt;                dataTable.Load(reader);&lt;br /&gt;               &lt;br /&gt;            }&lt;br /&gt;            &lt;span style="color: blue"&gt;finally&lt;br /&gt;            &lt;/span&gt;{&lt;br /&gt;                &lt;span style="color: blue"&gt;if &lt;/span&gt;(reader != &lt;span style="color: blue"&gt;null&lt;/span&gt;)&lt;br /&gt;                    reader.Close();&lt;br /&gt;                &lt;span style="color: blue"&gt;if &lt;/span&gt;(connection != &lt;span style="color: blue"&gt;null&lt;/span&gt;)&lt;br /&gt;                    connection.Close();&lt;br /&gt;            }&lt;br /&gt;            &lt;span style="color: blue"&gt;return &lt;/span&gt;dataTable;&lt;br /&gt;        }&lt;/pre&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:8fba7dea-982f-4343-aaf4-7d68357a792a" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/MOSS+2007" rel="tag"&gt;MOSS 2007&lt;/a&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4488134356468314016-4642772664447724369?l=rajeshagadi.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MyfindingsinMicrosoftworld/~4/ezIvuY-9_n8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rajeshagadi.blogspot.com/feeds/4642772664447724369/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4488134356468314016&amp;postID=4642772664447724369" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4488134356468314016/posts/default/4642772664447724369?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4488134356468314016/posts/default/4642772664447724369?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MyfindingsinMicrosoftworld/~3/ezIvuY-9_n8/how-to-find-sharepoint-list-and.html" title="How to find SharePoint List and Libraries true Size?" /><author><name>Rajesh Agadi</name><uri>http://www.blogger.com/profile/17908384970712474388</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://3.bp.blogspot.com/__-HvNNPF_6s/SuzadWw3wDI/AAAAAAAAEHw/UNJGp_Zugxc/S220/ProfilePicture.JPG" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh4.ggpht.com/__-HvNNPF_6s/TZvMocTjQwI/AAAAAAAAEdk/SDdS81fwB-4/s72-c/image_thumb2.png?imgmax=800" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://rajeshagadi.blogspot.com/2011/04/how-to-find-sharepoint-list-and.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUAAQ3o_fCp7ImA9WhZREkU.&quot;"><id>tag:blogger.com,1999:blog-4488134356468314016.post-395879911393952807</id><published>2011-03-25T09:27:00.000-07:00</published><updated>2011-04-08T11:35:42.444-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-08T11:35:42.444-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="MOSS 2007" /><title>Moving Large MOSS 2007 Sites and Content</title><content type="html">&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;[Note : This post is part of&amp;#160; my main blog on “&lt;a href="http://rajeshagadi.blogspot.com/2011/03/sharepoint-2010-migration.html"&gt;SharePoint 2010 Migration&lt;/a&gt;”]&lt;/p&gt;  &lt;h4&gt;What is Moving Large Sites?&lt;/h4&gt;  &lt;ul&gt;   &lt;li&gt;If your Site Collection is over 200GB and hence the underplaying dedicated content database should be over 200GB exceeding the Microsoft recommended Max size for Content Database. &lt;/li&gt; &lt;/ul&gt;  &lt;ul&gt;   &lt;li&gt;The Content and Site segregation effort is to move out such data to separate Site Collections and in to a separate content database or an existing smaller database if you prefer, there by reducing the over all size of your larger content database. &lt;/li&gt; &lt;/ul&gt;  &lt;ul&gt;   &lt;li&gt;The your site collection could have several Lists and Libraries with over 1000 items and over 2000 items per list or library and they might be continuing to grow. &lt;/li&gt; &lt;/ul&gt;  &lt;ul&gt;   &lt;li&gt;The site collection may also has several Document libraries that are over several GB in sizes and may or may not fall under the above said categories of over 100o items. &lt;/li&gt; &lt;/ul&gt;  &lt;ul&gt;   &lt;li&gt;You will need to analyze to understand where things are growing.&amp;#160; I will cover the steps for this in the Analysis section below. &lt;/li&gt; &lt;/ul&gt;  &lt;ul&gt;   &lt;li&gt;Hence your design for moving such content requires a very flexible approach to pick and choose each given list, library and may be an entire site (SPWeb) to be moved to given new site collection or an existing site collection. &lt;/li&gt; &lt;/ul&gt;  &lt;ul&gt;   &lt;li&gt;I call this moving selective content to separate sites as “Segregation”. &lt;/li&gt; &lt;/ul&gt;  &lt;h4&gt;Design Considerations&lt;/h4&gt;  &lt;ul&gt;   &lt;li&gt;You want to ensure that the segregated content in the new site collection carries all content, date and time stamps, metadata, pages and applicable settings, security information. &lt;/li&gt;    &lt;li&gt;You want to your segregation approach to be able to handle each given scenario such as move a site, move a list or library. &lt;/li&gt; &lt;/ul&gt;  &lt;h4&gt;Available tools and options&lt;/h4&gt;  &lt;p&gt;MOSS 2007 has following two options when it comes to moving/copying content:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Content Migration APIs (PRIME): More granular support (Up to item level), full fidelity. &lt;/li&gt;    &lt;li&gt;STSADM export/import operations: Uses the above API but less granular (Web Level Only), less fidelity. &lt;/li&gt;    &lt;li&gt;Content Deployment UI interface via the Central Admin interface, does not apply &lt;a href="http://rajeshagadi.blogspot.com/2011/03/implementing-ssl-certificate-for-iis.html"&gt;here&lt;/a&gt; as it is meant for deploying to a target site. &lt;/li&gt; &lt;/ul&gt;  &lt;h4&gt;Design Approach&lt;/h4&gt;  &lt;ul&gt;   &lt;li&gt;Based on the need to support the individual items consider implementing a data file so that you can feed the data file to your process. &lt;/li&gt;    &lt;li&gt;The configuration data file should mention a give list , library or a site as Source Object to be moved. &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;For each such Source Object, a Target should be mentioned. &lt;/p&gt;      &lt;ul&gt;       &lt;li&gt;         &lt;p&gt;The target can be a&amp;#160; new or an existing site collection, &lt;/p&gt;       &lt;/li&gt;        &lt;li&gt;         &lt;p&gt;For existing site collection, the location within the site collection as where to be moved.&lt;/p&gt;       &lt;/li&gt;        &lt;li&gt;         &lt;p&gt;For a new site collection , the name, URL, type of site template will need to be determined.&lt;/p&gt;       &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;For entire segregation process a default set of parameters should be motioned such as minimum version to be migrated such as last 10 versions. And Only on demand this parameter should able to be overridden for any given Source Object to be migrated.&lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;The segregation export and import should support entire set of metadata, version history, file status as is (if checked out if possible) , user permissions configuration.&lt;/p&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;The segregation should also support consistent, as-is migration of data from source to target.&lt;/p&gt;  &lt;h4&gt;Design Constraints and Decisions&lt;/h4&gt;  &lt;h5&gt;Implementation Approach:&lt;/h5&gt;  &lt;ul&gt;   &lt;li&gt;For the purpose of providing flexible model, I choose Content Migration API.      &lt;ul&gt;       &lt;li&gt;Following are some good references:          &lt;ul&gt;           &lt;li&gt;&lt;a title="http://www.sharepointnutsandbolts.com/2007/10/stsadm-export-content-deployment.html" href="http://www.sharepointnutsandbolts.com/2007/10/stsadm-export-content-deployment.html"&gt;http://www.sharepointnutsandbolts.com/2007/10/stsadm-export-content-deployment.html&lt;/a&gt; &lt;/li&gt;            &lt;li&gt;&lt;a title="http://blogs.technet.com/b/stefan_gossner/archive/2007/08/30/deep-dive-into-the-sharepoint-content-deployment-and-migration-api-part-1.aspx" href="http://blogs.technet.com/b/stefan_gossner/archive/2007/08/30/deep-dive-into-the-sharepoint-content-deployment-and-migration-api-part-1.aspx"&gt;http://blogs.technet.com/b/stefan_gossner/archive/2007/08/30/deep-dive-into-the-sharepoint-content-deployment-and-migration-api-part-1.aspx&lt;/a&gt; &lt;/li&gt;            &lt;li&gt;&lt;a href="http://spdeploymentwizard.codeplex.com/"&gt;http://spdeploymentwizard.codeplex.com/&lt;/a&gt; &lt;/li&gt;         &lt;/ul&gt;       &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h5&gt;&lt;a href="http://rajeshagadi.blogspot.com/2011/04/site-collection-creation-and-re.html"&gt;Site Collection Creation and re-parenting&lt;/a&gt; see me other blog.&lt;/h5&gt;  &lt;h5&gt;&lt;a href="http://rajeshagadi.blogspot.com/2011/04/how-to-programmatically-lock-sharepoint.html"&gt;Locking the Exporting Site Collection&lt;/a&gt; see my other blog.&lt;/h5&gt;  &lt;h5&gt;&lt;a href="http://rajeshagadi.blogspot.com/2011/04/sharepoint-moss-2007-export-and-import.html"&gt;Export and Import API call specifics&lt;/a&gt; see my other blog.&lt;/h5&gt;  &lt;h5&gt;&lt;/h5&gt;  &lt;h5&gt;&lt;a href="http://rajeshagadi.blogspot.com/2011/04/drawbacks-of-current-list-export-and.html"&gt;Drawbacks of current List Export and Import Content Migration APIs&lt;/a&gt; see my other blog.&lt;/h5&gt;  &lt;h5&gt;&lt;a href="http://rajeshagadi.blogspot.com/2011/04/how-to-programmatically-copy-web-level.html"&gt;Hot to programmatically copy Web Level, List level and List Item Level Security Information&lt;/a&gt; see my other blog.&lt;/h5&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:8cfefd24-d151-4312-aaea-007f60648fb4" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Moving%2fCopying+Sharepoint+Content" rel="tag"&gt;Moving/Copying Sharepoint Content&lt;/a&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4488134356468314016-395879911393952807?l=rajeshagadi.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MyfindingsinMicrosoftworld/~4/NKwq-JFtF9s" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rajeshagadi.blogspot.com/feeds/395879911393952807/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4488134356468314016&amp;postID=395879911393952807" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4488134356468314016/posts/default/395879911393952807?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4488134356468314016/posts/default/395879911393952807?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MyfindingsinMicrosoftworld/~3/NKwq-JFtF9s/segregating-large-moss-2007-sites.html" title="Moving Large MOSS 2007 Sites and Content" /><author><name>Rajesh Agadi</name><uri>http://www.blogger.com/profile/17908384970712474388</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://3.bp.blogspot.com/__-HvNNPF_6s/SuzadWw3wDI/AAAAAAAAEHw/UNJGp_Zugxc/S220/ProfilePicture.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://rajeshagadi.blogspot.com/2011/03/segregating-large-moss-2007-sites.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE4DR3ozfSp7ImA9WhZREkU.&quot;"><id>tag:blogger.com,1999:blog-4488134356468314016.post-5976554413389457990</id><published>2011-03-24T15:37:00.000-07:00</published><updated>2011-04-08T11:22:56.485-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-08T11:22:56.485-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SPS 2010" /><category scheme="http://www.blogger.com/atom/ns#" term="Architecture" /><category scheme="http://www.blogger.com/atom/ns#" term="Guidence" /><category scheme="http://www.blogger.com/atom/ns#" term="Developer" /><category scheme="http://www.blogger.com/atom/ns#" term="MOSS 2007" /><title>SharePoint 2010 Migration</title><content type="html">&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h5&gt;What am I blogging about?&lt;/h5&gt;  &lt;p&gt;Back in 2007 I did the MOSS 2007 migration with great success, that this year I am back to perform SharePoint 2010 migration, with several Web Applications worth TBs of data with several customizations. I want to use this blog as main page to start capturing major steps and tit-bits of&amp;#160; my findings.&amp;#160; I will try to capture the details in an order so that you can use it as a guidance for your migration. &lt;/p&gt;  &lt;h5&gt;Disclaimer&lt;/h5&gt;  &lt;p&gt;Whatever I can post here are general information relating to the topic and are provided as general motive of sharing with the community.&lt;/p&gt;  &lt;h3&gt;Steps in the order&lt;/h3&gt;  &lt;p&gt;Blow are major steps as I approach and for each I will be including sub activities and detailed blog for each such topic.&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Why to migrate to SPS 2010?      &lt;ul&gt;       &lt;li&gt;Among other product significant improvements, &lt;a href="http://support.microsoft.com/lifecycle/search/default.aspx?sort=PN&amp;amp;alpha=SharePoint+Server+2007&amp;amp;Filter=FilterNO"&gt;MOSS 2007 Mainstream support to end soon 4/10/2012.&lt;/a&gt; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Set up your development environments.      &lt;ul&gt;       &lt;li&gt;If you have very simple sites with no customizations, or if you already have your development/test environment then you are covered. &lt;/li&gt;        &lt;li&gt;Otherwise your step step should be getting your development environments setup for both MOSS 2007 and SPS 2010 platforms. &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Simulate your web application(s).      &lt;ul&gt;       &lt;li&gt;If&amp;#160; your web application are running on SSL here is how to implement SSL in development, &lt;a href="http://rajeshagadi.blogspot.com/2011/03/implementing-ssl-certificate-for-iis.html"&gt;see my other blog here&lt;/a&gt;. &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Perform Analysis      &lt;ul&gt;       &lt;li&gt;You want to know your current environment, your web applications/portals/sites, sizes, databases, customizations. &lt;/li&gt;        &lt;li&gt;Get sense of what if you were to migrate by running the stsadm preupgradechecker&lt;/a&gt;, SPS 2010 run &lt;a href="http://technet.microsoft.com/en-us/library/ff607941.aspx"&gt;Test-SPContentDatabase&lt;/a&gt; power shell command. &lt;/li&gt;        &lt;li&gt;&lt;a href="http://rajeshagadi.blogspot.com/2011/03/what-is-pre-upgrade-checker-report-and.html"&gt;What is pre Upgrade Checker report and what it is not, see my other blog&lt;/a&gt;. &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Preparation for Migration      &lt;ul&gt;       &lt;li&gt;If your content databases are larger than 200GB or approaching this size, you may want to think about breaking up Large Sites and or moving site collections to other or new content databases. (Here is my new post on &lt;a href="http://rajeshagadi.blogspot.com/2011/03/segregating-large-moss-2007-sites.html"&gt;Moving Large MOSS 2007 Sites and Content&lt;/a&gt; ) &lt;/li&gt;        &lt;li&gt;&lt;a href="http://rajeshagadi.blogspot.com/2011/04/how-to-find-sharepoint-list-and.html"&gt;How to get your Web Size, list and library size?&lt;/a&gt; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;&lt;em&gt;Migration Design (Coming soon…)&lt;/em&gt; &lt;/li&gt;    &lt;li&gt;&lt;em&gt;Migration Implementation(Coming soon…)&lt;/em&gt; &lt;/li&gt;    &lt;li&gt;&lt;em&gt;Migration Testing(Coming later…)&lt;/em&gt; &lt;/li&gt;    &lt;li&gt;&lt;em&gt;Deployment(Coming later…)&lt;/em&gt; &lt;/li&gt; &lt;/ol&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:a7872b21-b022-4206-ad5a-b3292c392081" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/SharePoint+2010+Migration" rel="tag"&gt;SharePoint 2010 Migration&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Sharepoint+2010+Upgrade" rel="tag"&gt;Sharepoint 2010 Upgrade&lt;/a&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4488134356468314016-5976554413389457990?l=rajeshagadi.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MyfindingsinMicrosoftworld/~4/o9Q21jrSeoQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rajeshagadi.blogspot.com/feeds/5976554413389457990/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4488134356468314016&amp;postID=5976554413389457990" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4488134356468314016/posts/default/5976554413389457990?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4488134356468314016/posts/default/5976554413389457990?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MyfindingsinMicrosoftworld/~3/o9Q21jrSeoQ/sharepoint-2010-migration.html" title="SharePoint 2010 Migration" /><author><name>Rajesh Agadi</name><uri>http://www.blogger.com/profile/17908384970712474388</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://3.bp.blogspot.com/__-HvNNPF_6s/SuzadWw3wDI/AAAAAAAAEHw/UNJGp_Zugxc/S220/ProfilePicture.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://rajeshagadi.blogspot.com/2011/03/sharepoint-2010-migration.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEEHRH4yfyp7ImA9WhZSEE0.&quot;"><id>tag:blogger.com,1999:blog-4488134356468314016.post-562648405779613607</id><published>2011-03-24T14:37:00.000-07:00</published><updated>2011-03-24T14:37:15.097-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-03-24T14:37:15.097-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Developer" /><category scheme="http://www.blogger.com/atom/ns#" term="MOSS 2007" /><title>What is pre Upgrade Checker report and what it is not</title><content type="html">&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;[This post is part of my main blog post on SharePoint 2010.]&lt;/p&gt;&lt;p&gt;The Pre Upgrade report captures three different levels of information: &lt;/p&gt;&lt;ul&gt;&lt;li&gt;Farm level information      &lt;ul&gt;&lt;li&gt;OS Level &lt;/li&gt;
&lt;li&gt;SharePoint Farm topology &lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Application level configurations &lt;/li&gt;
&lt;li&gt;Content level State information &lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;The context of Pre Upgrade report run is under the context of &lt;u&gt;what if we were to perform an In place upgrade &lt;/u&gt;in the same farm MOSS 2007.&amp;#160; &lt;/p&gt;&lt;p&gt;If your MOSS 2007 farm OS is Win 2003 or 32bit,&amp;#160; you will see &lt;em&gt;OSPrerequiste&lt;/em&gt; is failed. Since you are not going to be using the same farm and will not be doing the in-place upgrade this is attribute status is not applicable.&lt;/p&gt;&lt;p&gt;&lt;em&gt;More to come…&lt;/em&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4488134356468314016-562648405779613607?l=rajeshagadi.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MyfindingsinMicrosoftworld/~4/0dTDcBtQT7g" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rajeshagadi.blogspot.com/feeds/562648405779613607/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4488134356468314016&amp;postID=562648405779613607" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4488134356468314016/posts/default/562648405779613607?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4488134356468314016/posts/default/562648405779613607?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MyfindingsinMicrosoftworld/~3/0dTDcBtQT7g/what-is-pre-upgrade-checker-report-and.html" title="What is pre Upgrade Checker report and what it is not" /><author><name>Rajesh Agadi</name><uri>http://www.blogger.com/profile/17908384970712474388</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://3.bp.blogspot.com/__-HvNNPF_6s/SuzadWw3wDI/AAAAAAAAEHw/UNJGp_Zugxc/S220/ProfilePicture.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://rajeshagadi.blogspot.com/2011/03/what-is-pre-upgrade-checker-report-and.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0QHQnc4fip7ImA9WhZSEE0.&quot;"><id>tag:blogger.com,1999:blog-4488134356468314016.post-388855279230963829</id><published>2011-03-24T13:13:00.001-07:00</published><updated>2011-03-24T14:15:33.936-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-03-24T14:15:33.936-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SPS 2010" /><category scheme="http://www.blogger.com/atom/ns#" term="Developer" /><title>Developing Sandboxed Solution in SPS 2010 Tips:</title><content type="html">&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Here I will be collecting all the relevant information that would help us deal with development and deployment of&amp;#160; Sandboxed Solution for SharePoint 2010.&lt;/p&gt;&lt;h5&gt;Design&lt;/h5&gt;&lt;ul&gt;&lt;li&gt;Ensure the API/Class you intent use are available in Sandboxed solutions supported framework: Check the specific API/Class in MSDN. Note that MSDN has specific flag to denote if the specific API is available in Sandboxed solution. &lt;/li&gt;
&lt;/ul&gt;&lt;blockquote&gt;&lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;a href="http://lh3.ggpht.com/__-HvNNPF_6s/TYul4E6_KUI/AAAAAAAAEdY/Dlm8-mrTGQM/s1600-h/image3.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/__-HvNNPF_6s/TYul4Unq1uI/AAAAAAAAEdc/x9g5AL3_DW4/image_thumb1.png?imgmax=800" width="354" height="59" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;h5&gt;Development&lt;/h5&gt;&lt;ul&gt;&lt;li&gt;In order to ensure proper development copy the SharePoint dll locally only during development, later take it out to deploy…. &lt;/li&gt;
&lt;/ul&gt;&lt;h5&gt;Deployment&lt;/h5&gt;&lt;ul&gt;&lt;li&gt;&lt;em&gt;More to come…&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4488134356468314016-388855279230963829?l=rajeshagadi.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MyfindingsinMicrosoftworld/~4/Osujejtq-go" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rajeshagadi.blogspot.com/feeds/388855279230963829/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4488134356468314016&amp;postID=388855279230963829" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4488134356468314016/posts/default/388855279230963829?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4488134356468314016/posts/default/388855279230963829?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MyfindingsinMicrosoftworld/~3/Osujejtq-go/developing-sandboxed-solution-in-sps.html" title="Developing Sandboxed Solution in SPS 2010 Tips:" /><author><name>Rajesh Agadi</name><uri>http://www.blogger.com/profile/17908384970712474388</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://3.bp.blogspot.com/__-HvNNPF_6s/SuzadWw3wDI/AAAAAAAAEHw/UNJGp_Zugxc/S220/ProfilePicture.JPG" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh3.ggpht.com/__-HvNNPF_6s/TYul4Unq1uI/AAAAAAAAEdc/x9g5AL3_DW4/s72-c/image_thumb1.png?imgmax=800" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://rajeshagadi.blogspot.com/2011/03/developing-sandboxed-solution-in-sps.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkEFRH89eSp7ImA9WhZTGE4.&quot;"><id>tag:blogger.com,1999:blog-4488134356468314016.post-535015269316620080</id><published>2011-03-22T14:47:00.001-07:00</published><updated>2011-03-22T14:50:15.161-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-03-22T14:50:15.161-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Windows 2003" /><category scheme="http://www.blogger.com/atom/ns#" term="Developer" /><title>Implementing SSL Certificate for IIS Sites in Windows 2003 Server for Development Purpose</title><content type="html">&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;h5&gt;Scenario&lt;/h5&gt;&lt;p&gt;You have Windows 2003 server (x86 or x64) with IIS 6.0, this is your development server, you have to test several of your web sites with SSL and all of these web sites happen to be on same domain name such&amp;#160; as site1.mydomain.com, site2.mydomain.com, site3.mydomain.com …..&lt;/p&gt;&lt;h5&gt;Disclaimer&lt;/h5&gt;&lt;p&gt;I am not a Security/Certificate expert, but in this below blog I want to share my steps that have worked very well for the purpose of development to implement SSL certificates using SelfCert tool.&lt;/p&gt;&lt;h5&gt;What can you do?&lt;/h5&gt;&lt;p&gt;Instead of assigning individual certificates you can choose to implement wildcard certificates. such as getting certificate created for *.mydomain.com.&lt;/p&gt;&lt;p&gt;You can use SelfCert utility which is part of &lt;a href="http://download.microsoft.com/download/7/8/2/782c25d3-0f90-4619-ba36-f0d8f351d398/iis60rkt.exe"&gt;IIS 6.0&amp;#160; resource Kit&lt;/a&gt; tools. &lt;/p&gt;&lt;p&gt;You can use SSL Diagnostic utility which is part of IIS&amp;#160; 6.0 resource Kit to finally validate the certificate assignments to your site.&lt;/p&gt;&lt;h5&gt;How to implement wildcard Self Certificate in Windows 2003 server with IIS 6.0?&lt;/h5&gt;&lt;h6&gt;High level steps:&lt;/h6&gt;&lt;ol&gt;&lt;li&gt;In IIS create all your web sites (Site1,site2,site3….) &lt;/li&gt;
&lt;li&gt;Use Selfssl to create wildcard certificate and assign the certificate to given existing web site on your IIS. &lt;/li&gt;
&lt;li&gt;Then export the certificate along with private key to .pfx file. &lt;/li&gt;
&lt;li&gt;From your local machine certificate store, import the certificate in to Trusted Root Certificate Authority. &lt;/li&gt;
&lt;li&gt;From IIS, for each of your Site, assign your newly imported wildcard certificate. &lt;/li&gt;
&lt;li&gt;From command prompt assign securebindings for each of your site. &lt;/li&gt;
&lt;li&gt;From your client Browser, add your wildcard domain name as trusted site. &lt;/li&gt;
&lt;/ol&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;h5&gt;Step 1: Create IIS Sites&lt;/h5&gt;&lt;p&gt;Create your IIS Sites from the IIS first. You don’t have to assign host headers at this time. We will cover the host headers later.&lt;/p&gt;&lt;h5&gt;Step 2: Create Certificate&lt;/h5&gt;&lt;p&gt;First download and install the IIS Resource Kit.&amp;#160; The utilities you choose will be installed at &amp;lt;SystemDrive&amp;gt;:\Program files[(x86)]\IIS Resources\&lt;/p&gt;&lt;p&gt;As first step lets first create a wildcard certificate for your domain name “*.mydomain.com” for example.&amp;#160; &lt;/p&gt;&lt;p&gt;We will use the selfssl tool to create a wildcard certificate against any one of the IIS site. (We will apply the certificate to all sites later). Go to command prompt and navigate to the folder where the Selfssl utility is stored. You can try SelfSsl /? to see all the options available.&amp;#160; Follow below syntax:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;font face="Courier New"&gt;&amp;lt;SystemDrive&amp;gt;:\Program files[(x86)]\IIS Resources\&amp;gt;&lt;strong&gt;selfssl.exe /N:CN=*.&amp;lt;mydomain.com&amp;gt; /S:&amp;lt;IISSiteID&amp;gt;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;p&gt;Where substitute &amp;lt;mydomain.com&amp;gt; with your common domain&amp;#160; name, and for &amp;lt;IISSiteID&amp;gt; substitute IIS Site ID as displayed in the IIS manager Identifier column. (Default site is always 1, user created sites will have large number)&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;a href="http://lh4.ggpht.com/__-HvNNPF_6s/TYkYrQ2J37I/AAAAAAAAEbY/D4d0RXaYK48/s1600-h/image4.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/__-HvNNPF_6s/TYkYsDdWoqI/AAAAAAAAEbc/EuJfCyCFJ9w/image_thumb1.png?imgmax=800" width="600" height="118" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Above step creates an wildcard&amp;#160; certificate against your given site and stores the certificate under the Local Computer &amp;gt;Personal store.&lt;/p&gt;&lt;p&gt;Lets check this out:&lt;/p&gt;&lt;p&gt;From the command prompt run MMC. Add snap-in for Certificates, and choose My Computer. &lt;/p&gt;&lt;p&gt;&lt;a href="http://lh3.ggpht.com/__-HvNNPF_6s/TYkYsWkg2lI/AAAAAAAAEbg/bSI_3OPtwIY/s1600-h/image8.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/__-HvNNPF_6s/TYkYs45DPMI/AAAAAAAAEbk/b9vdvJqPx00/image_thumb3.png?imgmax=800" width="361" height="316" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;a href="http://lh5.ggpht.com/__-HvNNPF_6s/TYkYtHFnHDI/AAAAAAAAEbo/ltFnDmajXxM/s1600-h/image11.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/__-HvNNPF_6s/TYkYtX5bfDI/AAAAAAAAEbs/pvPNNDh1ssU/image_thumb4.png?imgmax=800" width="244" height="125" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Now navigate to the Console Root&amp;gt;Certificates (Local Computer)&amp;gt;Personal&amp;gt;Certificates. Here you should find your newly created wild card certificate along with the Machine Certificate and any other personal certificates.&lt;/p&gt;&lt;p&gt;&lt;a href="http://lh6.ggpht.com/__-HvNNPF_6s/TYkYt5dlSvI/AAAAAAAAEbw/ASBwWh3rDo4/s1600-h/image14.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/__-HvNNPF_6s/TYkYuL4hn4I/AAAAAAAAEb0/0obeyqyem4A/image_thumb5.png?imgmax=800" width="244" height="83" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://lh6.ggpht.com/__-HvNNPF_6s/TYkYuQ5bKrI/AAAAAAAAEb4/xy4qR3yHVhM/s1600-h/image18.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/__-HvNNPF_6s/TYkYugDjbhI/AAAAAAAAEb8/csqm8JvAI_s/image_thumb7.png?imgmax=800" width="656" height="72" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;h5&gt;Step 3: Export the certificate&lt;/h5&gt;&lt;p&gt;Now lets export this certificate&amp;#160; out along with the private key, so that in the next step we can import in to the Trusted Root Certificate.&lt;/p&gt;&lt;p&gt;You can export this certificate from two different spots. Either from the Certificate management console that we opened in the above step to verify or from the IIS manager over the IIS site where we had created the wildcard certificate against.&lt;/p&gt;&lt;p&gt;From either spot you can launch the Certificate Export wizard.&lt;/p&gt;&lt;p&gt;From Certificate management console, you can choose your wild card certificate, right click, All Tasks, Export.&lt;/p&gt;&lt;p&gt;&lt;a href="http://lh6.ggpht.com/__-HvNNPF_6s/TYkYu181VdI/AAAAAAAAEcA/ADvcFgF-hWQ/s1600-h/image24.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/__-HvNNPF_6s/TYkYvYf55nI/AAAAAAAAEcE/FQ0WZoFy9_A/image_thumb9.png?imgmax=800" width="177" height="167" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Or from IIS, right click over your site that you have used for selfcert command, Directory Security,&amp;#160; Click on Server Certificate and choose “Export the current certificate to a .pfx file. &lt;/p&gt;&lt;p&gt;&lt;a href="http://lh4.ggpht.com/__-HvNNPF_6s/TYkYvqqEDBI/AAAAAAAAEcI/vDCogDmDrV8/s1600-h/image26.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/__-HvNNPF_6s/TYkYvxN_B7I/AAAAAAAAEcM/yf9fSngQX-w/image_thumb11.png?imgmax=800" width="742" height="400" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Choose a file name and local folder where you want to exported certificate to be saved.&amp;#160; In the next step, provide password to protect the Certificate as you are also exporting the Private Key.&lt;/p&gt;&lt;p&gt;&lt;a href="http://lh5.ggpht.com/__-HvNNPF_6s/TYkYwCKr0hI/AAAAAAAAEcQ/9IxLcDDZuWs/s1600-h/image27%5B2%5D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/__-HvNNPF_6s/TYkYwiixQwI/AAAAAAAAEcU/UM0AMVNbSIM/image27_thumb%5B1%5D.png?imgmax=800" width="398" height="160" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;h5&gt;Step 4: Import certificate to Trusted Root Certificate Authority. &lt;/h5&gt;&lt;p&gt;Now switch back to the Certificates management console. Navigate to the node “Trusted Root Certification Authorities&amp;gt;Certificates”. &lt;/p&gt;&lt;h5&gt;&lt;a href="http://lh5.ggpht.com/__-HvNNPF_6s/TYkYw9xscZI/AAAAAAAAEcY/bFpnPtikkUw/s1600-h/image30%5B1%5D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/__-HvNNPF_6s/TYkYxFRxvcI/AAAAAAAAEcc/01-y9aPy3CM/image30_thumb.png?imgmax=800" width="660" height="214" /&gt;&lt;/a&gt;&lt;/h5&gt;&lt;p&gt;From the Certificates node, right click and choose to import certificate.&lt;/p&gt;&lt;p&gt;&lt;a href="http://lh3.ggpht.com/__-HvNNPF_6s/TYkYxd8cGnI/AAAAAAAAEcg/mdE02hON3p8/s1600-h/image%5B33%5D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/__-HvNNPF_6s/TYkYxp7j3WI/AAAAAAAAEck/5km0dgvF0xU/image_thumb%5B17%5D.png?imgmax=800" width="354" height="137" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Now choose the above saved certificate file to import, enter the password entered above to encrypt the certificate file.&lt;/p&gt;&lt;p&gt;Next choose to import the certificate as below.&lt;/p&gt;&lt;p&gt;&lt;a href="http://lh5.ggpht.com/__-HvNNPF_6s/TYkYyCNzPqI/AAAAAAAAEco/jUng2gFWjh4/s1600-h/image%5B8%5D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/__-HvNNPF_6s/TYkYyoDbzeI/AAAAAAAAEcs/jUXHvosM4wo/image_thumb%5B4%5D.png?imgmax=800" width="514" height="412" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Next confirm a successful import.&lt;/p&gt;&lt;p&gt;&lt;a href="http://lh6.ggpht.com/__-HvNNPF_6s/TYkYzMG8SfI/AAAAAAAAEcw/WyPesg5cHE8/s1600-h/image%5B13%5D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/__-HvNNPF_6s/TYkYzaOyc_I/AAAAAAAAEc0/pmpWNht9j1E/image_thumb%5B7%5D.png?imgmax=800" width="254" height="162" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;h5&gt;Step 5: Assign wildcard certificate from IIS &lt;/h5&gt;&lt;p&gt;Now switch to IIS MMC. For each of your IIS sites, assign the newly acquired selfcert generated certificate. Leave the SSL port as is and the default port as is. The sites may be in stopped state and that is fine at this stage, since all of the sites are using the same default port 80.&lt;/p&gt;&lt;h5&gt;Step 6: Assign securebindings. &lt;/h5&gt;&lt;p&gt;Prerequisite for this step is that you have already installed the IIS Administrative Scripts located as below:&amp;#160;&amp;#160; (If not install from your Control Panel&amp;gt;Add Remove Windows Components&amp;gt;Choose IIS to reinstall the AdminScripts &amp;gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://lh6.ggpht.com/__-HvNNPF_6s/TYkYzpdu7vI/AAAAAAAAEc4/ktN1yx4QMN0/s1600-h/image%5B16%5D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/__-HvNNPF_6s/TYkYz615ctI/AAAAAAAAEc8/AtBHUML3fVM/image_thumb%5B8%5D.png?imgmax=800" width="213" height="124" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Now go to IIS MMC, note Identifier for each of your Sites that will require the new certificates to be assigned.&lt;/p&gt;&lt;p&gt;Go to command prompt and change directory to the above highlighted AdminScripts folder.&lt;/p&gt;&lt;p&gt;Enter following command for each of the IIS sites that you want the certificate is assigned.&lt;/p&gt;&lt;p&gt;cscript.exe adsutil.vbs set /w3svc/&lt;i&gt;&amp;lt;site identifier&amp;gt;&lt;/i&gt;/SecureBindings &amp;quot;:443&lt;i&gt;:&amp;lt;host header&amp;gt;&lt;/i&gt;&amp;quot;&lt;/p&gt;&lt;p&gt;where &lt;i&gt;host header&lt;/i&gt; is the host header for the Web site, for example, site1.mydomain.com.&lt;/p&gt;&lt;p&gt;After above steps are completed, go back to IIS MMC and start each of your sites.&lt;/p&gt;&lt;h5&gt;Step 7: Add to Trusted Sites&lt;/h5&gt;&lt;p&gt;From your development server browser, add your wildcard domain name as trusted site. (*.mydomain.com)&lt;/p&gt;&lt;p&gt;&lt;a href="http://lh3.ggpht.com/__-HvNNPF_6s/TYkY0Ft9-NI/AAAAAAAAEdA/3v2MKZSJmhg/s1600-h/image%5B21%5D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/__-HvNNPF_6s/TYkY0bd2Q-I/AAAAAAAAEdE/atrry1pzpik/image_thumb%5B11%5D.png?imgmax=800" width="355" height="256" /&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt;&lt;ol&gt;&lt;!--EndFragment--&gt;&lt;/ol&gt;&lt;h4&gt;Validation&lt;/h4&gt;&lt;p&gt;From the installation of IIS Resource kit you will also get SSL Diagnostic tool installed. &lt;/p&gt;&lt;p&gt;&lt;a href="http://lh4.ggpht.com/__-HvNNPF_6s/TYkY01JT8tI/AAAAAAAAEdI/tas0KUxhkbk/s1600-h/image%5B25%5D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/__-HvNNPF_6s/TYkY1LzG4II/AAAAAAAAEdM/jDX6GstOeTY/image_thumb%5B13%5D.png?imgmax=800" width="550" height="147" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Run the SSL Diagnostics tool. The tool will check SSL certificate for each of the IIS sites and provide report as below.&lt;/p&gt;&lt;p&gt;&lt;a href="http://lh3.ggpht.com/__-HvNNPF_6s/TYkY1fBUaLI/AAAAAAAAEdQ/7tAaAErlg30/s1600-h/image%5B29%5D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/__-HvNNPF_6s/TYkY16PrHdI/AAAAAAAAEdU/r7MNeIqTIQg/image_thumb%5B15%5D.png?imgmax=800" width="495" height="282" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;In the above screen cap, I have masked the domain names I had used, but you should expect to see your respective wild card domain name.&lt;/p&gt;&lt;p&gt;Next browse to each of your IIS Sites from the Browse and you should be able to see your site without any certificate warning.&lt;/p&gt;&lt;p&gt;Hope these steps will simplify your SSL implementation for the purpose of development&lt;/p&gt;&lt;h5&gt;Things to consider beyond just SSL&lt;/h5&gt;&lt;ul&gt;&lt;li&gt;Simulate SSL per site in your development environment. &lt;/li&gt;
&lt;li&gt;Address your browse warning for mixed content if present. &lt;/li&gt;
&lt;li&gt;&lt;em&gt;Will update further if anything comes across my attention.&lt;/em&gt; &lt;/li&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4488134356468314016-535015269316620080?l=rajeshagadi.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MyfindingsinMicrosoftworld/~4/0bh8YJ55-NA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rajeshagadi.blogspot.com/feeds/535015269316620080/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4488134356468314016&amp;postID=535015269316620080" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4488134356468314016/posts/default/535015269316620080?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4488134356468314016/posts/default/535015269316620080?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MyfindingsinMicrosoftworld/~3/0bh8YJ55-NA/implementing-ssl-certificate-for-iis.html" title="Implementing SSL Certificate for IIS Sites in Windows 2003 Server for Development Purpose" /><author><name>Rajesh Agadi</name><uri>http://www.blogger.com/profile/17908384970712474388</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://3.bp.blogspot.com/__-HvNNPF_6s/SuzadWw3wDI/AAAAAAAAEHw/UNJGp_Zugxc/S220/ProfilePicture.JPG" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh4.ggpht.com/__-HvNNPF_6s/TYkYsDdWoqI/AAAAAAAAEbc/EuJfCyCFJ9w/s72-c/image_thumb1.png?imgmax=800" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://rajeshagadi.blogspot.com/2011/03/implementing-ssl-certificate-for-iis.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUIBRnk6fSp7ImA9WxFSFk8.&quot;"><id>tag:blogger.com,1999:blog-4488134356468314016.post-4015095374824597749</id><published>2010-04-18T13:44:00.001-07:00</published><updated>2010-04-18T13:45:57.715-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-04-18T13:45:57.715-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SPS 2010" /><category scheme="http://www.blogger.com/atom/ns#" term="Developer" /><title>Start and Stop Batch scripts for SPS 2010 Developer Workstation</title><content type="html">&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h5&gt;Overview&lt;/h5&gt;  &lt;p&gt;There is enough resources to setting up your Windows 7 Developer workstation for running SPS 2010. On an occasion we may not always run the SharePoint 2010 and the SQL Server on our Win 7 workstation or our lap tops all the time. Here I have been using Batch scripts to on demand Start and Stop quickly SPS 2010 and SQL Server services.&lt;/p&gt;  &lt;p&gt;Place the below script in a batch file and run as administrator to start or stop your&amp;#160; SharePoint and SQL Services. Not the order&amp;#160; or start and stop matters so pay attention.&lt;/p&gt;  &lt;p&gt;Make sure you set each of the services to start manually in your Services console so that its the script that controls the service activation.&lt;/p&gt;  &lt;p&gt;Below in both the scripts make sure to substitute for your &amp;lt;YourSQLServerInstance&amp;gt; name.&lt;/p&gt;  &lt;h5&gt;Start Script&lt;/h5&gt;  &lt;p&gt;net start &amp;lt;YourSQLServerInstance&amp;gt;   &lt;br /&gt;net start sptracev4    &lt;br /&gt;net start spadminv4    &lt;br /&gt;net start w3svc    &lt;br /&gt;net start iisadmin    &lt;br /&gt;net start sptimerv4    &lt;br /&gt;net start SPUserCodeV4    &lt;br /&gt;net start SPSearch4    &lt;br /&gt;net start OSearch14&lt;/p&gt;  &lt;h5&gt;Stop Script&lt;/h5&gt;  &lt;p&gt;net stop W3SVC   &lt;br /&gt;net stop IISADMIN     &lt;br /&gt;net stop SPSearch4     &lt;br /&gt;net stop OSearch14     &lt;br /&gt;net stop SPTimerV4    &lt;br /&gt;net stop SPUserCodeV4    &lt;br /&gt;net stop spadminv4    &lt;br /&gt;net stop sptracev4     &lt;br /&gt;net stop &amp;lt;YourSQLServerInstance&amp;gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Happy Sharepointing….&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4488134356468314016-4015095374824597749?l=rajeshagadi.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MyfindingsinMicrosoftworld/~4/texEanSknws" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rajeshagadi.blogspot.com/feeds/4015095374824597749/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4488134356468314016&amp;postID=4015095374824597749" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4488134356468314016/posts/default/4015095374824597749?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4488134356468314016/posts/default/4015095374824597749?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MyfindingsinMicrosoftworld/~3/texEanSknws/start-and-stop-batch-scripts-for-sps.html" title="Start and Stop Batch scripts for SPS 2010 Developer Workstation" /><author><name>Rajesh Agadi</name><uri>http://www.blogger.com/profile/17908384970712474388</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://3.bp.blogspot.com/__-HvNNPF_6s/SuzadWw3wDI/AAAAAAAAEHw/UNJGp_Zugxc/S220/ProfilePicture.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://rajeshagadi.blogspot.com/2010/04/start-and-stop-batch-scripts-for-sps.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkIGQHo4fCp7ImA9WxFSFUk.&quot;"><id>tag:blogger.com,1999:blog-4488134356468314016.post-2807084199507625636</id><published>2010-04-17T16:55:00.001-07:00</published><updated>2010-04-17T16:55:21.434-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-04-17T16:55:21.434-07:00</app:edited><title>Implementing Multiple Documents Approval Workflow in SharePoint 2007</title><content type="html">&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h4&gt;Overview&lt;/h4&gt;  &lt;p&gt;OOTB SharePoint 2007 has support for running workflows at an Item level but not as applying workflow at group of items. This will be supported in SharePoint 2010 with Documents Set.&lt;/p&gt;  &lt;p&gt;recently I had opportunity to design and implement one such workflow where approvals for multiple documents was required. Below I am sharing thoughts and approach to the architecture and design approach and various design element.&lt;/p&gt;  &lt;h5&gt;Workflow Architecture &lt;/h5&gt;  &lt;ul&gt;   &lt;li&gt;Below is the high level architecture of the Multiple Documents Approval Workflow implementation.&lt;/li&gt;    &lt;li&gt;I have discussed the logical architecture implementation approach.&lt;/li&gt;    &lt;li&gt;First lets review some of the common necessary workflow components.&lt;/li&gt; &lt;/ul&gt;  &lt;h6&gt;Necessary Workflow Components&lt;/h6&gt;  &lt;ol&gt;   &lt;ol&gt;&lt;/ol&gt;    &lt;li&gt;Generally complex document workflows may need to support&amp;#160; both serial and parallel approvals.&lt;/li&gt;    &lt;li&gt;Front end screen should support end user to interact with the workflow components.&lt;/li&gt;    &lt;li&gt;Behind the End User Screen, there will be SharePoint lists and libraries assets.&lt;/li&gt;    &lt;li&gt;These lists and library assets will facilitate capturing following data:&lt;/li&gt;    &lt;ol&gt;     &lt;li&gt;The Workflow Metadata-Forms Library&lt;/li&gt;      &lt;li&gt;The Workflow Tasks- Tasks List &lt;/li&gt;      &lt;li&gt;The Workflow History- Custom List&lt;/li&gt;      &lt;li&gt;The Approval documents- Document library.&lt;/li&gt;   &lt;/ol&gt;    &lt;li&gt;The custom workflow will be deployed to the Custom Workflow Library.&lt;/li&gt;    &lt;li&gt;End user will interact with the workflow with Submission and Approval forms.&lt;/li&gt; &lt;/ol&gt;  &lt;h6&gt;Key Design Concepts for the Workflow that would facilitate multiple documents approval.&lt;/h6&gt;  &lt;ol&gt;   &lt;li&gt;The key to the design is that a Workflow running on the Custom list will allow to capture the Business Specific metadata.&lt;/li&gt;    &lt;li&gt;The workflow running at this custom list will operate at the each approval item level.&lt;/li&gt;    &lt;li&gt;The workflow process should allow both Serial and Parallel Approval.&lt;/li&gt;    &lt;li&gt;The Workflow forms should allow for the End Users to upload multiple approval documents at each workflow level.&lt;/li&gt;    &lt;li&gt;This multiple document upload should then trigger a sequence of events by the workflow.&lt;/li&gt;    &lt;li&gt;These should be to generate a new unique workflow number for the workflow event.&lt;/li&gt;    &lt;li&gt;Then create a sub folder under the &amp;quot;Approval documents Library&amp;quot; with folder name as Approval&amp;#160; Workflow Number.&lt;/li&gt;    &lt;li&gt;Then upload all the user documents to this sub folder, check in the documents with minor version 0.1.&lt;/li&gt;    &lt;li&gt;Further for each approver review, each documents should be presented to the end user with document version and check in/check out status.&lt;/li&gt;    &lt;li&gt;For each document the reviewer should be able to check out and update and check in back the document with the check in comments.&lt;/li&gt;    &lt;li&gt;The checked in comments will be stored at the document library level.&lt;/li&gt;    &lt;li&gt;Each approval workflow level Approval/Revise/Reject comments will be maintained at the workflow level.&lt;/li&gt;    &lt;li&gt;After each check in check out a minor version should be incremented.&lt;/li&gt;    &lt;li&gt;If you have phases in the workflow say after each major phase a Major version to be incremented.&lt;/li&gt;    &lt;li&gt;After each user submission, necessary confirmation and next step notification emails will be generated for appropriate workflow participant. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/__-HvNNPF_6s/S8pKUeIPz_I/AAAAAAAAEY4/9dPIuvbE2xM/s1600-h/image%5B5%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/__-HvNNPF_6s/S8pKVbDTgFI/AAAAAAAAEY8/sm_kLx8wf0E/image_thumb%5B3%5D.png?imgmax=800" width="720" height="695" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Process Flow&lt;/li&gt;    &lt;ol&gt;     &lt;li&gt;Originator starts by clicking on the &amp;quot;Submit New for Approval&amp;quot; button from the &amp;quot;Workflow Management&amp;quot; section.&lt;/li&gt;      &lt;li&gt;System should confirm user intention to actually initiate a new workflow. (Yes/No)&lt;/li&gt;      &lt;li&gt;System to initiate a new workflow process (1).&lt;/li&gt;      &lt;li&gt;System to generate a new Workflow Number (2)       &lt;ol&gt;         &lt;li&gt;Sequential number or some code form such as code for Your Workflow&amp;#160; YW-2010-000001, YW-2010-000002, needs to be determined at implementation time.&lt;/li&gt;       &lt;/ol&gt;     &lt;/li&gt;      &lt;li&gt;System to create a new folder by the name of Workflow number.&lt;/li&gt;      &lt;li&gt;System to present end user with Submission form. (3)&lt;/li&gt;      &lt;li&gt;End user to enter workflow approval data and upload multiple approval documents. (4)&lt;/li&gt;      &lt;li&gt;Each uploaded documents will be actually uploaded under the above created subfolder by the workflow number under the Approval Documents library.&lt;/li&gt;      &lt;li&gt;End user to submit the workflow. (5)&lt;/li&gt;      &lt;li&gt;System to capture workflow meta data and update the Approval Workflow custom list. (2)&lt;/li&gt;      &lt;li&gt;System to generate appropriate notification emails.&lt;/li&gt;      &lt;li&gt;System to create new task for the next approver.&lt;/li&gt;      &lt;li&gt;Next approver to either open the received notification email, and click on a email link to respond to the pending task, or from the Workflow Management screen, look up the pending task from the &amp;quot;My Tasks&amp;quot; and click on the link to open the task.&lt;/li&gt;      &lt;li&gt;System to present Approver with new Approval Form (6)&lt;/li&gt;      &lt;li&gt;Approver could open any approval documents and review.&lt;/li&gt;      &lt;li&gt;If the approver wants to edit the document then approver must first check out the document, make their edit, save the document and check the document back in. (7)&lt;/li&gt;      &lt;li&gt;Workflow to advance further for each workflow defined steps and process the remaining steps.&lt;/li&gt;      &lt;li&gt;Upon workflow completion, the state for the documents need to be determined at the implementation time based on weather the workflow was approved or rejected.&lt;/li&gt;   &lt;/ol&gt; &lt;/ol&gt;  &lt;h5&gt;End User Views&lt;/h5&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/__-HvNNPF_6s/S8pKVspGSwI/AAAAAAAAEZA/49pC0WDqeOc/s1600-h/image%5B10%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/__-HvNNPF_6s/S8pKWIlgPCI/AAAAAAAAEZE/bAg5q73333E/image_thumb%5B6%5D.png?imgmax=800" width="752" height="530" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;My Tasks     &lt;ol&gt;       &lt;li&gt;This view to list all the active tasks for the current user.&lt;/li&gt;        &lt;li&gt;End user should be able to act on the pending task by clicking on the task.&lt;/li&gt;        &lt;li&gt;This list is sortable/filterable &lt;/li&gt;     &lt;/ol&gt;   &lt;/li&gt; &lt;/ol&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://lh3.ggpht.com/__-HvNNPF_6s/S8pKWRIrJQI/AAAAAAAAEZI/YtQ02qdcXc0/s1600-h/clip_image002%5B6%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image002" border="0" alt="clip_image002" src="http://lh4.ggpht.com/__-HvNNPF_6s/S8pKWuP775I/AAAAAAAAEZM/-qFEYEUJFkg/clip_image002_thumb.png?imgmax=800" width="40" height="22" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;ol&gt;   &lt;li&gt;Specific list of columns and the default view will be determined at the implementation.&lt;/li&gt; &lt;/ol&gt;  &lt;ol&gt;   &lt;li&gt;Active Workflows     &lt;ol&gt;       &lt;li&gt;This view to present list of all the active approval workflows&lt;/li&gt;        &lt;li&gt;This list is sortable/filterable &lt;/li&gt;     &lt;/ol&gt;   &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/__-HvNNPF_6s/S8pKXJ1jtZI/AAAAAAAAEZQ/GhXZahSbLhg/s1600-h/clip_image002%5B1%5D%5B2%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image002[1]" border="0" alt="clip_image002[1]" src="http://lh3.ggpht.com/__-HvNNPF_6s/S8pKXbJj6xI/AAAAAAAAEZU/Nu_n--fZ-J0/clip_image002%5B1%5D_thumb.png?imgmax=800" width="40" height="22" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Specific list of columns and the default view will be determined at the implementation.&lt;/li&gt; &lt;/ol&gt;  &lt;ol&gt;   &lt;li&gt;Approval Documents     &lt;ol&gt;       &lt;li&gt;This view to present end user with all the approval documents that belong to the active Approval Workflows.&lt;/li&gt;        &lt;li&gt;End user could directly open the documents for review purpose.&lt;/li&gt;        &lt;li&gt;End user could directly check out, open the documents for edit purpose.&lt;/li&gt;        &lt;li&gt;End user could directly check in, the documents with the per document review comments.&lt;/li&gt;        &lt;li&gt;This list is sortable/filterable &lt;/li&gt;     &lt;/ol&gt;   &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/__-HvNNPF_6s/S8pKXuygo-I/AAAAAAAAEZY/FhWODx2-ios/s1600-h/clip_image002%5B2%5D%5B2%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image002[2]" border="0" alt="clip_image002[2]" src="http://lh3.ggpht.com/__-HvNNPF_6s/S8pKXy4xvlI/AAAAAAAAEZc/5OKa4VtbMpI/clip_image002%5B2%5D_thumb.png?imgmax=800" width="40" height="22" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Specific list of columns will be determined at the implementation.&lt;/li&gt; &lt;/ol&gt;  &lt;ol&gt;   &lt;li&gt;Workflow Management     &lt;ol&gt;       &lt;li&gt;This control to present end user with button to initiate a new workflow&lt;/li&gt;        &lt;li&gt;This control to also present end user with workflow search controls.&lt;/li&gt;        &lt;li&gt;Search results will be displayed on a separate search page.&lt;/li&gt;     &lt;/ol&gt;   &lt;/li&gt; &lt;/ol&gt;  &lt;ol&gt;   &lt;li&gt;Completed Workflows &lt;/li&gt;    &lt;ol&gt;     &lt;li&gt;This view to present end user with all the approved documents .&lt;/li&gt;      &lt;li&gt;These documents are only for read only.&lt;/li&gt;      &lt;li&gt;End user will not be able to edit/delete or make any changes.&lt;/li&gt;      &lt;li&gt;This list is sortable/filterable &lt;/li&gt;   &lt;/ol&gt; &lt;/ol&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/__-HvNNPF_6s/S8pKYML25qI/AAAAAAAAEZg/YUbVb3zmuy8/s1600-h/clip_image002%5B3%5D%5B2%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image002[3]" border="0" alt="clip_image002[3]" src="http://lh3.ggpht.com/__-HvNNPF_6s/S8pKYTgDL5I/AAAAAAAAEZk/zLTYIlzyCoc/clip_image002%5B3%5D_thumb.png?imgmax=800" width="40" height="22" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Specific list of columns will be determined at the implementation.&lt;/li&gt; &lt;/ol&gt;  &lt;h5&gt;Implementation Options&lt;/h5&gt;  &lt;ol&gt;   &lt;li&gt;Workflow Technology options     &lt;ol&gt;       &lt;li&gt;Out of the Box SharePoint Workflows         &lt;ol&gt;           &lt;li&gt;Approval&lt;/li&gt;            &lt;li&gt;Feedback&lt;/li&gt;            &lt;li&gt;Signature Collection&lt;/li&gt;            &lt;li&gt;Disposition&lt;/li&gt;         &lt;/ol&gt;       &lt;/li&gt;     &lt;/ol&gt;   &lt;/li&gt; &lt;/ol&gt;  &lt;ol&gt;   &lt;li&gt;SharePoint Designer Workflows     &lt;ol&gt;       &lt;li&gt;Wizard Driven Designer.&lt;/li&gt;        &lt;li&gt;Very good Conditional flow builder.&lt;/li&gt;        &lt;li&gt;Limited auto forms generator.&lt;/li&gt;        &lt;li&gt;Deploy to a single list/library.&lt;/li&gt;     &lt;/ol&gt;   &lt;/li&gt; &lt;/ol&gt;  &lt;ol&gt;   &lt;li&gt;VS.NET developed custom workflow     &lt;ol&gt;       &lt;li&gt;Custom Coded workflow process.&lt;/li&gt;        &lt;li&gt;Custom workflow provides broader opportunities for workflow logic and future capabilities implementation.&lt;/li&gt;        &lt;li&gt;No UI Support (use either ASP.NET or InfoPath form).&lt;/li&gt;        &lt;li&gt;Can be deployed to any server any site any list.&lt;/li&gt;     &lt;/ol&gt;   &lt;/li&gt; &lt;/ol&gt;  &lt;ol&gt;   &lt;li&gt;Forms Options     &lt;ol&gt;       &lt;li&gt;ASP.NET         &lt;ol&gt;           &lt;li&gt;Custom ASP.NET pages can be developed to provide Forms functionality.&lt;/li&gt;            &lt;li&gt;These custom ASP.NET pages will need to be a SharePoint master page inherited pages and should follow SharePoint development standard.&lt;/li&gt;            &lt;li&gt;Will be complex to develop.&lt;/li&gt;         &lt;/ol&gt;       &lt;/li&gt;     &lt;/ol&gt;   &lt;/li&gt; &lt;/ol&gt;  &lt;ol&gt;   &lt;li&gt;InfoPath Forms and SharePoint Forms server     &lt;ol&gt;       &lt;li&gt;Custom InfoPath Forms can be developed to provide adequate End user Forms experience.&lt;/li&gt;        &lt;li&gt;InfoPath forms technology is meant for this Forms functionality.&lt;/li&gt;        &lt;li&gt;To add to the InfoPath strong feature, SharePoint brings in the Forms server technology.&lt;/li&gt;        &lt;li&gt;The Forms server is capable of delivering the InfoPath forms via the browse interface, meaning end user do not need InfoPath rich client to interact with Forms.&lt;/li&gt;        &lt;li&gt;InfoPath provides rapid development experience.&lt;/li&gt;        &lt;li&gt;The minimal configuration of the Forms Services provides excellent mechanism for delivering the Forms to the end user browser in a workflow process.&lt;/li&gt;     &lt;/ol&gt;   &lt;/li&gt; &lt;/ol&gt;  &lt;ol&gt;   &lt;li&gt;Landing Page Web Parts      &lt;ol&gt;       &lt;li&gt;For each of the Workflow Management page views, Out of the box web parts can be utilized and customized.         &lt;ol&gt;           &lt;li&gt;My Tasks             &lt;ol&gt;               &lt;li&gt;This will be a filtered List view web part on the Workflow Tasks list.&lt;/li&gt;                &lt;li&gt;This Web part will be filtered for current user by connecting to a Current User Filter Web part&lt;/li&gt;             &lt;/ol&gt;           &lt;/li&gt;         &lt;/ol&gt;          &lt;ol&gt;           &lt;li&gt;Active Workflows             &lt;ol&gt;               &lt;li&gt;This will be a filtered List view web part on the Workflow Tasks list.&lt;/li&gt;                &lt;li&gt;List View will be filtered for where status is not &amp;quot;Completed&amp;quot;.&lt;/li&gt;             &lt;/ol&gt;           &lt;/li&gt;         &lt;/ol&gt;          &lt;ol&gt;           &lt;li&gt;Approval Documents             &lt;ol&gt;               &lt;li&gt;This will be a filtered List view web part on the Approal Documents library.&lt;/li&gt;                &lt;li&gt;List View will be filtered for where the documents are Approved.&lt;/li&gt;             &lt;/ol&gt;           &lt;/li&gt;         &lt;/ol&gt;          &lt;ol&gt;           &lt;li&gt;Workflow Management             &lt;ol&gt;               &lt;li&gt;This will be a Content Editor Web Part with custom HTML code.&lt;/li&gt;                &lt;li&gt;The HTML code will facilitate the end user confirmation via the JavaScript and further upon confirmation, initiation of the workflow.&lt;/li&gt;             &lt;/ol&gt;           &lt;/li&gt;         &lt;/ol&gt;          &lt;ol&gt;           &lt;li&gt;Approved Documents              &lt;ol&gt;               &lt;li&gt;This will be a filtered List view web part on the Approval Workflow custom list.&lt;/li&gt;             &lt;/ol&gt;              &lt;ol&gt;               &lt;li&gt;List View will be filtered for where status is &amp;quot;Completed&amp;quot;.&lt;/li&gt;             &lt;/ol&gt;           &lt;/li&gt;         &lt;/ol&gt;       &lt;/li&gt;     &lt;/ol&gt;   &lt;/li&gt; &lt;/ol&gt;  &lt;ol&gt;   &lt;li&gt;Document Management     &lt;ol&gt;       &lt;li&gt;SharePoint provides Document management functions Out of the Box         &lt;ol&gt;           &lt;li&gt;Check in Check out&lt;/li&gt;            &lt;li&gt;Versioning (Minor, Major)&lt;/li&gt;            &lt;li&gt;Document Approval&lt;/li&gt;         &lt;/ol&gt;       &lt;/li&gt;     &lt;/ol&gt;   &lt;/li&gt; &lt;/ol&gt;  &lt;ol&gt;   &lt;li&gt;Detailed Implementation Options and Comparisons     &lt;ol&gt;       &lt;li&gt;Out of the Box SharePoint Workflows         &lt;ol&gt;           &lt;li&gt;Design             &lt;ol&gt;               &lt;li&gt;Simply Configure each workflow for a given list/library.&lt;/li&gt;             &lt;/ol&gt;           &lt;/li&gt;         &lt;/ol&gt;       &lt;/li&gt;     &lt;/ol&gt;   &lt;/li&gt; &lt;/ol&gt;  &lt;ol&gt;   &lt;li&gt;UI     &lt;ol&gt;       &lt;li&gt;OOTB submission and approval pages&lt;/li&gt;     &lt;/ol&gt;   &lt;/li&gt; &lt;/ol&gt;  &lt;ol&gt;   &lt;li&gt;Deployment     &lt;ol&gt;       &lt;li&gt;SharePoint Feature Driven, simply activate appropriate workflow features. By default all workflows are activated.&lt;/li&gt;     &lt;/ol&gt;   &lt;/li&gt; &lt;/ol&gt;  &lt;ol&gt;   &lt;li&gt;Extensibility     &lt;ol&gt;       &lt;li&gt;Not available&lt;/li&gt;     &lt;/ol&gt;   &lt;/li&gt; &lt;/ol&gt;  &lt;ol&gt;   &lt;li&gt;End User Experience     &lt;ol&gt;       &lt;li&gt;Relevant for the limited functionality&lt;/li&gt;     &lt;/ol&gt;   &lt;/li&gt; &lt;/ol&gt;  &lt;ol&gt;   &lt;li&gt;SharePoint Designer 2007 designed workflows     &lt;ol&gt;       &lt;li&gt;Design         &lt;ol&gt;           &lt;li&gt;Declarative Workflow Design experience through wizard&lt;/li&gt;            &lt;li&gt;Simple Initiation form auto generation for submitter.&lt;/li&gt;            &lt;li&gt;Simple Task form auto generation for approver.&lt;/li&gt;            &lt;li&gt;All SharePoint designer workflows are flow chart type and do not support State type machine workflows.&lt;/li&gt;            &lt;li&gt;Wizard Driven Experience&lt;/li&gt;         &lt;/ol&gt;       &lt;/li&gt;     &lt;/ol&gt;   &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Deployment&lt;/li&gt;    &lt;ol&gt;     &lt;li&gt;SPD workflows are always deployed to a single list/library.&lt;/li&gt;      &lt;li&gt;There is no packing and deployment option.&lt;/li&gt;      &lt;li&gt;There is coding involved.&lt;/li&gt;      &lt;li&gt;All the auto generated workflow definition files are deployed to SharePoint hidden library&lt;/li&gt;      &lt;li&gt;However there are hacks to pick these files and re design or make use of these files in VS.net as new workflow (but that is out of scope for this discussion)&lt;/li&gt;   &lt;/ol&gt;    &lt;li&gt;Extensibility&lt;/li&gt;    &lt;ol&gt;     &lt;li&gt;Use SPD to open the site &amp;quot;Live&amp;quot; and open the workflow.&lt;/li&gt;      &lt;li&gt;Modification could potentially break the active workflow instances.&lt;/li&gt;   &lt;/ol&gt;    &lt;li&gt;End User Experience&lt;/li&gt;    &lt;ol&gt;     &lt;li&gt;Submitter to see the above initiator screen, but there is no way to provision the document attachments or reference other related documents.&lt;/li&gt;      &lt;li&gt;With alternative approaches, at the least we could accommodate a free text field where the submitter lists all the approval related documents. Or a document library with each new folder with workflow number where the documents are uploaded.&lt;/li&gt;      &lt;li&gt;More disconnected experience&lt;/li&gt;   &lt;/ol&gt;    &lt;li&gt;Version Management&lt;/li&gt;    &lt;ol&gt;     &lt;li&gt;SharePoint will maintain all the workflow deployed versions.&lt;/li&gt;   &lt;/ol&gt; &lt;/ol&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://lh6.ggpht.com/__-HvNNPF_6s/S8pKYn7ta1I/AAAAAAAAEZo/zWQZ2hGFXAk/s1600-h/clip_image006%5B4%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image006" border="0" alt="clip_image006" src="http://lh3.ggpht.com/__-HvNNPF_6s/S8pKY5ddO9I/AAAAAAAAEZs/viO7uUx2dns/clip_image006_thumb%5B1%5D.png?imgmax=800" width="542" height="141" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;ol&gt;   &lt;li&gt;VS.NET developed custom workflow&lt;/li&gt;    &lt;ol&gt;     &lt;li&gt;Workflow Development       &lt;ol&gt;         &lt;li&gt;Customizable with design canvas with predefined controls.&lt;/li&gt;       &lt;/ol&gt;     &lt;/li&gt;      &lt;ol&gt;       &lt;li&gt;Provides great depth of freedom to implement business logic.&lt;/li&gt;        &lt;li&gt;Could implement support for Multiple Documents approval&lt;/li&gt;        &lt;li&gt;Can implement both flowchart type workflows with Parallel and Serial workflows and a state machine based workflows.&lt;/li&gt;        &lt;li&gt;Complex to implement&lt;/li&gt;        &lt;li&gt;Time consuming to develop&lt;/li&gt;        &lt;li&gt;No integrated UI development&lt;/li&gt;        &lt;li&gt;But can integrate with InfoPath or ASP.net separately (Covered below&lt;/li&gt;     &lt;/ol&gt;   &lt;/ol&gt;    &lt;li&gt;UI choices&lt;/li&gt;    &lt;ol&gt;     &lt;li&gt;InfoPath&lt;/li&gt;      &lt;ol&gt;       &lt;li&gt;Design using InfoPath Office Application, rapid development.&lt;/li&gt;        &lt;li&gt;Deploy with Browser enablement. Easier to enable. &lt;/li&gt;        &lt;li&gt;Rich end user experience&lt;/li&gt;        &lt;li&gt;Simple integration with VS.net workflow&lt;/li&gt;        &lt;li&gt;Complex to perform data integration with VS.net workflow (Time consuming)&lt;/li&gt;     &lt;/ol&gt;      &lt;li&gt;ASP. Net&lt;/li&gt;      &lt;ol&gt;       &lt;li&gt;Alternative option.&lt;/li&gt;        &lt;li&gt;More time to develop than InfoPath&lt;/li&gt;     &lt;/ol&gt;      &lt;li&gt;Would choose if there was no Forms server and was only WSS (Comes with MOSS Enterprise license)&lt;/li&gt;   &lt;/ol&gt;    &lt;li&gt;Deployment     &lt;ol&gt;       &lt;li&gt;Entire workflow components can be packaged as a SharePoint Solution Framework.&lt;/li&gt;        &lt;li&gt;Can be deployed as intuitive SharePoint Feature&lt;/li&gt;        &lt;li&gt;Solution feature can be controlled by administrator&lt;/li&gt;        &lt;li&gt;Workflow can be developed and tested and deployed to each different servers&lt;/li&gt;     &lt;/ol&gt;   &lt;/li&gt;    &lt;li&gt;Extensibility&lt;/li&gt;    &lt;ol&gt;     &lt;li&gt;Custom tasks types can be developed to implement special or non OOTB functionalities (reference to multiple documents)&lt;/li&gt;      &lt;li&gt;But it will be a complex task.&lt;/li&gt;      &lt;li&gt;Workflow solution can be further updated and the Features can be further deployed by carefully evaluating the impact of deployment and retention of active workflow instances.&lt;/li&gt;   &lt;/ol&gt;    &lt;li&gt;End User Experience     &lt;ol&gt;       &lt;li&gt;More intuitive and richer experience due to advanced Forms entry, data presentation and submission experience.&lt;/li&gt;        &lt;li&gt;Easier workflow interaction with custom build Web part components.&lt;/li&gt;        &lt;li&gt;Advanced and more interactive reporting experience.&lt;/li&gt;     &lt;/ol&gt;   &lt;/li&gt; &lt;/ol&gt;  &lt;h5&gt;Design Constraints &lt;/h5&gt;  &lt;ol&gt;   &lt;li&gt;Out of the Box Workflows&lt;/li&gt;    &lt;ol&gt;     &lt;li&gt;Comparison with OOTB workflows and requirements&lt;/li&gt;      &lt;li&gt;Each OOTB workflow is one leg of our requirements&lt;/li&gt;      &lt;li&gt;We cannot bind them one by one serially to achieve our designed flow&lt;/li&gt;      &lt;li&gt;Not being able to update multiple documents.&lt;/li&gt;      &lt;li&gt;SharePoint workflows are single document-centric processes&lt;/li&gt;      &lt;li&gt;From a document library, you can choose document and then choose to kick of a workflow&lt;/li&gt;   &lt;/ol&gt; &lt;/ol&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://lh3.ggpht.com/__-HvNNPF_6s/S8pKZp0KUmI/AAAAAAAAEZw/J5zCRe8m40E/s1600-h/clip_image008%5B4%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image008" border="0" alt="clip_image008" src="http://lh5.ggpht.com/__-HvNNPF_6s/S8pKaDwa3GI/AAAAAAAAEZ0/Nk0e7NJjmDU/clip_image008_thumb%5B1%5D.png?imgmax=800" width="480" height="296" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;ol&gt;   &lt;li&gt;No dynamic task assignment. &lt;/li&gt;    &lt;ol&gt;     &lt;li&gt;No task assignment based on availability.&lt;/li&gt;      &lt;li&gt;Cannot check for Out Of Office from Exchange Serve&lt;/li&gt;   &lt;/ol&gt;    &lt;li&gt;SharePoint Designer 2007 Workflows&lt;/li&gt;    &lt;ol&gt;     &lt;li&gt;The auto generated simple forms do not support any onscreen validation or conditional data input.&lt;/li&gt;      &lt;li&gt;Every input is independent field. &lt;/li&gt;      &lt;li&gt;Data validation logic cannot be enforced.&lt;/li&gt;      &lt;li&gt;Only data&lt;/li&gt;      &lt;li&gt;Multiple Document reference and document management functionality cannot be implemented. (may be very complex to implement)&lt;/li&gt;   &lt;/ol&gt;    &lt;li&gt;Approval Document management has to be handled separately from the workflow process and directly from the Approval Documents library.     &lt;ol&gt;       &lt;li&gt;Workflow process and the document review process managed directly from the library would go independently.&lt;/li&gt;        &lt;li&gt;This to provide more disconnected end experience.&lt;/li&gt;     &lt;/ol&gt;   &lt;/li&gt;    &lt;li&gt;SPD Workflows lack deployment functionality to more than one location.&lt;/li&gt;    &lt;ol&gt;     &lt;li&gt;One developed and deployed against a single list/library under say development server, we cannot take out just workflow process and deploy against a Production server.&lt;/li&gt;      &lt;li&gt;There are other alternative approaches to mitigate this issue.&lt;/li&gt;      &lt;ol&gt;       &lt;li&gt;Once developed clean up the development test data.&lt;/li&gt;        &lt;li&gt;Back up the site collection.&lt;/li&gt;        &lt;li&gt;Deploy restore the site collection in production.&lt;/li&gt;        &lt;li&gt;But this can happen only one time.&lt;/li&gt;        &lt;li&gt;Thus modifications cannot be easily developed under development environment and deployed to production.&lt;/li&gt;        &lt;li&gt;Only production workflow has to be directly modified for any future updates risking loosing /inadvertently affecting production data.&lt;/li&gt;        &lt;li&gt;There are other hacking options, but would not recommend as there are chances of loosing/affect the production system.&lt;/li&gt;     &lt;/ol&gt;   &lt;/ol&gt; &lt;/ol&gt;  &lt;h5&gt;Capacity planning&lt;/h5&gt;  &lt;ul&gt;   &lt;li&gt;Other items that needs to be addressed are the capacity planning and include your growth plan. &lt;/li&gt;    &lt;li&gt;Consider how many average documents per workflow.&lt;/li&gt;    &lt;li&gt;Give attention towards the know SharePoint guidance for over 2000 items per view.&lt;/li&gt; &lt;/ul&gt;  &lt;h5&gt;Implementation Decisions&lt;/h5&gt;  &lt;p&gt;Then work through your Implementation decision strategy such as to implement which specific feature using possible technology options. You can prioritize each of these requirements. This should further help you to decide which option makes more sense on the larger scale.&lt;/p&gt;  &lt;h6&gt;Requirements Prioritization&lt;/h6&gt;  &lt;p&gt;Priority: High/Medium/Low&lt;/p&gt;  &lt;p&gt;*Design Impact: In the order of function availability to low cost simple design to advanced end user experience with high cost of development. Any selection of choices selects corresponding type of technology choice across. Choices are among (OOTB, SPD, VS.net Custom Workflow)&lt;/p&gt;  &lt;p&gt;Let the Business/Client/End user decide on the prioritization.&lt;/p&gt;  &lt;p&gt;Hope this helps….&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4488134356468314016-2807084199507625636?l=rajeshagadi.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MyfindingsinMicrosoftworld/~4/lAuBX7E1vHc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rajeshagadi.blogspot.com/feeds/2807084199507625636/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4488134356468314016&amp;postID=2807084199507625636" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4488134356468314016/posts/default/2807084199507625636?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4488134356468314016/posts/default/2807084199507625636?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MyfindingsinMicrosoftworld/~3/lAuBX7E1vHc/implementing-multiple-documents.html" title="Implementing Multiple Documents Approval Workflow in SharePoint 2007" /><author><name>Rajesh Agadi</name><uri>http://www.blogger.com/profile/17908384970712474388</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://3.bp.blogspot.com/__-HvNNPF_6s/SuzadWw3wDI/AAAAAAAAEHw/UNJGp_Zugxc/S220/ProfilePicture.JPG" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh3.ggpht.com/__-HvNNPF_6s/S8pKVbDTgFI/AAAAAAAAEY8/sm_kLx8wf0E/s72-c/image_thumb%5B3%5D.png?imgmax=800" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://rajeshagadi.blogspot.com/2010/04/implementing-multiple-documents.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0AHR387fCp7ImA9WxFSFEk.&quot;"><id>tag:blogger.com,1999:blog-4488134356468314016.post-2770259309926373530</id><published>2010-04-16T12:20:00.001-07:00</published><updated>2010-04-16T12:22:16.104-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-04-16T12:22:16.104-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Nintex Workflow 2007" /><category scheme="http://www.blogger.com/atom/ns#" term="InfoPath 2007" /><category scheme="http://www.blogger.com/atom/ns#" term="MOSS 2007" /><title>Email links to InfoPath tries to open the form in Rich InfoPath Client as supposed to Browser based form.</title><content type="html">&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h5&gt;Overview&lt;/h5&gt;  &lt;p&gt;For Nintex Approval Task, you will have emails text. Under the email you would add a link to respond to the task such that the link would open the InfoPath Form over the browser.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/__-HvNNPF_6s/S8i4d7bDQoI/AAAAAAAAEYg/mteCRHSd49g/s1600-h/clip_image001%5B5%5D.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image001" border="0" alt="clip_image001" src="http://lh4.ggpht.com/__-HvNNPF_6s/S8i4ewUwC7I/AAAAAAAAEYk/YfBd5F-w6ZY/clip_image001_thumb%5B2%5D.png?imgmax=800" width="274" height="56" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h5&gt;Issue&lt;/h5&gt;  &lt;p&gt;Email link to open the form, tries to opens the InfoPath form with rich client as supposed to Browser.&lt;/p&gt;  &lt;h5&gt;Diagnosis&lt;/h5&gt;  &lt;p&gt;I have noticed some flakiness with the link in the task email where the reference to “{Common:ItemUrl}” embed the link. &lt;/p&gt;  &lt;p&gt;I have noticed in one of our build, clicking on the link tried to download the InfoPath file and open with the Rich InfoPath Client as supposed to open in browser. Below is the link.. and next to it is the HTML snippet of the email..&lt;/p&gt;  &lt;p&gt;&lt;a href="https://webmail.MyCompany.com/owa/redir.aspx?C=9255f52eea184a3ab087aadad9d7b0da&amp;amp;URL=http://&amp;lt;FileUrl&amp;gt;.xml"&gt;.xml&amp;quot;&amp;gt;.xml&amp;quot;&amp;gt;https://webmail.&lt;em&gt;MyCompany&lt;/em&gt;.com/owa/redir.aspx?C=9255f52eea184a3ab087aadad9d7b0da&amp;amp;URL=http://&amp;lt;&lt;em&gt;FileUrl&lt;/em&gt;&amp;gt;.xml&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Email HTML&lt;/p&gt;  &lt;p&gt;&amp;lt;P style=&amp;quot;MARGIN: 0in; FONT-FAMILY: Arial; FONT-SIZE: 10pt&amp;quot;&amp;gt;Click&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;/FONT&amp;gt;&amp;lt;property style=&amp;quot;COLOR: blue; TEXT-DECORATION: underline&amp;quot; title=Hyperlink contentEditable=false refText=&amp;quot;here&amp;quot; link=&amp;quot;true&amp;quot; refLink=&amp;quot;{Common:ItemUrl}&amp;quot;&amp;gt;here&amp;lt;/property&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;to review and respond to the task&amp;lt;/P&amp;gt;&lt;/p&gt;  &lt;p&gt;Below is the Working link:&lt;/p&gt;  &lt;p&gt;&lt;a href="https://webmail.ikanos.com/owa/redir.aspx?C=400ebab811684a4b97b06823d0372219&amp;amp;URL=http%3a%2f%2fportalqa.ikanos.com%2fworkflow%2flegalCM%2f_layouts%2fFormServer.aspx%3fXmlLocation%3d%2fworkflow%2flegalCM%2fContract%2520Workflow%2520Forms%2fSAGEMCOM%2520Shenzhen_%2520Agreement%2520-%2520License_%2520_250000%2520%5b4_14_2010-9_25_23-AM-spsqauser11%5d.xml%26OpenIn%3dbrowser"&gt;&lt;/a&gt;&lt;a href="https://webmail.MyCompany.com/owa/redir.aspx?C=9255f52eea184a3ab087aadad9d7b0da&amp;amp;URL=http://&amp;lt;FileUrl&amp;gt;.xml"&gt;.xml&amp;quot;&amp;gt;.xml&amp;quot;&amp;gt;https://webmail.&lt;em&gt;MyCompany&lt;/em&gt;.com/owa/redir.aspx?C=9255f52eea184a3ab087aadad9d7b0da&amp;amp;URL=http://&amp;lt;&lt;em&gt;FileUrl&lt;/em&gt;&amp;gt;.xml&lt;/a&gt;%&lt;strong&gt;26OpenIn%3dbrowser&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;HTML&lt;/p&gt;  &lt;p&gt;&amp;lt;P style=&amp;quot;MARGIN: 0in; FONT-FAMILY: Arial; FONT-SIZE: 10pt&amp;quot;&amp;gt;Click&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;/FONT&amp;gt;&amp;lt;property style=&amp;quot;COLOR: blue; TEXT-DECORATION: underline&amp;quot; title=Hyperlink contentEditable=false refText=&amp;quot;here&amp;quot; link=&amp;quot;true&amp;quot; refLink=&amp;quot;{Common:ItemUrl}&amp;quot;&amp;gt;here&amp;lt;/property&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;to review and respond to the task&amp;lt;/P&amp;gt;&lt;/p&gt;  &lt;p&gt;As you can see I had highlighted in the working link the addition of “&amp;amp;OpenIn=Browser” is present at the end of the link. While you will also notice that the HTML snippet is the same.&lt;/p&gt;  &lt;p&gt;Well its simple setting that is causing this issue. If you look over the Forms libraries Advanced Settings, you will see that Browser-enabled Documents is set to use the client application.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/__-HvNNPF_6s/S8i4gccM0BI/AAAAAAAAEYo/9NZs33PdA3s/s1600-h/clip_image002%5B4%5D.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image002" border="0" alt="clip_image002" src="http://lh3.ggpht.com/__-HvNNPF_6s/S8i4hf55qtI/AAAAAAAAEYs/Q8hc-tJiw6s/clip_image002_thumb%5B1%5D.png?imgmax=800" width="460" height="63" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Simply switch this over to Display as Web Page.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/__-HvNNPF_6s/S8i4iYCM-bI/AAAAAAAAEYw/JcLQZ8ql-c8/s1600-h/clip_image003%5B4%5D.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image003" border="0" alt="clip_image003" src="http://lh3.ggpht.com/__-HvNNPF_6s/S8i4jZbVapI/AAAAAAAAEY0/medc5pcERmw/clip_image003_thumb%5B1%5D.png?imgmax=800" width="450" height="62" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Now any email notifications that get generated after this setting will add the “OpenIn=Browser” query parameter to the link url.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4488134356468314016-2770259309926373530?l=rajeshagadi.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MyfindingsinMicrosoftworld/~4/J5yLlPA4xUs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rajeshagadi.blogspot.com/feeds/2770259309926373530/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4488134356468314016&amp;postID=2770259309926373530" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4488134356468314016/posts/default/2770259309926373530?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4488134356468314016/posts/default/2770259309926373530?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MyfindingsinMicrosoftworld/~3/J5yLlPA4xUs/email-links-to-infopath-tries-to-open.html" title="Email links to InfoPath tries to open the form in Rich InfoPath Client as supposed to Browser based form." /><author><name>Rajesh Agadi</name><uri>http://www.blogger.com/profile/17908384970712474388</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://3.bp.blogspot.com/__-HvNNPF_6s/SuzadWw3wDI/AAAAAAAAEHw/UNJGp_Zugxc/S220/ProfilePicture.JPG" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh4.ggpht.com/__-HvNNPF_6s/S8i4ewUwC7I/AAAAAAAAEYk/YfBd5F-w6ZY/s72-c/clip_image001_thumb%5B2%5D.png?imgmax=800" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://rajeshagadi.blogspot.com/2010/04/email-links-to-infopath-tries-to-open.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEAMSHsyeCp7ImA9WxFRE0w.&quot;"><id>tag:blogger.com,1999:blog-4488134356468314016.post-8326846574352031036</id><published>2010-04-15T22:53:00.001-07:00</published><updated>2010-04-26T13:13:09.590-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-04-26T13:13:09.590-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Nintex Workflow 2007" /><category scheme="http://www.blogger.com/atom/ns#" term="InfoPath 2007" /><category scheme="http://www.blogger.com/atom/ns#" term="Architecture" /><category scheme="http://www.blogger.com/atom/ns#" term="Troubleshoot" /><category scheme="http://www.blogger.com/atom/ns#" term="Guidence" /><category scheme="http://www.blogger.com/atom/ns#" term="Developer" /><category scheme="http://www.blogger.com/atom/ns#" term="MOSS 2007" /><title>Implementing workflows using MOSS 2007, Nintex Workflow 2007 and InfoPath Forms 2007</title><content type="html">&lt;h4&gt;Overview&lt;/h4&gt;  &lt;p&gt;Lately I been busy building workflows using the Nintex Workflows 2007 on MOSS 2007 with InfoPath 2007 forms over Forms server. I have gone through my own share of learning and building some nice integrations. I have also come across several issues as they exist, some have answers some don’t. In the next several days I will be blogging on each of several of my thoughts over design, implementation and runtime related topics as below.&amp;#160; I will enable links as I get chance to post on each of these topics.&lt;/p&gt;  &lt;h4&gt;Topics&lt;/h4&gt;  &lt;ul&gt;   &lt;li&gt;Design      &lt;ul&gt;       &lt;li&gt;&lt;a href="http://rajeshagadi.blogspot.com/2010/04/implementing-multiple-documents.html"&gt;Implementing Multiple Documents Approval Workflow&lt;/a&gt; &lt;/li&gt;        &lt;li&gt;Integrating SharePoint, Nintex and InfoPath &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Nintex      &lt;ul&gt;       &lt;li&gt;Best Practices for Nintex &lt;/li&gt;        &lt;li&gt;Limitation of Nintex &lt;/li&gt;        &lt;li&gt;What do I like about Nintex? &lt;/li&gt;        &lt;li&gt;Integrating Nintex with InfoPath &lt;/li&gt;        &lt;li&gt;Thinks that you will need to watch out while in Nintex Workflow Development. &lt;/li&gt;        &lt;li&gt;Custom My Workflows web part for Nintex &lt;/li&gt;        &lt;li&gt;Custom My Workflow Tasks web part for Nintex &lt;/li&gt;        &lt;li&gt;Links in Nintex Workflow &lt;/li&gt;        &lt;li&gt;Generating Custom Workflow ID &lt;/li&gt;        &lt;li&gt;Updating InfoPath data from Nintex &lt;/li&gt;        &lt;li&gt;Extracting File attachments from InfoPath submissions &lt;/li&gt;        &lt;li&gt;Implementing Item security for other assets lists/libraries &lt;/li&gt;        &lt;li&gt;&lt;a href="http://rajeshagadi.blogspot.com/2010/04/email-links-to-infopath-tries-to-open.html"&gt;Email links to InfoPath tries to open the form in Rich InfoPath Client as supposed to Browser based form&lt;/a&gt;. &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;InfoPath      &lt;ul&gt;       &lt;li&gt;How to exceed InfoPath 5 expression barrier from Rules? &lt;/li&gt;        &lt;li&gt;How to show InfoPath data for debugging with a trick? &lt;/li&gt;        &lt;li&gt;How to improve Custom People picker speed? &lt;/li&gt;        &lt;li&gt;Custom InfoPath footer with version/build information. &lt;/li&gt;        &lt;li&gt;The quirks in InfoPath over Forms Server. &lt;/li&gt;        &lt;li&gt;What not to do? &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;SharePoint      &lt;ul&gt;       &lt;li&gt;Workflow timer frequency &lt;/li&gt;        &lt;li&gt;Save conflict issue &lt;/li&gt;        &lt;li&gt;How to secure Forms library &lt;/li&gt;        &lt;li&gt;How to Assets List/Library &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Implementation      &lt;ul&gt;       &lt;li&gt;Deploying InfoPath Forms &lt;/li&gt;        &lt;li&gt;Deploying Nintex Workflows &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Development      &lt;ul&gt;       &lt;li&gt;My Build Process &lt;/li&gt;        &lt;li&gt;My Build Scripts &lt;/li&gt;        &lt;li&gt;How to debug? &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;If you are interested in any of these topics please leave comment and I will blog on them.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4488134356468314016-8326846574352031036?l=rajeshagadi.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MyfindingsinMicrosoftworld/~4/4QH0Qz60fjw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rajeshagadi.blogspot.com/feeds/8326846574352031036/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4488134356468314016&amp;postID=8326846574352031036" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4488134356468314016/posts/default/8326846574352031036?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4488134356468314016/posts/default/8326846574352031036?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MyfindingsinMicrosoftworld/~3/4QH0Qz60fjw/implementing-workflows-using-moss-2007.html" title="Implementing workflows using MOSS 2007, Nintex Workflow 2007 and InfoPath Forms 2007" /><author><name>Rajesh Agadi</name><uri>http://www.blogger.com/profile/17908384970712474388</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://3.bp.blogspot.com/__-HvNNPF_6s/SuzadWw3wDI/AAAAAAAAEHw/UNJGp_Zugxc/S220/ProfilePicture.JPG" /></author><thr:total>1</thr:total><feedburner:origLink>http://rajeshagadi.blogspot.com/2010/04/implementing-workflows-using-moss-2007.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CU4HRX4_eyp7ImA9WxBTFUo.&quot;"><id>tag:blogger.com,1999:blog-4488134356468314016.post-8816300820523799925</id><published>2009-12-11T15:25:00.001-08:00</published><updated>2009-12-11T15:25:34.043-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-11T15:25:34.043-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Windows" /><category scheme="http://www.blogger.com/atom/ns#" term="K2" /><title>Length of Server name in Windows Server and K2 BlackPoint Configuration</title><content type="html">&lt;h5&gt;Overview&lt;/h5&gt;  &lt;p&gt;I had installed one my VM with Win 2008, gave a long name, bumped up with DC and added DNS,Web roles. Dropped SQL 2008 and MOSS 2007 all went well. When I tried to Install K2 BlackPerl, the Configuration Manager kept on failing to successfully configure.&lt;/p&gt;  &lt;h5&gt;Issue&lt;/h5&gt;  &lt;p&gt;Then I noticed that the error message that K2 BlackPerl Configuration Manager log that the server could not be found!!!!!&lt;/p&gt;  &lt;p&gt;The log complained this against the SQL Server and Web Server .&lt;/p&gt;  &lt;h5&gt;Solution&lt;/h5&gt;  &lt;p&gt;Here is the name of my server from Machine Properties:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/__-HvNNPF_6s/SyLUymOGsAI/AAAAAAAAEW4/Nf1n3sl1iBY/s1600-h/image%5B10%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/__-HvNNPF_6s/SyLUzJ6DcfI/AAAAAAAAEW8/76nvm5tRsfw/image_thumb%5B4%5D.png?imgmax=800" width="589" height="134" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Here is the name of my Server:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/__-HvNNPF_6s/SyLUzaCxZtI/AAAAAAAAEXA/1bgocWlMaB4/s1600-h/image%5B6%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/__-HvNNPF_6s/SyLUzvp5THI/AAAAAAAAEXE/Vi7DxulRsvg/image_thumb%5B2%5D.png?imgmax=800" width="392" height="175" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;The Name of SQL Server:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/__-HvNNPF_6s/SyLUzzUlI4I/AAAAAAAAEXI/4cTabXRRKn0/s1600-h/image%5B5%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/__-HvNNPF_6s/SyLU0XhyeFI/AAAAAAAAEXM/P5AhTpvVRO4/image_thumb%5B1%5D.png?imgmax=800" width="237" height="40" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Notice that the Win2008DevBoxx6&lt;font color="#ff0000"&gt;4&lt;/font&gt; (4 is missing from the Server name&amp;#160; in the Server Manager and SQL Server above)&lt;/p&gt;  &lt;p&gt;Then I went back to K2 BlackPerl Configuration Manager, correct the name&amp;#160; (Win2008DevBoxx6) and deleted the extra character(s) at the end as seen in the SQL Server/Web Server, everything went well.&lt;/p&gt;  &lt;h5&gt;Reference&lt;/h5&gt;  &lt;p&gt;Then my research lead to this reference on TechNet:&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Active Directory Maximum Limits – Scalability &lt;/em&gt;(&lt;a title="http://technet.microsoft.com/en-us/library/cc756101(WS.10).aspx" href="http://technet.microsoft.com/en-us/library/cc756101(WS.10).aspx"&gt;http://technet.microsoft.com/en-us/library/cc756101(WS.10).aspx&lt;/a&gt;)&lt;/p&gt;  &lt;p&gt;Under the section “&lt;em&gt;Additional Name Length Limitations&lt;/em&gt;&amp;quot;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;NetBIOS computer and domain names are limited to 15 characters.&lt;/strong&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4488134356468314016-8816300820523799925?l=rajeshagadi.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MyfindingsinMicrosoftworld/~4/-5B9ZmRdlrw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rajeshagadi.blogspot.com/feeds/8816300820523799925/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4488134356468314016&amp;postID=8816300820523799925" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4488134356468314016/posts/default/8816300820523799925?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4488134356468314016/posts/default/8816300820523799925?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MyfindingsinMicrosoftworld/~3/-5B9ZmRdlrw/length-of-server-name-in-windows-server.html" title="Length of Server name in Windows Server and K2 BlackPoint Configuration" /><author><name>Rajesh Agadi</name><uri>http://www.blogger.com/profile/17908384970712474388</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://3.bp.blogspot.com/__-HvNNPF_6s/SuzadWw3wDI/AAAAAAAAEHw/UNJGp_Zugxc/S220/ProfilePicture.JPG" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh6.ggpht.com/__-HvNNPF_6s/SyLUzJ6DcfI/AAAAAAAAEW8/76nvm5tRsfw/s72-c/image_thumb%5B4%5D.png?imgmax=800" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://rajeshagadi.blogspot.com/2009/12/length-of-server-name-in-windows-server.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUcFQHkycSp7ImA9WxFbGUw.&quot;"><id>tag:blogger.com,1999:blog-4488134356468314016.post-6589848372944728827</id><published>2009-12-10T00:03:00.001-08:00</published><updated>2010-07-11T23:43:31.799-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-11T23:43:31.799-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SPS 2010" /><title>Installing SPS 2010 Tips</title><content type="html">&lt;p&gt;Here I wanted to capture all issues or trick dealing with installation of SPS 2010. I will keep this updating as I find new issues/answers…&lt;/p&gt;  &lt;h5&gt;1. Single Server Install/Farm Mode install&lt;/h5&gt;  &lt;blockquote&gt;   &lt;h6&gt;Issue&lt;/h6&gt;    &lt;p&gt;For Single Server installation, you may choose Farm Install just to avoid SQL Express being installed. But the Farm Install mode restricts to having a domain account when you run Configuration wizard.&lt;/p&gt;    &lt;h6&gt;Solution&lt;/h6&gt;    &lt;p&gt;Once installation is complete, run SPS Powershell, run SP-NewConfigurationDatabase. This will accept the local account and create config db, and connected the server to Farm.&lt;/p&gt;    &lt;p&gt;Next run the configuration wizard which will confirm that the server is connected to&amp;#160; a farm, now complete the creation of CA.&lt;/p&gt; &lt;/blockquote&gt;  &lt;h5&gt;2. Single Server Install/SQL or SPS2010 first.&lt;/h5&gt;  &lt;blockquote&gt;   &lt;h6&gt;Issue&lt;/h6&gt;    &lt;p&gt;For stand alone (such as development) servers installations where you want to have SQL Server and SPS 2010 running on the same box, you may encounter following issue if you first install SPS 2010 and then try install SQL Server 2008.&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font color="#ff0000"&gt;An attempt was made to install (or update) SQL Server Native Client on a computer where SQL Server Native Client is already installed, and where the existing installation was from an MSI file that was not named sqlncli.msi.&lt;/font&gt;&lt;/p&gt;    &lt;h6&gt;Solution&lt;/h6&gt;    &lt;p&gt;Option 1: Simply uninstall “SQL Server Native Client” from the Uninstall Program option from Control Panel&lt;/p&gt;    &lt;p&gt;Option 2: Given the choice or for your next single server installation try installing SQL Server 2008 first before SPS 2010.&lt;/p&gt; &lt;/blockquote&gt;  &lt;h5&gt;3. An error occurred creating the configuration section handler for microsoft.identityModel: &lt;/h5&gt;  &lt;blockquote&gt;   &lt;h6&gt;Issue&lt;/h6&gt;    &lt;p&gt;You may receive an error while trying to first time install or create a new configuration database that is described as below:&lt;/p&gt;    &lt;p&gt;&lt;font color="#ff0000"&gt;Exception: System.Configuration.ConfigurationErrorsException: An error occurred creating the configuration section handler for microsoft.identityModel: Could not load file or assembly 'Microsoft.IdentityModel, Version=&lt;strong&gt;1.0.0.0&lt;/strong&gt;, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified. (&lt;strong&gt;C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\WebServices\Root\web.config line 4&lt;/strong&gt;) ---&amp;gt; System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.IdentityModel, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;h6&gt;Solution&lt;/h6&gt;    &lt;p&gt;There are two aspects to this issue:&lt;/p&gt;    &lt;p&gt;1. Ensure proper install of Windows Identity Foundation:&amp;#160; Make sure you have uninstalled &lt;strong&gt;Microsoft “Geneva” Framework&lt;/strong&gt;.&amp;#160; This code is now renamed as “Microsoft Identify Foundation”. Find appropriate download for your platform from (Give attention to &lt;strong&gt;Instructions &lt;/strong&gt;above the &lt;strong&gt;Files in the Download&lt;/strong&gt;) &amp;quot;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=eb9c345f-e830-40b8-a5fe-ae7a864c4d76&amp;amp;displaylang=en#filelist"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyID=eb9c345f-e830-40b8-a5fe-ae7a864c4d76&amp;amp;displaylang=en#filelist&lt;/a&gt;.&lt;/p&gt;    &lt;p&gt;2. Microsoft.IdentityModel Version in coded in the web.config is incorrect:&amp;#160; Lets look at the Version Number in the Error message:&amp;#160; “Microsoft.IdentityModel, Version=&lt;font color="#ff0000"&gt;1.0.0.0&lt;/font&gt;”.&amp;#160; Next lets follow the Class name space as registerd under the GAC:&lt;/p&gt;    &lt;p&gt;&lt;a href="http://lh4.ggpht.com/__-HvNNPF_6s/TDq5ivzLbHI/AAAAAAAAEZ4/IvZAnLJmQn4/s1600-h/image%5B3%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/__-HvNNPF_6s/TDq5i8TNoVI/AAAAAAAAEZ8/6TInCcF-7rE/image_thumb%5B1%5D.png?imgmax=800" width="572" height="64" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;As you can see the actual Version number for the Microsoft.IdentiyModel is 3.5.0.0&lt;/p&gt;    &lt;p&gt;Now lets follow the web.config entry as pointed by the Error Message.&lt;/p&gt;    &lt;p&gt;&lt;a href="http://lh6.ggpht.com/__-HvNNPF_6s/TDq5jcE6n-I/AAAAAAAAEaA/2MlroOI6YjM/s1600-h/image%5B7%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/__-HvNNPF_6s/TDq5jg0sBhI/AAAAAAAAEaE/zp2XwR5X3TM/image_thumb%5B3%5D.png?imgmax=800" width="712" height="112" /&gt;&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;Lets update this version number in the web.config pointed by the Error message to 3.5.0.0, save the web.config.&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://lh6.ggpht.com/__-HvNNPF_6s/TDq5kVH-L3I/AAAAAAAAEaI/7-WnjTzZh98/s1600-h/image%5B11%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/__-HvNNPF_6s/TDq5ksowXYI/AAAAAAAAEaM/KN1WpOWo5xY/image_thumb%5B5%5D.png?imgmax=800" width="418" height="61" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;Now continue your configuration, this step has successfully worked for me, I hope this helps others battling thus error.&lt;/p&gt;&lt;/blockquote&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4488134356468314016-6589848372944728827?l=rajeshagadi.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MyfindingsinMicrosoftworld/~4/CPonIAiSZHk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rajeshagadi.blogspot.com/feeds/6589848372944728827/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4488134356468314016&amp;postID=6589848372944728827" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4488134356468314016/posts/default/6589848372944728827?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4488134356468314016/posts/default/6589848372944728827?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MyfindingsinMicrosoftworld/~3/CPonIAiSZHk/installing-sps-2010-tips.html" title="Installing SPS 2010 Tips" /><author><name>Rajesh Agadi</name><uri>http://www.blogger.com/profile/17908384970712474388</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://3.bp.blogspot.com/__-HvNNPF_6s/SuzadWw3wDI/AAAAAAAAEHw/UNJGp_Zugxc/S220/ProfilePicture.JPG" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh3.ggpht.com/__-HvNNPF_6s/TDq5i8TNoVI/AAAAAAAAEZ8/6TInCcF-7rE/s72-c/image_thumb%5B1%5D.png?imgmax=800" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://rajeshagadi.blogspot.com/2009/12/installing-sps-2010-tips.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkYBR309eip7ImA9WxBTFE0.&quot;"><id>tag:blogger.com,1999:blog-4488134356468314016.post-4887954915967349088</id><published>2009-12-09T17:22:00.001-08:00</published><updated>2009-12-09T17:22:36.362-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-09T17:22:36.362-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SPS 2010" /><category scheme="http://www.blogger.com/atom/ns#" term="Windows 7" /><category scheme="http://www.blogger.com/atom/ns#" term="VS2010" /><category scheme="http://www.blogger.com/atom/ns#" term="Win 2008" /><title>Bootable VHD in Windows 7 for Win 2008 R2 x64, SQL 2008, SPS 2010, VS2010, WF4</title><content type="html">&lt;p&gt;You can refer to &lt;a href="http://rajeshagadi.blogspot.com/2009/12/bootable-vhd-in-windows-7-using-pre.html"&gt;my other post&lt;/a&gt; on this effort. Finally I was able to get a bootable VHD under Windows 7. I wanted to share what finally worked for me.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;With my base bootable image Windows 7 x64 Ultimate, only the &lt;strong&gt;Fixed VHD &lt;/strong&gt;seems to work. &lt;/li&gt;    &lt;li&gt;The Fixed VHD must be on the local drive, meaning no external connected drives through USB, ESATA (&lt;a href="http://rajeshagadi.blogspot.com/2009/08/improving-performance-of-virtual.html"&gt;Yes this is possible see my other post&lt;/a&gt;).&lt;/li&gt;    &lt;li&gt;So the above restriction put limit on my maximum size I could apply for my VHD (20GB)&lt;/li&gt;    &lt;li&gt;Here are some of my recordings of space requirements:&lt;/li&gt;    &lt;ul&gt;     &lt;table border="0" cellspacing="0" cellpadding="2" width="400"&gt;&lt;tbody&gt;         &lt;tr&gt;           &lt;td valign="top" width="200"&gt;&lt;strong&gt;Software&lt;/strong&gt;&lt;/td&gt;            &lt;td valign="top" width="200"&gt;&lt;strong&gt;Space Required&lt;/strong&gt;&lt;/td&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td valign="top" width="200"&gt;Windows 2008 R2 x64+IIS&lt;/td&gt;            &lt;td valign="top" width="200"&gt;6.7GB&lt;/td&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td valign="top" width="200"&gt;VS.Net 2010 (C#,Web Dev, SPS Dev) Including all pre-requisites&lt;/td&gt;            &lt;td valign="top" width="200"&gt;3.3GB&lt;/td&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td valign="top" width="200"&gt;SQL Server 2008&lt;/td&gt;            &lt;td valign="top" width="200"&gt;2GB&lt;/td&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td valign="top" width="200"&gt;SPS 2010&lt;/td&gt;            &lt;td valign="top" width="200"&gt;2.3GB&lt;/td&gt;         &lt;/tr&gt;       &lt;/tbody&gt;&lt;/table&gt;   &lt;/ul&gt;    &lt;li&gt;After all the components installed and ready to go with SPS CA created, I had only about 3.3 GB left.&lt;/li&gt;    &lt;li&gt;So I think if you are planning for this task, plan for your storage well in advance, I would say at least 25-40GB for the VHD if you can afford the space.&lt;/li&gt;    &lt;li&gt;When I created the VHD as fixed disk, the install and booting went well. Finally when everything started working, I felt that I been missing my productivity tools where were on my base Windows 7 install.&lt;/li&gt;    &lt;li&gt;So finally I am ended up going back to my VMware Workstation option, and here are couple of reasons.&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Microsoft VPC 2007 did not support x64 bit OS.&lt;/li&gt;      &lt;li&gt;VMWare Workstation 7 supported Windows 2008 x64 bit.&lt;/li&gt;   &lt;/ul&gt; &lt;/ul&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4488134356468314016-4887954915967349088?l=rajeshagadi.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MyfindingsinMicrosoftworld/~4/mYkfajrtPSI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rajeshagadi.blogspot.com/feeds/4887954915967349088/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4488134356468314016&amp;postID=4887954915967349088" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4488134356468314016/posts/default/4887954915967349088?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4488134356468314016/posts/default/4887954915967349088?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MyfindingsinMicrosoftworld/~3/mYkfajrtPSI/bootable-vhd-in-windows-7-for-win-2008.html" title="Bootable VHD in Windows 7 for Win 2008 R2 x64, SQL 2008, SPS 2010, VS2010, WF4" /><author><name>Rajesh Agadi</name><uri>http://www.blogger.com/profile/17908384970712474388</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://3.bp.blogspot.com/__-HvNNPF_6s/SuzadWw3wDI/AAAAAAAAEHw/UNJGp_Zugxc/S220/ProfilePicture.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://rajeshagadi.blogspot.com/2009/12/bootable-vhd-in-windows-7-for-win-2008.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkIDR3w5fip7ImA9WxBTFE0.&quot;"><id>tag:blogger.com,1999:blog-4488134356468314016.post-2516558627368640491</id><published>2009-12-07T16:50:00.000-08:00</published><updated>2009-12-09T16:22:56.226-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-09T16:22:56.226-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Windows 7" /><title>Bootable VHD in Windows 7 using Pre-Built Hyper-V VHD file</title><content type="html">&lt;h5&gt;Overview&lt;/h5&gt;  &lt;p&gt;On my lap top currently I run &lt;a href="http://rajeshagadi.blogspot.com/2009/12/installing-moss-2007-on-windows-7.html"&gt;Windows 7 x64&amp;#160; and MOSS 2007&lt;/a&gt; and I am very happy with it (no more VPC, VMWare&amp;#160; or carry that heavy external Hard Drive). See Current Specs below.&lt;/p&gt;  &lt;p&gt;I tried to install SPS 2010 on the same base install where I had MOSS 2007 already installed( &lt;a href="http://rajeshagadi.blogspot.com/2009/12/installing-sps-2010-side-by-side-moss.html"&gt;see my other post before you try&lt;/a&gt;…)&lt;/p&gt;  &lt;p&gt;This time I am trying to create new multi bootable&amp;#160; partition from a VHD that is attached on my base Windows 7 install.&amp;#160; While there are many good references to get started, I wanted to share my experience of how I got my build done.&lt;/p&gt;  &lt;p&gt;My goal is to load create a new VHD where I can load all the next generation Beta products. This to include SPS 2010 Beta, VS2010 and all other supporting/necessary components.&lt;/p&gt;  &lt;h5&gt;Current Specs&lt;/h5&gt;  &lt;p&gt;Dell Latitude D630&amp;#160; (x64)    &lt;br /&gt;4GB RAM     &lt;br /&gt;Windows 7 x64 Ultimate     &lt;br /&gt;SQL Server 2008 SP1     &lt;br /&gt;VS.net 2008 SP1     &lt;br /&gt;MOSS 2007 SP2 Oct CU     &lt;br /&gt;Office 2010 Beta     &lt;br /&gt;SPD 2007 &lt;/p&gt;  &lt;h5&gt;References&lt;/h5&gt;  &lt;ol&gt;   &lt;li&gt;&lt;a href="http://www.hanselman.com/blog/LessVirtualMoreMachineWindows7AndTheMagicOfBootToVHD.aspx"&gt;http://www.hanselman.com/blog/LessVirtualMoreMachineWindows7AndTheMagicOfBootToVHD.aspx&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;VHD-Extender toolkit      &lt;ol&gt;       &lt;li&gt;&lt;a href="http://vmtoolkit.com/blogs/announcements/archive/2007/01/17/vhd-expander-available.aspx"&gt;http://vmtoolkit.com/blogs/announcements/archive/2007/01/17/vhd-expander-available.aspx&lt;/a&gt; &lt;/li&gt;     &lt;/ol&gt;   &lt;/li&gt; &lt;/ol&gt;  &lt;h5&gt;Solution&lt;/h5&gt;  &lt;p&gt;To start with I am repurposing Microsoft provided Windows 2008 R2 VHD pre built Hyper-V Virtual machine but has 180 day evaluation license, which is good enough at the movement&amp;#160; as SPS2010 and VS2010 are still in beta for at least next few months (3-6months).&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;So I downloaded the image, extracted and repurposed only the base VHD file. &lt;/li&gt;    &lt;li&gt;The base VHD is only about 6.7GB. &lt;/li&gt;    &lt;li&gt;Next attached the VHD in Windows 7 and I was able to see the content of the drive. &lt;/li&gt;    &lt;li&gt;Following the bcdedit scripts I finished the dual bootable configuration. &lt;/li&gt;    &lt;li&gt;Upon booting, the boot failed with the green screen error message says that the size of the drive is too small. &lt;/li&gt;    &lt;li&gt;So next I utilized the VHD-Extender tool to extend the file, the version of the VHDExtender game an option extend only to minimum of 127GB. Which I did and this will be extended to a new file. &lt;/li&gt; &lt;/ul&gt;  &lt;h5&gt;Steps&lt;/h5&gt;  &lt;ol&gt;   &lt;li&gt;Download the Windows 2008 VHD (Reference link 2)      &lt;ol&gt;       &lt;li&gt;&lt;a href="http://lh6.ggpht.com/__-HvNNPF_6s/Sx2iPGDQo5I/AAAAAAAAETo/aXrCiNZAGG8/s1600-h/clip_image0013.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image001" border="0" alt="clip_image001" src="http://lh3.ggpht.com/__-HvNNPF_6s/Sx2iPlKf_aI/AAAAAAAAET0/qlWcarNoz14/clip_image001_thumb.png?imgmax=800" width="244" height="118" /&gt;&lt;/a&gt;&amp;#160; &lt;/li&gt;     &lt;/ol&gt;   &lt;/li&gt;    &lt;li&gt;Run the xxx-part01.exe and let the extract complete.      &lt;ol&gt;       &lt;li&gt;&amp;#160;&lt;a href="http://lh6.ggpht.com/__-HvNNPF_6s/Sx2iP0chnrI/AAAAAAAAET4/rqCAuOe7kUU/s1600-h/clip_image0023.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image002" border="0" alt="clip_image002" src="http://lh4.ggpht.com/__-HvNNPF_6s/Sx2iQV5580I/AAAAAAAAET8/BrLE2KThdU4/clip_image002_thumb.png?imgmax=800" width="244" height="183" /&gt;&lt;/a&gt; &lt;/li&gt;        &lt;li&gt;&lt;a href="http://lh6.ggpht.com/__-HvNNPF_6s/Sx2iQk8mHXI/AAAAAAAAEUA/YUL1F3mEC8s/s1600-h/clip_image0033.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image003" border="0" alt="clip_image003" src="http://lh6.ggpht.com/__-HvNNPF_6s/Sx2iQ631dxI/AAAAAAAAEUE/-p4EtOC-Jck/clip_image003_thumb.png?imgmax=800" width="244" height="184" /&gt;&lt;/a&gt; &lt;/li&gt;     &lt;/ol&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;The extract process will create a folder structure, which is a pre configured Hyper-V virtual machine.&lt;/p&gt;      &lt;ol&gt;       &lt;li&gt;         &lt;p&gt;&lt;a href="http://lh5.ggpht.com/__-HvNNPF_6s/Sx2iRTimlbI/AAAAAAAAEUI/nQUdfivqj8k/s1600-h/image2.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/__-HvNNPF_6s/Sx2iR290LSI/AAAAAAAAEUM/c9xnTIUzj2c/image_thumb.png?imgmax=800" width="189" height="139" /&gt;&lt;/a&gt; &lt;/p&gt;       &lt;/li&gt;     &lt;/ol&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;From all of this all I am interested is the VHD file. So navigate to the following folder to find VHD file.&lt;/p&gt;      &lt;ol&gt;       &lt;li&gt;         &lt;p&gt;&lt;a href="http://lh3.ggpht.com/__-HvNNPF_6s/Sx2iSHwdUKI/AAAAAAAAEUQ/Nh8YtktLDF4/s1600-h/image5.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/__-HvNNPF_6s/Sx2iSXemYWI/AAAAAAAAEUU/6Tf0T3HUiSw/image_thumb1.png?imgmax=800" width="178" height="126" /&gt;&lt;/a&gt; &lt;/p&gt;       &lt;/li&gt;        &lt;li&gt;         &lt;p&gt;&lt;a href="http://lh6.ggpht.com/__-HvNNPF_6s/Sx2iSks6J4I/AAAAAAAAEUY/7KP1cLh3MIc/s1600-h/image9.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/__-HvNNPF_6s/Sx2iS7R_JtI/AAAAAAAAEUc/hW87Bu_MzeI/image_thumb3.png?imgmax=800" width="479" height="69" /&gt;&lt;/a&gt; &lt;/p&gt;       &lt;/li&gt;     &lt;/ol&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;Extending the original 6.7GB VHD to 127GB file using the VHDExtender&lt;/p&gt;      &lt;ol&gt;       &lt;li&gt;         &lt;p&gt;&lt;a href="http://lh6.ggpht.com/__-HvNNPF_6s/Sx2iTemr6eI/AAAAAAAAEUg/f5ylmLX2VoI/s1600-h/image13.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/__-HvNNPF_6s/Sx2iT9iwKpI/AAAAAAAAEUk/oR_0WVypMtM/image_thumb5.png?imgmax=800" width="392" height="359" /&gt;&lt;/a&gt; &lt;/p&gt;       &lt;/li&gt;        &lt;li&gt;         &lt;p&gt;&lt;a href="http://lh5.ggpht.com/__-HvNNPF_6s/Sx2iUH2jPnI/AAAAAAAAEUo/5xTJdinTGr8/s1600-h/clip_image0162.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image016" border="0" alt="clip_image016" src="http://lh3.ggpht.com/__-HvNNPF_6s/Sx2iUqKzMWI/AAAAAAAAEUs/OUqtk9n5koc/clip_image016_thumb2.png?imgmax=800" width="582" height="86" /&gt;&lt;/a&gt;&lt;/p&gt;       &lt;/li&gt;     &lt;/ol&gt;   &lt;/li&gt;    &lt;li&gt;Now from the Windows 7, from the Computer Manager, navigate to Storage&amp;gt;Disk Management, right click and choose Attach VHD      &lt;ol&gt;       &lt;li&gt;&lt;a href="http://lh6.ggpht.com/__-HvNNPF_6s/Sx2iU1rNKpI/AAAAAAAAEUw/ifuEx2MmNMM/s1600-h/clip_image0053.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image005" border="0" alt="clip_image005" src="http://lh3.ggpht.com/__-HvNNPF_6s/Sx2iVTVs0tI/AAAAAAAAEU0/gRMdO5LQviM/clip_image005_thumb.png?imgmax=800" width="244" height="119" /&gt;&lt;/a&gt; &lt;/li&gt;        &lt;li&gt;&lt;a href="http://lh6.ggpht.com/__-HvNNPF_6s/Sx2iVqeKKfI/AAAAAAAAEU4/tcsK8gG1Ids/s1600-h/clip_image0063.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image006" border="0" alt="clip_image006" src="http://lh3.ggpht.com/__-HvNNPF_6s/Sx2iWNNZTtI/AAAAAAAAEU8/JDYSRv3khzI/clip_image006_thumb.png?imgmax=800" width="244" height="165" /&gt;&lt;/a&gt; &lt;/li&gt;        &lt;li&gt;&lt;a href="http://lh3.ggpht.com/__-HvNNPF_6s/Sx2iWWREIRI/AAAAAAAAEVA/z9WymXfjr6c/s1600-h/clip_image0073.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image007" border="0" alt="clip_image007" src="http://lh4.ggpht.com/__-HvNNPF_6s/Sx2iWlKQWVI/AAAAAAAAEVE/3o0orC3S_co/clip_image007_thumb.png?imgmax=800" width="244" height="122" /&gt;&lt;/a&gt; &lt;/li&gt;        &lt;li&gt;&lt;a href="http://lh3.ggpht.com/__-HvNNPF_6s/Sx2iW9aG47I/AAAAAAAAEVI/JooG1FEPSE0/s1600-h/clip_image0083.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image008" border="0" alt="clip_image008" src="http://lh6.ggpht.com/__-HvNNPF_6s/Sx2iXEectSI/AAAAAAAAEVM/7yUHys4k3IE/clip_image008_thumb.png?imgmax=800" width="244" height="96" /&gt;&lt;/a&gt; &lt;/li&gt;        &lt;li&gt;&lt;a href="http://lh5.ggpht.com/__-HvNNPF_6s/Sx2iXmGtcII/AAAAAAAAEVQ/7-HGNpgGeSM/s1600-h/clip_image0093.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image009" border="0" alt="clip_image009" src="http://lh6.ggpht.com/__-HvNNPF_6s/Sx2iYNpksTI/AAAAAAAAEVU/lQWGawH9ghI/clip_image009_thumb.png?imgmax=800" width="244" height="214" /&gt;&lt;/a&gt; &lt;/li&gt;        &lt;li&gt;&lt;a href="http://lh5.ggpht.com/__-HvNNPF_6s/Sx2iYcp6-eI/AAAAAAAAEVY/y9i4NxuaMok/s1600-h/clip_image0103.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image010" border="0" alt="clip_image010" src="http://lh6.ggpht.com/__-HvNNPF_6s/Sx2iYrveegI/AAAAAAAAEVc/Mf1ttTgCpps/clip_image010_thumb.png?imgmax=800" width="244" height="154" /&gt;&lt;/a&gt; &lt;/li&gt;        &lt;li&gt;&lt;a href="http://lh5.ggpht.com/__-HvNNPF_6s/Sx2iY8CM-pI/AAAAAAAAEVg/9XQRn0GwTSc/s1600-h/clip_image0113.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image011" border="0" alt="clip_image011" src="http://lh3.ggpht.com/__-HvNNPF_6s/Sx2iZe6ovhI/AAAAAAAAEVk/n7xbxhEyISI/clip_image011_thumb.png?imgmax=800" width="244" height="127" /&gt;&lt;/a&gt; &lt;/li&gt;     &lt;/ol&gt;   &lt;/li&gt;    &lt;li&gt;Using BCDEdit, create new Boot entry      &lt;ol&gt;       &lt;li&gt;&lt;a href="http://lh3.ggpht.com/__-HvNNPF_6s/Sx2iZxBmuEI/AAAAAAAAEVo/9DztEtpg5SM/s1600-h/clip_image0121%5B1%5D.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image012" border="0" alt="clip_image012" src="http://lh4.ggpht.com/__-HvNNPF_6s/Sx2iaPViNlI/AAAAAAAAEVs/M4_Wr3UGU78/clip_image012_thumb1.png?imgmax=800" width="649" height="79" /&gt;&lt;/a&gt; &lt;/li&gt;     &lt;/ol&gt;   &lt;/li&gt;    &lt;li&gt;Copy the new GUID&amp;#160; from above command      &lt;ol&gt;       &lt;li&gt;&lt;a href="http://lh5.ggpht.com/__-HvNNPF_6s/Sx2iaXpKdQI/AAAAAAAAEVw/27u9HdlwdgE/s1600-h/clip_image0131.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image013" border="0" alt="clip_image013" src="http://lh6.ggpht.com/__-HvNNPF_6s/Sx2iaktOEYI/AAAAAAAAEV0/Egmy6YqBaZ0/clip_image013_thumb1.png?imgmax=800" width="606" height="74" /&gt;&lt;/a&gt; &lt;/li&gt;     &lt;/ol&gt;   &lt;/li&gt;    &lt;li&gt;Now follow next steps of BCDedit commands as below      &lt;ol&gt;       &lt;li&gt;&lt;a href="http://lh6.ggpht.com/__-HvNNPF_6s/Sx2ibG5gREI/AAAAAAAAEV4/eSMr4Dq-CyM/s1600-h/clip_image0141%5B1%5D.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image014" border="0" alt="clip_image014" src="http://lh4.ggpht.com/__-HvNNPF_6s/Sx2ibYDV_xI/AAAAAAAAEV8/9_gHqOUu4hI/clip_image014_thumb1.png?imgmax=800" width="646" height="177" /&gt;&lt;/a&gt;           &lt;br /&gt;&lt;/li&gt;     &lt;/ol&gt;   &lt;/li&gt;    &lt;li&gt;Validate the registration      &lt;ol&gt;       &lt;li&gt;&lt;a href="http://lh3.ggpht.com/__-HvNNPF_6s/Sx2icQz0-mI/AAAAAAAAEWA/DLuoTIUMkHg/s1600-h/clip_image0151.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image015" border="0" alt="clip_image015" src="http://lh6.ggpht.com/__-HvNNPF_6s/Sx2idH1kueI/AAAAAAAAEWE/p642PUJMqos/clip_image015_thumb1.png?imgmax=800" width="657" height="618" /&gt;&lt;/a&gt; &lt;/li&gt;     &lt;/ol&gt;   &lt;/li&gt;    &lt;li&gt;Reboot and choose the new Windows 2008 partition to boot.      &lt;ol&gt;       &lt;li&gt;&lt;a href="http://lh6.ggpht.com/__-HvNNPF_6s/Sx2ifG_gO9I/AAAAAAAAEWI/lcFf_1Y7_i0/s1600-h/image17.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/__-HvNNPF_6s/Sx2ihPhliqI/AAAAAAAAEWM/g5h_1jG9xJI/image_thumb7.png?imgmax=800" width="670" height="431" /&gt;&lt;/a&gt; &lt;/li&gt;     &lt;/ol&gt;      &lt;p&gt;&lt;a href="http://lh4.ggpht.com/__-HvNNPF_6s/Sx2iho0EEoI/AAAAAAAAEWQ/ASqGz84FrzU/s1600-h/clip_image0173.png"&gt;&lt;/a&gt;&lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;After choosing to boot from the new partition, I got below error with status code ”0xc000000e”      &lt;ol&gt;       &lt;li&gt;&lt;a href="http://lh3.ggpht.com/__-HvNNPF_6s/Sx2ikDA15FI/AAAAAAAAEWU/r576l3kLPVI/s1600-h/image%5B5%5D.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/__-HvNNPF_6s/Sx2inDJoxaI/AAAAAAAAEWc/6d8TK9E5FFc/image_thumb%5B3%5D.png?imgmax=800" width="664" height="507" /&gt;&lt;/a&gt; &lt;/li&gt;     &lt;/ol&gt;   &lt;/li&gt;    &lt;li&gt;Reboot with Windows 2008 R2 DVD &lt;/li&gt;    &lt;li&gt;Choose Repair Windows      &lt;ol&gt;       &lt;li&gt;&lt;a href="http://lh5.ggpht.com/__-HvNNPF_6s/Sx2inu5ZO6I/AAAAAAAAEWg/k4uDY6UUis0/s1600-h/photo%5B6%5D.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="photo" border="0" alt="photo" src="http://lh6.ggpht.com/__-HvNNPF_6s/Sx2in7nNUPI/AAAAAAAAEWk/onPAhJ7z7dE/photo_thumb%5B2%5D.jpg?imgmax=800" width="244" height="184" /&gt;&lt;/a&gt; &lt;/li&gt;     &lt;/ol&gt;   &lt;/li&gt;    &lt;li&gt;Now notice that on the Windows 2008 partition, the drive size seems to be displayed as 0MB and the location is unknown.      &lt;ol&gt;       &lt;li&gt;&lt;a href="http://lh6.ggpht.com/__-HvNNPF_6s/Sx2ioZC_tLI/AAAAAAAAEWo/J_z1nhK_Yls/s1600-h/photo%5B3%5D.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="photo" border="0" alt="photo" src="http://lh4.ggpht.com/__-HvNNPF_6s/Sx2io1m35OI/AAAAAAAAEWs/Hh2zoo8NB10/photo_thumb%5B1%5D.jpg?imgmax=800" width="546" height="415" /&gt;&lt;/a&gt; &lt;/li&gt;     &lt;/ol&gt;   &lt;/li&gt;    &lt;li&gt;When I rebooted with the base Windows 7,&amp;#160; I noticed that the Attached VHD drive is no more in the list of drive under my storage management (Computer Management console). &lt;/li&gt;    &lt;li&gt;Now I tried attaching the drive and trying to reboot, it seems that the VHD from the Hyper-V is not quite recognizable under this Windows 7 VHD attach process. &lt;/li&gt;    &lt;li&gt;Further search led me to confirm that there might be an issue with this process with some one who had tried similar approach (&lt;a title="http://blog.frankovic.net/2009/05/boot-win-2008-r2-rc-from-vhd/" href="http://blog.frankovic.net/2009/05/boot-win-2008-r2-rc-from-vhd/"&gt;http://blog.frankovic.net/2009/05/boot-win-2008-r2-rc-from-vhd/&lt;/a&gt;) &lt;/li&gt;    &lt;li&gt;After further through I realized why the System Recovery Option was not displaying the partition size and the location.      &lt;ol&gt;       &lt;li&gt;The drive where I stored the VHD is on an external drive that is connected to my lap top via ESATA connection. &lt;/li&gt;        &lt;li&gt;When the lap top was rebooted, the BIOS does not know or have the ESATA drivers and hence the VHD was not at all identified. &lt;/li&gt;     &lt;/ol&gt;   &lt;/li&gt;    &lt;li&gt;Next Steps &lt;/li&gt;    &lt;ol&gt;     &lt;li&gt;So my next steps are to really create a new VHD from scratch, install OS and go from there. &lt;/li&gt;      &lt;ol&gt;       &lt;li&gt;OR &lt;/li&gt;     &lt;/ol&gt;      &lt;li&gt;Try with the base prebuilt Win 2008 R2 VHD which is 6.7GB by copying the VHD to my local lap top drive. &lt;/li&gt;      &lt;ol&gt;       &lt;li&gt;This option just did not work at all. When rebooted the windows never came up, always received BDOS.&lt;/li&gt;     &lt;/ol&gt;   &lt;/ol&gt;    &lt;li&gt;See my next post for my results. &lt;/li&gt;    &lt;li&gt;To clean up current configure simply ran bcdedit /delete as below:      &lt;ol&gt;       &lt;li&gt;&lt;a href="http://lh4.ggpht.com/__-HvNNPF_6s/Sx2s7MRCSdI/AAAAAAAAEWw/9Okw7dRmOZk/s1600-h/image%5B4%5D.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/__-HvNNPF_6s/Sx2s7klgbLI/AAAAAAAAEW0/fh2ABYua6RU/image_thumb%5B2%5D.png?imgmax=800" width="598" height="52" /&gt;&lt;/a&gt;&amp;#160; &lt;/li&gt;     &lt;/ol&gt;   &lt;/li&gt; &lt;/ol&gt;  &lt;h5&gt;Final Update&lt;/h5&gt;  &lt;p&gt;When I created the VHD as fixed disk, the install and booting went well. Finally when everything started working, I felt that I been missing my productivity tools where were on my base Windows 7 install.&lt;/p&gt;  &lt;p&gt;So finally I am ended up going back to my VMware Workstation option, and here are couple of reasons.&lt;/p&gt;  &lt;p&gt;Microsoft VPC 2007 did not support x64 bit OS.&lt;/p&gt;  &lt;p&gt;VMWare Workstation 7 supported Windows 2008 x64 bit.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4488134356468314016-2516558627368640491?l=rajeshagadi.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MyfindingsinMicrosoftworld/~4/GrOv3hqj_ak" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rajeshagadi.blogspot.com/feeds/2516558627368640491/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4488134356468314016&amp;postID=2516558627368640491" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4488134356468314016/posts/default/2516558627368640491?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4488134356468314016/posts/default/2516558627368640491?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MyfindingsinMicrosoftworld/~3/GrOv3hqj_ak/bootable-vhd-in-windows-7-using-pre.html" title="Bootable VHD in Windows 7 using Pre-Built Hyper-V VHD file" /><author><name>Rajesh Agadi</name><uri>http://www.blogger.com/profile/17908384970712474388</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://3.bp.blogspot.com/__-HvNNPF_6s/SuzadWw3wDI/AAAAAAAAEHw/UNJGp_Zugxc/S220/ProfilePicture.JPG" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh3.ggpht.com/__-HvNNPF_6s/Sx2iPlKf_aI/AAAAAAAAET0/qlWcarNoz14/s72-c/clip_image001_thumb.png?imgmax=800" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://rajeshagadi.blogspot.com/2009/12/bootable-vhd-in-windows-7-using-pre.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUIHQng8eCp7ImA9WxBTEEo.&quot;"><id>tag:blogger.com,1999:blog-4488134356468314016.post-1020336322145615229</id><published>2009-12-05T21:32:00.001-08:00</published><updated>2009-12-05T21:32:13.670-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-05T21:32:13.670-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SPS 2010" /><category scheme="http://www.blogger.com/atom/ns#" term="Windows 7" /><title>Installing SPS 2010 side by side MOSS 2007</title><content type="html">&lt;h5&gt;Overview&lt;/h5&gt;  &lt;p&gt;I have gone local with my &lt;a href="http://rajeshagadi.blogspot.com/2009/12/installing-moss-2007-on-windows-7.html"&gt;Windows 7 install running MOSS 2007&lt;/a&gt; (No more VPC/VMWare) on my lap top and I am really happy with it. I wanted to try and see what happens if I tried installing SPS 2010 Beta along side of MOSS 2007 install. I know Microsoft said it is not supported. But just for the kick…&lt;/p&gt;  &lt;h5&gt;Test results&lt;/h5&gt;  &lt;p&gt;I followed all the referenced as listed under the References section below to get through the Pre-Requisites which really went with no issues. (I will post my install experience when I finally get successful in another post). To save time of you all reading this post, finally when I got to the point when I ran the SPS 2010 install, this is what I saw…&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/__-HvNNPF_6s/SxtB2ZD9ZeI/AAAAAAAAESM/dnwYjBFgKv4/s1600-h/image%5B4%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/__-HvNNPF_6s/SxtB3S2-FwI/AAAAAAAAESQ/MAhibwSlU7Q/image_thumb%5B2%5D.png?imgmax=800" width="632" height="519" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;I am not sure why Microsoft made this restriction but that's where I am being forced to try other option.&lt;/p&gt;  &lt;h5&gt;Next Steps&lt;/h5&gt;  &lt;p&gt;There is lot of buzz around the new Windows 7 support to load the VHDs as another bootable mount drive. So I am trying that option next to run the SPS 2010 as separate install and still make use of my Lap Top full potential. Will post my results in my next post….&lt;/p&gt;  &lt;h5&gt;Reference&lt;/h5&gt;  &lt;ol&gt;   &lt;li&gt;MSDN:&lt;/li&gt;    &lt;ol&gt;     &lt;li&gt;Setting Up the Development Environment for SharePoint Server&lt;/li&gt;      &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ee554869(office.14).aspx"&gt;http://msdn.microsoft.com/en-us/library/ee554869(office.14).aspx&lt;/a&gt;&lt;/li&gt;   &lt;/ol&gt;    &lt;li&gt;MSDN Blog&lt;/li&gt;    &lt;ol&gt;     &lt;li&gt;SharePoint 2010 Pre-Requisites Download Links&lt;/li&gt;      &lt;li&gt;&lt;a href="http://blogs.msdn.com/opal/archive/2009/10/25/sharepoint-2010-pre-requisites-download-links.aspx"&gt;http://blogs.msdn.com/opal/archive/2009/10/25/sharepoint-2010-pre-requisites-download-links.aspx&lt;/a&gt;&lt;/li&gt;   &lt;/ol&gt; &lt;/ol&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4488134356468314016-1020336322145615229?l=rajeshagadi.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MyfindingsinMicrosoftworld/~4/vucmgjYwoJI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rajeshagadi.blogspot.com/feeds/1020336322145615229/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4488134356468314016&amp;postID=1020336322145615229" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4488134356468314016/posts/default/1020336322145615229?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4488134356468314016/posts/default/1020336322145615229?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MyfindingsinMicrosoftworld/~3/vucmgjYwoJI/installing-sps-2010-side-by-side-moss.html" title="Installing SPS 2010 side by side MOSS 2007" /><author><name>Rajesh Agadi</name><uri>http://www.blogger.com/profile/17908384970712474388</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://3.bp.blogspot.com/__-HvNNPF_6s/SuzadWw3wDI/AAAAAAAAEHw/UNJGp_Zugxc/S220/ProfilePicture.JPG" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh3.ggpht.com/__-HvNNPF_6s/SxtB3S2-FwI/AAAAAAAAESQ/MAhibwSlU7Q/s72-c/image_thumb%5B2%5D.png?imgmax=800" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://rajeshagadi.blogspot.com/2009/12/installing-sps-2010-side-by-side-moss.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE8GQ307fyp7ImA9WxBTEEo.&quot;"><id>tag:blogger.com,1999:blog-4488134356468314016.post-2215754052812885157</id><published>2009-12-05T21:20:00.001-08:00</published><updated>2009-12-05T21:20:22.307-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-05T21:20:22.307-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Office 2010" /><category scheme="http://www.blogger.com/atom/ns#" term="MOSS 2007" /><category scheme="http://www.blogger.com/atom/ns#" term="SPD 2007" /><title>Installing SPD 2007 along with Office 2010 Beta</title><content type="html">&lt;h5&gt;Issue&lt;/h5&gt;  &lt;p&gt;On my lap top I have Windows 7 x64 installed&amp;#160; and I run MOSS 2007+SQL 2008 (refer my other blog on &lt;a href="http://rajeshagadi.blogspot.com/2009/12/installing-moss-2007-on-windows-7.html"&gt;how I got MOSS 2007 installed and running on my local Windows 7&lt;/a&gt;).&amp;#160; Next I went ahead to install Office 2010 x64 Beta as the bits became available. I got in to trouble with Office 2010 install complaining that previous version of Office programs were installed and that I must first uninstall in order to install Office 2010 and pointed to Office SharePoint Designer 2007.&amp;#160; This is documented and discussed issued with Office 2010. &lt;strong&gt;Well I still need SPD 2007 in order to work with MOSS 2007.&lt;/strong&gt;&lt;/p&gt;  &lt;h5&gt;Solution&lt;/h5&gt;  &lt;p&gt;So I first took chance by first uninstalling SPD 2007&amp;#160; and continued with Office 2010 beta x64 install which worked pretty well.&lt;/p&gt;  &lt;p&gt;Now I tried installing the SPD 2007 once again (there is only x86 version of SPD 2007), and it installed well and SPD 2007 is working as expected.&lt;/p&gt;  &lt;p&gt;Follow up&lt;/p&gt;  &lt;p&gt;On the above success next I am venturing in to installing SharePoint 2010 along side of my MOSS 2007 on my Windows 7 ( I know Microsoft says it is not supported, well MOSS 2007 install did the same until someone figured out why not?) , look for my next blog….&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4488134356468314016-2215754052812885157?l=rajeshagadi.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MyfindingsinMicrosoftworld/~4/4qHLoD15Dug" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rajeshagadi.blogspot.com/feeds/2215754052812885157/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4488134356468314016&amp;postID=2215754052812885157" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4488134356468314016/posts/default/2215754052812885157?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4488134356468314016/posts/default/2215754052812885157?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MyfindingsinMicrosoftworld/~3/4qHLoD15Dug/installing-spd-2007-along-with-office.html" title="Installing SPD 2007 along with Office 2010 Beta" /><author><name>Rajesh Agadi</name><uri>http://www.blogger.com/profile/17908384970712474388</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://3.bp.blogspot.com/__-HvNNPF_6s/SuzadWw3wDI/AAAAAAAAEHw/UNJGp_Zugxc/S220/ProfilePicture.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://rajeshagadi.blogspot.com/2009/12/installing-spd-2007-along-with-office.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUEEQXc8eCp7ImA9WxBTEEo.&quot;"><id>tag:blogger.com,1999:blog-4488134356468314016.post-1553484534730245050</id><published>2009-12-05T20:56:00.001-08:00</published><updated>2009-12-05T21:33:20.970-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-05T21:33:20.970-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Windows 7" /><category scheme="http://www.blogger.com/atom/ns#" term="MOSS 2007" /><title>Installing MOSS 2007 on Windows 7</title><content type="html">&lt;ol&gt;   &lt;p&gt;&lt;/p&gt;    &lt;h5&gt;Overview&lt;/h5&gt;    &lt;p&gt;After Windows 7 was RTMed, I wanted to once again refresh my Lap Top with the released version as supposed to running the old RC version which would have timed out in July 2010. With the RC version I had the SQL Server 2008 and MOSS 2007 installed on my Windows 7 RC install. Worked very well. &lt;/p&gt;    &lt;p&gt;But this time once again I have to work through some of the challenges to get the MOSS install kick in. So I had followed all the steps as given in the below references, but wanted to add little more clarity to some of the steps and also share my steps that made it work finally.&lt;/p&gt;    &lt;p&gt;Also thanks to the Bamboo Solutions folks (&lt;a href="http://community.bamboosolutions.com/members/Jonas-Nilsson/default.aspx"&gt;Jonas Nilsson&lt;/a&gt;) for writing the program that fakes the MOSS installer that our Windows 7 really the server and let the install program continue. &lt;a href="http://www.synergyonline.com/"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/a&gt;&lt;a href="http://www.synergyonline.com/about/professionalprofiles/Pages/RandyWilliams.aspx"&gt;Randy Williams&lt;/a&gt;&lt;/a&gt;from Synergy for sharing a small trick that did the one more trick that SharePoint.exe to be renamed back to setup.exe.&lt;/p&gt;    &lt;p&gt;Here goes my little contribution…&lt;/p&gt;    &lt;h5&gt;References&lt;/h5&gt;    &lt;p&gt;&lt;a href="http://community.bamboosolutions.com/blogs/bambooteamblog/archive/2009/05/07/installing-wss-3-0-moss-sp2-on-windows-7-rc.aspx"&gt;http://community.bamboosolutions.com/blogs/bambooteamblog/archive/2009/05/07/installing-wss-3-0-moss-sp2-on-windows-7-rc.aspx&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;&lt;a href="http://community.bamboosolutions.com/blogs/bambooteamblog/archive/2008/05/21/how-to-install-windows-sharepoint-services-3-0-sp1-on-vista-x64-x86.aspx"&gt;http://community.bamboosolutions.com/blogs/bambooteamblog/archive/2008/05/21/how-to-install-windows-sharepoint-services-3-0-sp1-on-vista-x64-x86.aspx&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;&lt;a href="http://www.synergyonline.com/blog/blog-moss/Lists/Posts/Post.aspx?ID=89"&gt;http://www.synergyonline.com/blog/blog-moss/Lists/Posts/Post.aspx?ID=89&lt;/a&gt;&lt;/p&gt;    &lt;h5&gt;Steps&lt;/h5&gt;    &lt;p&gt;Follow all the steps in sequence as dictated by the first two links in my reference.&lt;/p&gt;    &lt;h6&gt;Tip 1: &lt;/h6&gt;    &lt;p&gt;In order to turn of the Application Compatibility, if you search “policy” in Windows 7 as below, &lt;/p&gt;    &lt;p&gt;&lt;a href="http://lh5.ggpht.com/__-HvNNPF_6s/Sxs5ez964kI/AAAAAAAAERE/MTciY91ZVcI/s1600-h/image%5B2%5D.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/__-HvNNPF_6s/Sxs5fJhRNsI/AAAAAAAAERI/GvFYYLWTo1E/image_thumb.png?imgmax=800" width="244" height="114" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;you will be search displayed as below…&lt;/p&gt;    &lt;p&gt;&lt;a href="http://lh4.ggpht.com/__-HvNNPF_6s/Sxs5fQ8zTUI/AAAAAAAAERM/d4Yi6qJ2w8I/s1600-h/image%5B5%5D.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/__-HvNNPF_6s/Sxs5fvSFhdI/AAAAAAAAERQ/aordK0Vx45Y/image_thumb%5B1%5D.png?imgmax=800" width="219" height="132" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;Choose the “Edit group policy”, otherwise you can simply run “&lt;strong&gt;gpedit.msc&lt;/strong&gt;”&lt;/p&gt;    &lt;h6&gt;Tip 2:&lt;/h6&gt;    &lt;p&gt;If you have renamed the original “&amp;lt;your MOSS 2007 Install Folder&amp;gt;x64\setup.exe” to sharepoint.exe, I kept on getting the help menu for extract command, so when I tried renaming sharepoint.exe back to “setup.exe” in the Install got kick in…&lt;/p&gt;    &lt;p&gt;&lt;a href="http://lh5.ggpht.com/__-HvNNPF_6s/Sxs5f2Sy6bI/AAAAAAAAERU/xuvSohwr3OE/s1600-h/clip_image002%5B5%5D.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image002" border="0" alt="clip_image002" src="http://lh5.ggpht.com/__-HvNNPF_6s/Sxs5gUJIFqI/AAAAAAAAERY/JXbwhA7jrlA/clip_image002_thumb%5B2%5D.png?imgmax=800" width="716" height="132" /&gt;&lt;/a&gt;&lt;/p&gt;    &lt;h6&gt;Tip 3:&lt;/h6&gt;    &lt;p&gt;Once all the above issues have been resolved, I was able to get the MOSS 2007 installed. Next I updated with latest SP 2 and the October 2009 CU, then ran config wizard and completed the Central Administration created.&lt;/p&gt;    &lt;p&gt;Now I fired up the Central Administration in a browser and found little strange display under the Topology and Services options. The “Services On Farm” was not displayed.&lt;/p&gt;    &lt;p&gt;&lt;a href="http://lh6.ggpht.com/__-HvNNPF_6s/Sxs5gqOwDAI/AAAAAAAAERc/uPCowZXAqWg/s1600-h/clip_image003%5B3%5D.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image003" border="0" alt="clip_image003" src="http://lh6.ggpht.com/__-HvNNPF_6s/Sxs5gxVD0RI/AAAAAAAAERg/wFj6ymM84ic/clip_image003_thumb.png?imgmax=800" width="213" height="144" /&gt;&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;As second test I tried to create a New SSP…&lt;/p&gt;    &lt;p&gt;&lt;a href="http://lh5.ggpht.com/__-HvNNPF_6s/Sxs5hAfBQ_I/AAAAAAAAERk/ozDT4nwOe0o/s1600-h/clip_image004%5B3%5D.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image004" border="0" alt="clip_image004" src="http://lh5.ggpht.com/__-HvNNPF_6s/Sxs5hUMkS8I/AAAAAAAAERo/CnPLsuIOT98/clip_image004_thumb.png?imgmax=800" width="214" height="196" /&gt;&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;and got below error…&lt;/p&gt;    &lt;p&gt;&lt;a href="http://lh6.ggpht.com/__-HvNNPF_6s/Sxs5hhI0GII/AAAAAAAAERs/bzjK-Xo_WEc/s1600-h/clip_image005%5B5%5D.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image005" border="0" alt="clip_image005" src="http://lh6.ggpht.com/__-HvNNPF_6s/Sxs5h5Tr-kI/AAAAAAAAERw/z_GEJwwQick/clip_image005_thumb%5B2%5D.png?imgmax=800" width="873" height="185" /&gt;&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;After checking my Local Users Group&amp;gt;Administrators, my Windows 7 login account was already part of administrator group (which I had already set up before I started with SQL Server and MOSS install steps).&lt;/p&gt;    &lt;p&gt;Then I figure this must be something in the Windows 7 UAC that may have not set correctly. But there was no option to check any more details. &lt;/p&gt;    &lt;p&gt;Then I ventured in to Local Security Policy to see if there are any policies that are blocking my account though who is member of local Administrator to act partially and blocking my full access/permissions to above problem..&lt;/p&gt;    &lt;p&gt;Then I search for [not literally] “Can I turn off UAC?” and ended up with a nice guide from TechNet (&lt;a title="http://technet.microsoft.com/en-us/library/cc709691(WS.10).aspx" href="http://technet.microsoft.com/en-us/library/cc709691(WS.10).aspx"&gt;http://technet.microsoft.com/en-us/library/cc709691(WS.10).aspx&lt;/a&gt;). Look for section “&lt;strong&gt;To disable Admin Approval Mode &lt;/strong&gt;“&lt;/p&gt;    &lt;p&gt;Now to run the Local Security Policy follow below steps:&lt;/p&gt;    &lt;p&gt;1. Click Start, click All Programs, click Accessories, click Run, type secpol.msc in the Open box, and then click OK.&lt;/p&gt;    &lt;p&gt;2. If the User Account Control dialog box appears, confirm that the action it displays is what you want, and then click Continue..&lt;/p&gt;    &lt;p&gt;3. From the Local Security Settings console tree, double-click Local Policies, and then double-click Security Options.&lt;/p&gt;    &lt;p&gt;4. Scroll down and double-click User Account Control: Run all administrators in Admin Approval Mode.&lt;/p&gt;    &lt;p&gt;&lt;a href="http://lh4.ggpht.com/__-HvNNPF_6s/Sxs5iGbEbQI/AAAAAAAAER0/AocaJtBYkVo/s1600-h/image%5B11%5D.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/__-HvNNPF_6s/Sxs5ithvAVI/AAAAAAAAER4/DzvS6vs6P9s/image_thumb%5B5%5D.png?imgmax=800" width="452" height="108" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;Select the Disabled option, and then click OK.&lt;/p&gt;    &lt;p&gt;&lt;a href="http://lh6.ggpht.com/__-HvNNPF_6s/Sxs5iyWDyRI/AAAAAAAAER8/qTAxnrrfbHs/s1600-h/image%5B15%5D.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/__-HvNNPF_6s/Sxs5jQ1SnPI/AAAAAAAAESA/Pxi8Dq0ONP8/image_thumb%5B7%5D.png?imgmax=800" width="459" height="239" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;Close the Local Security Settings window.&lt;/p&gt;    &lt;p&gt;Now refreshed my CA and there you see all the missing options…&lt;/p&gt;    &lt;p&gt;&lt;a href="http://lh5.ggpht.com/__-HvNNPF_6s/Sxs5jlI_vcI/AAAAAAAAESE/s6nqJ1rkqF8/s1600-h/clip_image006%5B3%5D.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image006" border="0" alt="clip_image006" src="http://lh6.ggpht.com/__-HvNNPF_6s/Sxs5jwhfe9I/AAAAAAAAESI/94W_xlbrOro/clip_image006_thumb.png?imgmax=800" width="226" height="196" /&gt;&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;And further I was now able to create SSP and continue my journey running MOSS 2007 locally on Windows 7 happily….&lt;/p&gt;    &lt;p&gt;Next I want to install and test Office 2010 Beta but still want to run SPD 2007.. &lt;a href="http://rajeshagadi.blogspot.com/2009/12/installing-spd-2007-along-with-office.html"&gt;see my next post&lt;/a&gt;..&lt;/p&gt; &lt;/ol&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4488134356468314016-1553484534730245050?l=rajeshagadi.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MyfindingsinMicrosoftworld/~4/z-M2bpZQGbc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rajeshagadi.blogspot.com/feeds/1553484534730245050/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4488134356468314016&amp;postID=1553484534730245050" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4488134356468314016/posts/default/1553484534730245050?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4488134356468314016/posts/default/1553484534730245050?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MyfindingsinMicrosoftworld/~3/z-M2bpZQGbc/installing-moss-2007-on-windows-7.html" title="Installing MOSS 2007 on Windows 7" /><author><name>Rajesh Agadi</name><uri>http://www.blogger.com/profile/17908384970712474388</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://3.bp.blogspot.com/__-HvNNPF_6s/SuzadWw3wDI/AAAAAAAAEHw/UNJGp_Zugxc/S220/ProfilePicture.JPG" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh5.ggpht.com/__-HvNNPF_6s/Sxs5fJhRNsI/AAAAAAAAERI/GvFYYLWTo1E/s72-c/image_thumb.png?imgmax=800" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://rajeshagadi.blogspot.com/2009/12/installing-moss-2007-on-windows-7.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkEHQHo9eyp7ImA9WxBTFE0.&quot;"><id>tag:blogger.com,1999:blog-4488134356468314016.post-705153735323183344</id><published>2009-11-24T18:59:00.001-08:00</published><updated>2009-12-09T16:23:51.463-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-09T16:23:51.463-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Architecture" /><category scheme="http://www.blogger.com/atom/ns#" term="Developer" /><category scheme="http://www.blogger.com/atom/ns#" term="MOSS 2007" /><title>Custom 401 for MOSS 2007</title><content type="html">&lt;h4&gt;Overview&lt;/h4&gt;  &lt;ul&gt;   &lt;li&gt;Handling 401 Error under the WSS 3.0/MOSS 2007 requires special handling. &lt;/li&gt;    &lt;li&gt;Unlike other Error messages that occur after the user is authenticated, all the browser requests handled through complete&amp;#160; ASP.Net pipe line and further WSS SPRequesthandler/SPPageFactory. &lt;/li&gt;    &lt;li&gt;In case of FileNotFound there is actually an object model property under the SPApplication object, which is unique and easier to handle. &lt;/li&gt; &lt;/ul&gt;  &lt;h4&gt;How MOSS presents 401 Error Message?&lt;/h4&gt;  &lt;ul&gt;   &lt;li&gt;Under the context of hawkeye portal, were the users are restricted by means of an active directory group, users who are part of the group will get authenticated and are allowed to browse the portal. &lt;/li&gt;    &lt;li&gt;Users who are part of WSGC domain but are not part of the restricted AD group, will not get authenticated. &lt;/li&gt;    &lt;li&gt;Upon login attempt with proper username/password entry, user will be redirected &lt;a href="http://&amp;lt;PortalURL"&gt;http://&amp;lt;PortalURL&lt;/a&gt;&amp;gt;/_Layouts/accessdenied.aspx page. &lt;/li&gt;    &lt;li&gt;Above page is the standard MOSS Access Denied Error Message page. &lt;/li&gt; &lt;/ul&gt;  &lt;h4&gt;How does Authentication work in IIS and Browser?&lt;/h4&gt;  &lt;ul&gt;   &lt;li&gt;When user points the browser to the hawkeye portal, the browser first sends out the request without the user credential. &lt;/li&gt;    &lt;li&gt;IIS checks to see if the request site is security enabled. &lt;/li&gt;    &lt;li&gt;If the site is security enabled (in hawkeye case it is Windows Authentication), then IIS challenges the browser to provide the credentials by means of sending a 401 status code back to browser. &lt;/li&gt;    &lt;li&gt;Browser then looks at 401 and understands that it is now required to provide a credential. &lt;/li&gt;    &lt;li&gt;Browser then looks up if it has user credentials.      &lt;ul&gt;       &lt;li&gt;If the IE setting is set to Login using current user login then the browser sends the current user name/password. &lt;/li&gt;        &lt;li&gt;If the IE setting is set to Prompt for login then the users are prompted for login. &lt;/li&gt;        &lt;li&gt;If the browser does not have a credential then the browser displays the 401 error message by looking up the local 401 error message (This is a page from IE client side) &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;When the browser provide a credential, IIS server takes on checking for the authentication for given user/password.      &lt;ul&gt;       &lt;li&gt;If the user is authenticated, the requested page is served. &lt;/li&gt;        &lt;li&gt;If the user is a valid Active directory account then the SharePoint redirects the user to &lt;a href="http://&amp;lt;PortalURL"&gt;http://&amp;lt;PortalURL&lt;/a&gt;&amp;gt;/_Layouts/accessdenied.aspx page which is SharePoint error page. &lt;/li&gt;        &lt;li&gt;If the user is not valid Active directory account then the client side IE 401 error message is displayed.          &lt;br /&gt;&lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;h4&gt;What 401 error condition can you handle in SharePoint?&lt;/h4&gt;  &lt;ul&gt;   &lt;li&gt;You can only handle the 401 error condition for a valid AD user accounts but which do not have access to the portal. This is the only condition that Server handles. &lt;/li&gt;    &lt;li&gt;You can not handle the 401 error condition for non valid AD user accounts. &lt;/li&gt; &lt;/ul&gt;  &lt;h4&gt;What are the challenges in SharePoint with handling 401 error?&lt;/h4&gt;  &lt;ul&gt;   &lt;li&gt;When the 401 error condition occurs for a valid AD user account&amp;#160; with no access to the site, SharePoint page handler will take over the call and manages to redirect to &lt;a href="http://&amp;lt;PortalURL&amp;gt;/_Layouts/accessdenied.aspx"&gt;/_Layouts/accessdenied.aspx&amp;quot;&amp;gt;/_Layouts/accessdenied.aspx&amp;quot;&amp;gt;/_Layouts/accessdenied.aspx&amp;quot;&amp;gt;http://&amp;lt;PortalURL&amp;gt;/_Layouts/accessdenied.aspx&lt;/a&gt;. &lt;/li&gt;    &lt;li&gt;Above SharePoint behavior process ignores any web.confg &amp;lt;CustomErrors&amp;gt; settings. &lt;/li&gt;    &lt;li&gt;The only way to intercept this redirection is by implementing a custom Http handler. &lt;/li&gt;    &lt;li&gt;Under the http handler, by subscribing to EndRequest event and by trapping for the page redirect where the url is /_layouts/accessdeined.aspx, and then redirecting to your custom error page. &lt;/li&gt;    &lt;li&gt;You can implement your own custom error page under the sharepoint context&amp;#160; at the given below URL location for example. &lt;/li&gt;    &lt;li&gt;/_layouts/&amp;lt;YourCompanyName&amp;gt;/MyCustomAccessDeined.aspx &lt;/li&gt; &lt;/ul&gt;  &lt;h4&gt;Implementation&lt;/h4&gt;  &lt;p&gt;Below is the sample code base for http module. Substitute your &amp;lt;Company Name&amp;gt;. Compile this into a signed assembly.&lt;/p&gt;  &lt;div class="csharpcode"&gt;   &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Collections.Specialized;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Configuration;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Web;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;&amp;#160;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;&amp;#160;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;&lt;span class="kwrd"&gt;namespace&lt;/span&gt; Rajesh.MOSS401Redirector&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;{&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; RedirectorHttpModule : IHttpModule&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;    {&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;      &lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Init(HttpApplication context)&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;        {       &lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;            context.EndRequest += &lt;span class="kwrd"&gt;new&lt;/span&gt; EventHandler(context_EndRequest);                &lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;        }&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;&amp;#160;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;        &lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; context_EndRequest(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, EventArgs e)&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="lnum"&gt;  18:  &lt;/span&gt;        {&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  19:  &lt;/span&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (sender &lt;span class="kwrd"&gt;is&lt;/span&gt; HttpApplication)&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="lnum"&gt;  20:  &lt;/span&gt;            {&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  21:  &lt;/span&gt;                HttpApplication application = (HttpApplication)sender;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="lnum"&gt;  22:  &lt;/span&gt;               &lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  23:  &lt;/span&gt;                 &lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="lnum"&gt;  24:  &lt;/span&gt;                &lt;span class="kwrd"&gt;if&lt;/span&gt; application.Request.HttpMethod == &lt;span class="str"&gt;&amp;quot;GET&amp;quot;&lt;/span&gt;)&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  25:  &lt;/span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="lnum"&gt;  26:  &lt;/span&gt;                    HttpContext context = application.Context;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  27:  &lt;/span&gt;                    &lt;span class="kwrd"&gt;if&lt;/span&gt; (context.Request.Url.ToString().ToLower().Contains(&lt;span class="str"&gt;&amp;quot;/_layouts/accessdenied.aspx&amp;quot;&lt;/span&gt;))&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="lnum"&gt;  28:  &lt;/span&gt;                    {&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  29:  &lt;/span&gt;                        HttpContext.Current.Server.ClearError();&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="lnum"&gt;  30:  &lt;/span&gt;                        HttpContext.Current.Response.Clear();&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  31:  &lt;/span&gt;                        HttpContext.Current.Response.Redirect(&lt;span class="str"&gt;&amp;quot;/_layouts/&amp;lt;YourCompanyName&amp;gt;/AccessDenied.aspx&amp;quot;&lt;/span&gt;, &lt;span class="kwrd"&gt;false&lt;/span&gt;);&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="lnum"&gt;  32:  &lt;/span&gt;                    }&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  33:  &lt;/span&gt;&amp;#160;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="lnum"&gt;  34:  &lt;/span&gt;                 }&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  35:  &lt;/span&gt;&amp;#160;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="lnum"&gt;  36:  &lt;/span&gt;         }&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  37:  &lt;/span&gt;  }&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;style type="text/css"&gt;&lt;br /&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;Deployment and configuration&lt;/h4&gt;&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;  &lt;li&gt;Deploy the redirector assembly Rajesh.MOSS401Redirector.dll to the GAC on all FEWs. &lt;/li&gt;&lt;br /&gt;&lt;br /&gt;  &lt;li&gt;Deploy your custom error page under C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\TEMPLATE\LAYOUTS\&amp;lt;YourCompanyName&amp;gt;\ &lt;/li&gt;&lt;br /&gt;&lt;br /&gt;  &lt;li&gt;Add the following httpModule section to the web application web.config: &lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&amp;lt;configuration&amp;gt; &lt;br /&gt;  &lt;br /&gt;&amp;#160; &amp;lt;system.web&amp;gt; &lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;httpModules&amp;gt; &lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;add name=&amp;quot;RedirectorHttpModule&amp;quot; type=&amp;quot;Rajesh.MOSS401Redirector.RedirectorHttpModule, Rajesh.MOSS401Redirector, Version=1.0.0.0, Culture=neutral, PublicKeyToken=4f1f85ae373342d6&amp;quot; /&amp;gt; &lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/httpModules&amp;gt; &lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;&amp;#160; &amp;lt;/system.web&amp;gt; &lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;&amp;lt;/configuration&amp;gt; &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 4.Test by login in with user with portal access, and user with no portal access. &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 5. This test solution do not have proper implementation of the Custom Error page, it was meant to be a sample test only. You will need to implement proper supported SharePoint page.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4488134356468314016-705153735323183344?l=rajeshagadi.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MyfindingsinMicrosoftworld/~4/tCkHLT7jm6g" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rajeshagadi.blogspot.com/feeds/705153735323183344/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4488134356468314016&amp;postID=705153735323183344" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4488134356468314016/posts/default/705153735323183344?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4488134356468314016/posts/default/705153735323183344?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MyfindingsinMicrosoftworld/~3/tCkHLT7jm6g/custom-401-for-moss-2007.html" title="Custom 401 for MOSS 2007" /><author><name>Rajesh Agadi</name><uri>http://www.blogger.com/profile/17908384970712474388</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://3.bp.blogspot.com/__-HvNNPF_6s/SuzadWw3wDI/AAAAAAAAEHw/UNJGp_Zugxc/S220/ProfilePicture.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://rajeshagadi.blogspot.com/2009/11/custom-401-for-moss-2007.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUACRH0zeCp7ImA9WxNTEUw.&quot;"><id>tag:blogger.com,1999:blog-4488134356468314016.post-7587547461934880931</id><published>2009-08-12T15:22:00.001-07:00</published><updated>2009-08-12T15:56:05.380-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-08-12T15:56:05.380-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Virtualization" /><category scheme="http://www.blogger.com/atom/ns#" term="Developer" /><title>Improving performance of Virtual Machines on Lap Top [Developer]</title><content type="html">&lt;p&gt;As consultant I shuttle between clients, working at the corner of table, Starbucks, some time on train and some time at home. So I prefer to have my development system packaged as a Virtual Machine (My favorite is VMWare Workstation). Couple of thinks I like to high light here on how I made my VMs run much faster.&lt;/p&gt;&lt;h5&gt;Where to place VM files?&lt;/h5&gt;&lt;p&gt;When you place your VM files on a secondary hard disk than the main hard disk you will get better performance. You host OS and your VM machine running will not compete on the same hard disk. Thus you will have better I/O performance. Use secondary hard drive. to place your VM files.&lt;/p&gt;&lt;h5&gt;What type of External Drive gives better performance?&lt;/h5&gt;&lt;p&gt;Nowadays you get USB2/FireWire/eSata drive with different combination of ports. Below is the speed guide so you will know why I recommend eSata II (More details look at &lt;a href="http://en.wikipedia.org/wiki/Serial_ATA"&gt;Wikipedia&lt;/a&gt;) &lt;/p&gt;&lt;table border="1" cellspacing="0" cellpadding="2" width="400"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td valign="top" width="199"&gt;&lt;strong&gt;Port Standard&lt;/strong&gt;&lt;/td&gt;&lt;td valign="top" width="199"&gt;&lt;strong&gt;Speed&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top" width="199"&gt;USB2&lt;/td&gt;&lt;td valign="top" width="199"&gt;60 Mega Bytes/Sec&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top" width="199"&gt;FireWire 800&lt;/td&gt;&lt;td valign="top" width="199"&gt;98 MB/s&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top" width="199"&gt;SATA 150 (SATA I)&lt;/td&gt;&lt;td valign="top" width="199"&gt;150MB/s&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top" width="199"&gt;SATA 300 (SATA II)&lt;/td&gt;&lt;td valign="top" width="199"&gt;300 MB/s&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;There are other standards but within the realm of Lap Top and the one that can fit in your bag I have listed only the possible choices.&lt;/p&gt;&lt;h5&gt;How to connect?&lt;/h5&gt;&lt;p&gt;You will need an SATA port on your lap top. If if you have a lap top that is based on PCI Bus standard, then you are limited with buying a PCIMCIA card. The PCI Bus standard that is 32 bit cam support only SATA I/150 type . Due to the PCI Bus limitation, you will get maximum of 150MB/S support.&lt;/p&gt;&lt;p&gt;If you have the most recent lap top with an eSATA port, check the support. If the port is of type SATA I then you get only 150 MB/s and if the port is of type SATA II then you get 300 MB/s support.&lt;/p&gt;&lt;p&gt;If you have a lap top that do not have an eSATA port, then you may have an expressCard slot, then you can buy an expressCard SATA PCI card. These expressCARD SATA cards support SATA II , ie, 300 MB/s.&lt;/p&gt;&lt;p&gt;Then you will also need a eSATA cable to connect the SATA ports between the External Hard Drive and your Lap Top or the PCI card.&lt;/p&gt;&lt;p&gt;Watch out for the port types, there are “I” type and “L” type. You will need one end to match your external hard drive port and the PCI card or the Lap top SATA port.&lt;/p&gt;&lt;p&gt;Again watch out for the SATA cable type, there available both in SATA I and SATA II.&lt;/p&gt;&lt;h5&gt;What I did?&lt;/h5&gt;&lt;ul&gt;&lt;li&gt;I have old lap top with PCIMCIA slot. So my choice is to buy a MCIMCIA card. &lt;a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16839113007"&gt;Lantech card&lt;/a&gt; &lt;/li&gt;&lt;li&gt;At the time I shopped acomdata made better and cheaper eSata drives ( their case is made up of bamboo and aluminum). I bought &lt;a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16822216055"&gt;750GB USB2/FireWire 800/eSata II drive&lt;/a&gt; &lt;ul&gt;&lt;li&gt;Although at the present I have to stick with SATA I standard with my lap top, in future when I refresh my lap top then I can get double performance with SATA II port. &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Then I matched the port type, in my case both side happens to be I type, so bought an I type cable made by &lt;a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16812189150"&gt;LinkDepot&lt;/a&gt;. &lt;/li&gt;&lt;/ul&gt;&lt;h5&gt;What is the performance?&lt;/h5&gt;&lt;p&gt;Below is the comparison you can see the differences between an USB 2 and eSATA I&lt;/p&gt;&lt;table border="0" cellspacing="0" cellpadding="2" width="400"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td valign="top" width="200"&gt;USB2 (25MB/s)&lt;/td&gt;&lt;td valign="top" width="200"&gt;eSATA I (70 MB/s)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top" width="200"&gt;&lt;a href="http://lh3.ggpht.com/__-HvNNPF_6s/SoNHItLp2yI/AAAAAAAAC9A/SiNrKRuSVRM/s1600-h/image3%5B1%5D.png"&gt;&lt;img style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/__-HvNNPF_6s/SoNAqJnG4yI/AAAAAAAAC9E/OPCv752EdJA/image3_thumb.png?imgmax=800" width="443" height="358" /&gt;&lt;/a&gt; &lt;/td&gt;&lt;td valign="top" width="200"&gt;&lt;a href="http://lh4.ggpht.com/__-HvNNPF_6s/SoNAquK6EZI/AAAAAAAAC9M/K8uXZt9JsJE/s1600-h/image%5B1%5D.png"&gt;&lt;img style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/__-HvNNPF_6s/SoNArJx4gjI/AAAAAAAAC9U/MPayOJveLDY/image_thumb%5B1%5D.png?imgmax=800" width="455" height="368" /&gt;&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;Although the SATA I is supposed to be transferring up to 150MB/s, in reality I am getting 50% of the performance. Among all the research I have done, 50% performance seems be the case. &lt;/p&gt;&lt;p&gt;With the above setup I am finding that my VMs running off of VMWare workstation are satisfactory. Meaning you can get the machine started, shut down, coded, browsing, snapshoting, pausing , each taking few seconds to under a minute.&lt;/p&gt;&lt;p&gt;Happy VMing :-)&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4488134356468314016-7587547461934880931?l=rajeshagadi.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MyfindingsinMicrosoftworld/~4/MszvY50L4PI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rajeshagadi.blogspot.com/feeds/7587547461934880931/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4488134356468314016&amp;postID=7587547461934880931" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4488134356468314016/posts/default/7587547461934880931?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4488134356468314016/posts/default/7587547461934880931?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MyfindingsinMicrosoftworld/~3/MszvY50L4PI/improving-performance-of-virtual.html" title="Improving performance of Virtual Machines on Lap Top [Developer]" /><author><name>Rajesh Agadi</name><uri>http://www.blogger.com/profile/17908384970712474388</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://3.bp.blogspot.com/__-HvNNPF_6s/SuzadWw3wDI/AAAAAAAAEHw/UNJGp_Zugxc/S220/ProfilePicture.JPG" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh6.ggpht.com/__-HvNNPF_6s/SoNAqJnG4yI/AAAAAAAAC9E/OPCv752EdJA/s72-c/image3_thumb.png?imgmax=800" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://rajeshagadi.blogspot.com/2009/08/improving-performance-of-virtual.html</feedburner:origLink></entry></feed>

