<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>sharepointers</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/skelley/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/skelley/feed.xml</link>
    <description>microsoft sharepoint: 2010 tips and tricks</description>
    <lastBuildDate>Wed, 17 Apr 2019 03:27:18 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>Upgrading to 2010: Feature and WebPart Inventory Reports</title>
      <link>https://docs.microsoft.com/archive/blogs/skelley/upgrading-to-2010-feature-and-webpart-inventory-reports</link>
      <pubDate>Sun, 28 Nov 2010 19:38:00 GMT</pubDate>
      <dc:creator><![CDATA[mrsilver]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/skelley/2010/11/28/upgrading-to-2010-feature-and-webpart-inventory-reports/</guid>
      <description><![CDATA[I'm back with another post about Upgrading to SharePoint 2010. 
The stsadm -o preupgradecheck...]]></description>
      <content:encoded><![CDATA[<p class="ms-rteElement-P">I'm back with another post about Upgrading to SharePoint 2010. </p>
<p class="ms-rteElement-P">The stsadm -o preupgradecheck provides a wealth of information of a SharePoint deployment however this isn't always enough information. The preupgrade report includes the number of references to features and webparts but key information is missing.... where exactly are those features and webparts being used?<span style="font-size: x-small;"></span></p>
<p class="ms-rteElement-P">Features and webparts are core functionality to SharePoint but finding what 
sites are using them and where is often a tedious and time consuming process.</p>
<p class="ms-rteElement-P">Knowing this level of details allows for:</p>
<ul>
<li>Understanding the usage pattern of deployed webparts and features. Maybe some features are widely used while others are not used at all. It can be helpful for determining which items should be updated for 2010 and which can be considered for decommissioning.</li>
<li>Troubleshooting. Without knowing where and how these items are being used you cannot understand the potential implications of a broken feature / webpart.</li>
</ul>
<div class="ExternalClass965149CEA6FB4768B0DA76C1EB1A202F">
<p>I have created the following scripts which can be used to inventory locations and use of custom built, third party and out of box features and webparts. This information has proven very useful in upgrading our hosted Office 365 customers. The next sections will detail the scripts and how to run them and use the results, find the scripts attached to this post. </p>
<h2><b>Get-FeatureWebPartInventory.ps1<br /></b></h2>
<div>Run this script on a SharePoint 2007 or 2010 WFE to generate two reports 
containing:</div>
<ol>
<li>All environment features (Farm, Web Application, Site and Web scoped 
features) as well as the locations they are activated at. </li>
<li>All webparts being used in site collections and webs.</li>
</ol>
<h3>Requirements</h3>
<ul>
<li>SharePoint 2007&nbsp;<i>October 2009 CU</i> or SharePoint 2010</li>
<li>PowerShell V2
</li>
</ul>
<h3>Usage</h3>
<div>Copy the script it a web front end and run it. 
Depending on the size of the farm it can take hours to run. Under the covers it is utilizing the <b>stsadm -o enumallwebs -includefeatures -includewebparts</b> along with some additional logic to get all scoped features. When finished the 
generated CSV report locations (one for webparts and one for features) will be 
shown and you will be given the option to open them. <br /><br /><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/86/64/6813.1.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-86-64/6813.1.png" border="0" /><br /></div>
<h3>Analyzing Report Results</h3>
<div>The two reports are in a CSV format and I recommend using Excel 2010 x64 to do some 
analysis, as these files can be quite large. Here is a sample features report:<br /><br /></div>
<div><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/86/64/6787.2.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-86-64/6787.2.png" border="0" /><br /></div>
<div><br /><br />Create a pivot table for each data set in Excel and use that to do 
some analysis. The below window shows an example of referenced but missing 
webparts AND the site URLs that are affected. Only the GUIDs are provided 
in this case because SharePoint does not know what they are named.<br /><br /><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/86/64/0488.3.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-86-64/0488.3.png" border="0" /><br /><br /></div>
<div><br />By creating a pivot table you can see which Features are Installed or 
Missing, sort by the number of installs and view the actual URLs where these 
components are being used. The preupgradecheck report only shows the count of 
installs where as with these data sets you can see the affected URLs.<br /></div>
<div>&nbsp;</div>
<div>This information helps answer the commonly asked questions:</div>
<ul>
<li>What sites are using what features and webparts?</li>
<li>How wide spread is the use of a given feature or webpart? Very useful for 
determining customization decommission plans.</li>
<li>Are there any missing features / webparts? If so what site URLs?</li>
</ul>
<div>Webparts are different from features in that they live on specific pages. 
You may have the site URL that is using a webpart, but how do you find the exact 
pages the webpart is installed on? Check out the Find-WebPartPages.ps1 script below.</div>
<div><br /></div>
<h2>Find-WebPartPages.ps1</h2>
<div>Run this script on a SharePoint 2007 WFE to locate the actual page URLs 
where a webpart is installed. It also creates a CSV output report of the 
locations.</div>
<div><br /></div>
<div><b>Please Note: </b>This script directly queries the SharePoint content DBs which technically isn't supported however this is a read only query and it employs non-blocking techniques. It is recommended to copy your content to a staging location, test first and use at your own risk. <br /></div>
<h3>Requirements</h3>
<ul>
<li>SharePoint 2007 </li>
</ul>
<h3>Usage</h3>
<ul>
<li>Copy the script to a 2007 WFE</li>
<li>When prompted enter the Config db name, SQL server name and webpart GUID to 
locate</li>
</ul>
<div>This is an example of the report that is generated.<br /><br /><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/86/64/0654.4.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-86-64/0654.4.png" border="0" /><br /><br /></div>
<div>&nbsp;</div>
<div>You can use this information to navigate to the exact pages where a webpart 
is installed to verify if it is missing, broken or whatever your needs 
are. </div>
<div>
<p>I hope you find these scripts helpful!</p>
<p>-Sean</p>
<p>&nbsp;</p>
</div>
</div>
<h3><span style="font-size: x-small;">Disclaimer</span></h3>
<p>The sample script and data file described in this guide are not supported 
under any Microsoft standard support program or service. The sample script and 
data file are provided AS IS without warranty of any kind. Microsoft further 
disclaims all implied warranties including, without limitation, any implied 
warranties of merchantability or of fitness for a particular purpose. The entire 
risk arising out of the use or performance of the sample scripts and 
documentation remains with you. In no event shall Microsoft, its authors, or 
anyone else involved in the creation, production, or delivery of the scripts be 
liable for any damages whatsoever (including, without limitation, damages for 
loss of business profits, business interruption, loss of business information, 
or other pecuniary loss) arising out of the use of or inability to use the 
sample scripts or documentation, even if Microsoft has been advised of the 
possibility of such damages.</p>
<p>&nbsp;</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Components.PostAttachments/00/10/09/75/73/Feature_Webpart_Inventory_Finder_Scripts.zip" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-components-postattachments/00-10-09-75-73/Feature_5F00_Webpart_5F00_Inventory_5F00_Finder_5F00_Scripts.zip">Feature_Webpart_Inventory_Finder_Scripts.zip</a></p>]]></content:encoded>
    </item>
    <item>
      <title>It's been a while... I'm back with lots of SharePoint 2007 -&gt; 2010 upgrade tips and tricks</title>
      <link>https://docs.microsoft.com/archive/blogs/skelley/its-been-a-while-im-back-with-lots-of-sharepoint-2007-2010-upgrade-tips-and-tricks</link>
      <pubDate>Wed, 04 Aug 2010 02:38:00 GMT</pubDate>
      <dc:creator><![CDATA[mrsilver]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/skelley/2010/08/04/its-been-a-while-im-back-with-lots-of-sharepoint-2007-2010-upgrade-tips-and-tricks/</guid>
      <description><![CDATA[I&nbsp;haven't posted on this blog in quite a while but I plan to&nbsp;start adding some new...]]></description>
      <content:encoded><![CDATA[<p>I&nbsp;haven't posted on this blog in quite a while but I plan to&nbsp;start adding some new content.&nbsp;I've spent the last several months figuring out how to upgrade all of our&nbsp;hosted SharePoint&nbsp;customers, so in doing all that i have created lots of tools, scripts and notes to make the whole SharePoint 2007 to 2010 upgrade&nbsp;process easier</p>
<p>Let me start with a few quick nuggets about parallel DB upgrading. Of course if you consider SharePoint business critical at all then you'll want to perform some dry run tests of the entire upgrade process. A dry run is a test that simulates exactly what you will do on the day of the upgrade. This is to uncover all of the "surprises" you find when you upgrade to 2010... this of course can be anything from comestic issues to sites not rendering errors. Dry runs are critical to find specific issues in your environment and you will save yourself a lot of headache and pain if you test it out first.</p>
<p>If you have a SharePoint 2007 farm that you are looking to upgrade to SharePoint 2010 you should consider how large your farm is.&nbsp;Upgrade is a time consuming process. In our lab tests upgrading content&nbsp;DBs with about 100 GB of content (~250 site collection) took on average 4-5 hours.&nbsp;If you have lots of data and lots of databases this could be a very slow operation do one after the other. SharePoint allows for upgrading multiple content DBs in parallel. This allows the overall process of upgrading lots of DBs go much faster.</p>
<p>Some tips about upgrading multiple content DBs in parallel </p>
<ul>
<li>Perform perf testing / dry runs of upgrade to make sure you'll hit your SLA window. Hours? Days? Certainly something to consider and make sure you can meet. </li>
<li>Determine is the max SQL load / WFE capacity your hardware can support. In my testing we were able to upgrade 10 DBs simultanously per SQL instance, but after that the time to upgrade each additional database increased dramatically. 10 was our sweet spot. Also keep in mind that you can spread hte upgrade load across all of your SharePoint servers but upgrade is definitely a SQL intensive task.</li>
<li>Although you can perform a parallel upgrade, you need to attach content databases for upgrade with a delay. 30 seconds after another database upgrade has started seems to do the trick.</li>
<li>Create an automated way to kick off DB attaching for upgrade that you can use for dry runs and the production upgrade. This also&nbsp;eliminates typos from the attach process. I have some scripts that do this that I will share in a future post.</li>
</ul>
<p>OK thats it for now. Hope these tips help</p>]]></content:encoded>
    </item>
    <item>
      <title>office 2007 files in sharepoint v2 (the lurking danger and how to avoid it)</title>
      <link>https://docs.microsoft.com/archive/blogs/skelley/office-2007-files-in-sharepoint-v2-the-lurking-danger-and-how-to-avoid-it</link>
      <pubDate>Wed, 06 Feb 2008 18:03:00 GMT</pubDate>
      <dc:creator><![CDATA[seankell@microsoft.com]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/skelley/2008/02/06/office-2007-files-in-sharepoint-v2-the-lurking-danger-and-how-to-avoid-it/</guid>
      <description><![CDATA[first off, if you're using office 2007 file inside sharepoint v2 you need to read this post. there...]]></description>
      <content:encoded><![CDATA[<P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'">first off, if you're using office 2007 file inside sharepoint v2 you </SPAN><I><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-size: 11.0pt"><STRONG>need</STRONG></SPAN></I><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'"> to read this post. there are some very important things you need to be aware of.<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'">as some background, office 2007 introduced a new xml based file format for office documents. the&nbsp; new .doc</SPAN><B><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-size: 11.0pt">x</SPAN></B><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'">, .xls</SPAN><B><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-size: 11.0pt">x</SPAN></B><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'"> and .ppt</SPAN><B><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-size: 11.0pt">x</SPAN></B><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'"> files are actually all zip files containing several xml files which makeup the document and its styling. <o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'">want to see for yourself?<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'">try renaming one of those new files types with a .zip extension and you'll be able to look inside the file or extract it and examine all the xml documents. you'll see something like this:<o:p></o:p></SPAN></P>
<P><A href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/skelley/WindowsLiveWriter/MetadatawithOffice2007FilesinSharePointV_AB88/image_2.png" original-url="http://blogs.msdn.com/blogfiles/skelley/WindowsLiveWriter/MetadatawithOffice2007FilesinSharePointV_AB88/image_2.png" mce_href="http://blogs.msdn.com/blogfiles/skelley/WindowsLiveWriter/MetadatawithOffice2007FilesinSharePointV_AB88/image_2.png"><IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=184 alt=image src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/skelley/WindowsLiveWriter/MetadatawithOffice2007FilesinSharePointV_AB88/image_thumb.png" original-url="http://blogs.msdn.com/blogfiles/skelley/WindowsLiveWriter/MetadatawithOffice2007FilesinSharePointV_AB88/image_thumb.png" width=498 border=0 mce_src="http://blogs.msdn.com/blogfiles/skelley/WindowsLiveWriter/MetadatawithOffice2007FilesinSharePointV_AB88/image_thumb.png"></A>&nbsp;</P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'">getting back to sharepoint, microsoft released a <A href="http://support.microsoft.com/kb/936909"><SPAN style="COLOR: blue; mso-bidi-font-size: 11.0pt">kb article 939909</SPAN></A> with details around the support for office 2007 documents in sharepoint v2... but essentially it says they aren't supported. if you're using them, you need to be aware of the potential issue described in this post.<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'">sharepoint automatically stays in sync with office files and the metadata stored inside of them. when a change happens in either sharepoint or the file itself, a synchronization between the sources will occur. there are two terms used to describe this action:<o:p></o:p></SPAN></P>
<UL type=disc>
<LI class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo1; tab-stops: list .5in"><B><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-size: 11.0pt">demotion</SPAN></B><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'"> - term used to describe the act of sharepoint writing metadata into a document <o:p></o:p></SPAN></LI>
<LI class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo1; tab-stops: list .5in"><B><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-size: 11.0pt">promotion</SPAN></B><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'"> - term used to describe the act of a document writing metadata into sharepoint</SPAN></LI></UL>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo1; tab-stops: list .5in"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'">you can <A class="" href="http://msdn2.microsoft.com/en-us/library/aa979617.aspx" mce_href="http://msdn2.microsoft.com/en-us/library/aa979617.aspx">learn a bit</A> more about this whole promtion / demotion thing on <A class="" href="http://msdn2.microsoft.com/en-us/library/aa979617.aspx" mce_href="http://msdn2.microsoft.com/en-us/library/aa979617.aspx">msdn</A></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'">there is a metadata issue&nbsp;with this that affects&nbsp;both windows sharepoint services v2 and sharepoint portal server 2003. since sharepoint v2 is not aware of the office 2007 file format, it does not demote sharepoint metadata into the files, as it does with previous office formats. <o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'">so why does this matter to me?<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-outline-level: 4"><B><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'">scenario time:<o:p></o:p></SPAN></B></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'">let's say you have a sharepoint v2 document library with some required custom metadata fields, say&nbsp; "customer" and "business unit". when a new office 2007 document is created and saved back to sharepoint, a dialog will prompt the user to enter any required fields. <o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'">when entered, metadata will be saved back to sharepoint and displayed correctly in the library but the metadata is not demoted into the document.<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'">so what's the implications of that?<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'">well when sharepoint and a file are out of sync it can cause unexpected results and loss of metadata. a prime scenario for this is upgrading to sharepoint v3... metadata can and will be lost in that scenario. <o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'">the dangerous part is that metadata will have appeared to have been upgraded successfully, and will appear in sharepoint document libraries... however as soon as a document is modified in any way (as simple as edit &gt; ok) metadata will be reset to defaults, effectively losing all values. that's why if you aren't aware of this issue, it can be quite a confusing and potentially quite bad.</SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-outline-level: 4"><B><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'">safely upgrading from sharepoint v2 to sharepoint v3 with office 2007 files<o:p></o:p></SPAN></B></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'">if you have office 2007 files in sharepoint v2, you will need to upgrade from v2 &gt; v3 in a certain order and run a tool after the upgrade to fix the metadata relationships with their files. <BR><BR>the upgrade process will be:<o:p></o:p></SPAN></P>
<OL type=1>
<LI class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l2 level1 lfo2; tab-stops: list .5in"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'">run prescan on your v2 database(s) and fix any issues identified. <o:p></o:p></SPAN></LI>
<LI class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l2 level1 lfo2; tab-stops: list .5in"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'">disable any sybari / forefront scanning . <o:p></o:p></SPAN></LI>
<LI class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l2 level1 lfo2; tab-stops: list .5in"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'">attach your v2 database(s) to your v3 farm, upgrading them. <o:p></o:p></SPAN></LI>
<LI class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l2 level1 lfo2; tab-stops: list .5in"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'">after upgrading, run the <A href="http://blogs.msdn.com/skelley/attachment/7500563.ashx"><SPAN style="COLOR: blue; mso-bidi-font-size: 11.0pt">metadata_refresher tool</SPAN></A> below to sync any office 2007 documents with their metadata. <BR><BR></SPAN><B><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-size: 11.0pt">note:</SPAN></B><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'"> modifying documents and/or their metadata in any way before running the refresh tool will cause metadata loss. the metadata will be reset to default values, so ensure this tool (or something like it) is run immediately after upgrades to v3 have completed.<o:p></o:p></SPAN></LI></OL>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-outline-level: 4"><B><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'">metadata refresher tool<o:p></o:p></SPAN></B></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'">the source code <A href="http://blogs.msdn.com/skelley/attachment/7500563.ashx"><SPAN style="COLOR: blue; mso-bidi-font-size: 11.0pt">attached to this post</SPAN></A> contains an application which can correct the metadata sync issue. two things to note:<o:p></o:p></SPAN></P>
<OL type=1>
<LI class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level1 lfo3; tab-stops: list .5in"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'">only the most recent version of files will be corrected. <o:p></o:p></SPAN></LI>
<LI class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level1 lfo3; tab-stops: list .5in"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'">any documents which are linked copies will be skipped to avoid breaking the relationship but these can be located in "scan mode". <o:p></o:p></SPAN></LI></OL>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'">see the readme.txt file for details on usage.<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><B><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-size: 11.0pt">disclaimer: </SPAN></B><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'">while this code has been tested and proven to work, anyone considering its use should test and validate in their own test environments before attempting to use on any type of production server/data. the code is provided as is, with no warranty of any kind and confers no rights.</SPAN></P>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Components.PostAttachments/00/07/50/05/63/metadata_refresher.zip" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-components-postattachments/00-07-50-05-63/metadata_5F00_refresher.zip">metadata_refresher.zip</a></p>]]></content:encoded>
    </item>
    <item>
      <title>codeplex + copytimer = sptoolbox</title>
      <link>https://docs.microsoft.com/archive/blogs/skelley/codeplex-copytimer-sptoolbox</link>
      <pubDate>Tue, 13 Nov 2007 17:43:00 GMT</pubDate>
      <dc:creator><![CDATA[seankell@microsoft.com]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/skelley/2007/11/13/codeplex-copytimer-sptoolbox/</guid>
      <description><![CDATA[it's been a while since my last post... i've been busy working on some creating a sharepoint metrics...]]></description>
      <content:encoded><![CDATA[<P><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'">it's been a while since my last post... i've been busy working on some creating a sharepoint metrics repository for our <A href="http://www.microsoft.com/online/bpi/default.mspx"><FONT color=#0000ff>hosted sharepoint customers</FONT></A>. i'll talk about that a bit more in a future post. ;)<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></SPAN></P>
<P><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'">today i'd like to announce the release of an internal tool for measuring sharepoint performance called <A href="https://www.codeplex.com/Release/ProjectReleases.aspx?ProjectName=sptoolbox&amp;ReleaseId=8366"><FONT color=#0000ff>copytimer</FONT></A>. <o:p></o:p></SPAN></P>
<P><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"><A href="https://www.codeplex.com/Release/ProjectReleases.aspx?ProjectName=sptoolbox&amp;ReleaseId=8366" mce_href="https://www.codeplex.com/Release/ProjectReleases.aspx?ProjectName=sptoolbox&amp;ReleaseId=8366"><FONT color=#0000ff>copytimer</FONT></A> will be one of many releases tracked in a new site for sharepoint tools and utilities at:<o:p></o:p></SPAN></P>
<P><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"><A title=http://www.codeplex.com/sptoolbox href="http://www.codeplex.com/sptoolbox" mce_href="http://www.codeplex.com/sptoolbox">http://www.codeplex.com/sptoolbox</A><o:p></o:p></SPAN></P>
<P><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'">this codeplex site will contain various tools for sharepoint developed by my team (msit / sharepoint online services group), the sharepoint product group, as well as sharepoint rangers and mvps.<o:p></o:p></SPAN></P>
<P><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'">the first item added to the toolbox is called <A href="https://www.codeplex.com/Release/ProjectReleases.aspx?ProjectName=sptoolbox&amp;ReleaseId=8366"><FONT color=#0000ff>copytimer</FONT></A>. this is a standalone application which measures sharepoint performance by timing the downloads/uploads of files to a sharepoint site. it then records how long the operations took along with a bunch of information about the client system like latency, ethernet adapter, ip address, etc...<o:p></o:p></SPAN></P>
<P><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'">the best part about the tool is it can be run from any windows client which has access to the sharepoint site being tested, as it uses the webdav protocol for file transfers... nothing is object model. special thanks to sean livingston for creating the original version and working out many of the tricky details for uploading to sharepoint thru webdav.<o:p></o:p></SPAN></P>
<P><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'">internally at microsoft, we've used copytimer for future planning and architecture design as well as monitoring and measuring the overall performance of our sharepoint environment.<o:p></o:p></SPAN></P>
<P><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'">you can download the latest release of copytimer here:<o:p></o:p></SPAN></P>
<P><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"><A title=https://www.codeplex.com/Release/ProjectReleases.aspx?ProjectName=sptoolbox&amp;ReleaseId=8366 href="https://www.codeplex.com/Release/ProjectReleases.aspx?ProjectName=sptoolbox&amp;ReleaseId=8366" mce_href="https://www.codeplex.com/Release/ProjectReleases.aspx?ProjectName=sptoolbox&amp;ReleaseId=8366"><FONT color=#0000ff>https://www.codeplex.com/release/projectreleases.aspx?projectname=sptoolbox&amp;releaseid=8366</FONT></A><o:p></o:p></SPAN></P>
<P><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'">here are a few screen shots, because what good is an app without screenshots ;)<o:p></o:p></SPAN></P>
<P><A href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/skelley/WindowsLiveWriter/CopyTimerCodePlexSPToolbox_CB78/cmd_2.png" original-url="http://blogs.msdn.com/blogfiles/skelley/WindowsLiveWriter/CopyTimerCodePlexSPToolbox_CB78/cmd_2.png" mce_href="http://blogs.msdn.com/blogfiles/skelley/WindowsLiveWriter/CopyTimerCodePlexSPToolbox_CB78/cmd_2.png"><IMG style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=412 alt=cmd src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/skelley/WindowsLiveWriter/CopyTimerCodePlexSPToolbox_CB78/cmd_thumb.png" original-url="http://blogs.msdn.com/blogfiles/skelley/WindowsLiveWriter/CopyTimerCodePlexSPToolbox_CB78/cmd_thumb.png" width=675 border=0 mce_src="http://blogs.msdn.com/blogfiles/skelley/WindowsLiveWriter/CopyTimerCodePlexSPToolbox_CB78/cmd_thumb.png"></A></P>
<P><A href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/skelley/WindowsLiveWriter/CopyTimerCodePlexSPToolbox_CB78/results_2.png" original-url="http://blogs.msdn.com/blogfiles/skelley/WindowsLiveWriter/CopyTimerCodePlexSPToolbox_CB78/results_2.png" mce_href="http://blogs.msdn.com/blogfiles/skelley/WindowsLiveWriter/CopyTimerCodePlexSPToolbox_CB78/results_2.png"><IMG style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=133 alt=results src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/skelley/WindowsLiveWriter/CopyTimerCodePlexSPToolbox_CB78/results_thumb.png" original-url="http://blogs.msdn.com/blogfiles/skelley/WindowsLiveWriter/CopyTimerCodePlexSPToolbox_CB78/results_thumb.png" width=644 border=0 mce_src="http://blogs.msdn.com/blogfiles/skelley/WindowsLiveWriter/CopyTimerCodePlexSPToolbox_CB78/results_thumb.png"></A> </P>
<P>and here's some examples of what you can do with data from copytimer in excel:</P>
<P><A href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/skelley/WindowsLiveWriter/CopyTimerCodePlexSPToolbox_CB78/results_excel_2.png" original-url="http://blogs.msdn.com/blogfiles/skelley/WindowsLiveWriter/CopyTimerCodePlexSPToolbox_CB78/results_excel_2.png" mce_href="http://blogs.msdn.com/blogfiles/skelley/WindowsLiveWriter/CopyTimerCodePlexSPToolbox_CB78/results_excel_2.png"><IMG style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=183 alt=results_excel src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/skelley/WindowsLiveWriter/CopyTimerCodePlexSPToolbox_CB78/results_excel_thumb.png" original-url="http://blogs.msdn.com/blogfiles/skelley/WindowsLiveWriter/CopyTimerCodePlexSPToolbox_CB78/results_excel_thumb.png" width=354 border=0 mce_src="http://blogs.msdn.com/blogfiles/skelley/WindowsLiveWriter/CopyTimerCodePlexSPToolbox_CB78/results_excel_thumb.png"></A> </P>
<P><A href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/skelley/WindowsLiveWriter/CopyTimerCodePlexSPToolbox_CB78/results_excel2_2.png" original-url="http://blogs.msdn.com/blogfiles/skelley/WindowsLiveWriter/CopyTimerCodePlexSPToolbox_CB78/results_excel2_2.png" mce_href="http://blogs.msdn.com/blogfiles/skelley/WindowsLiveWriter/CopyTimerCodePlexSPToolbox_CB78/results_excel2_2.png"><IMG style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=282 alt=results_excel2 src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/skelley/WindowsLiveWriter/CopyTimerCodePlexSPToolbox_CB78/results_excel2_thumb.png" original-url="http://blogs.msdn.com/blogfiles/skelley/WindowsLiveWriter/CopyTimerCodePlexSPToolbox_CB78/results_excel2_thumb.png" width=404 border=0 mce_src="http://blogs.msdn.com/blogfiles/skelley/WindowsLiveWriter/CopyTimerCodePlexSPToolbox_CB78/results_excel2_thumb.png"></A> </P>
<P>enjoy!</P>]]></content:encoded>
    </item>
    <item>
      <title>sending email to sharepoint</title>
      <link>https://docs.microsoft.com/archive/blogs/skelley/sending-email-to-sharepoint</link>
      <pubDate>Wed, 22 Aug 2007 04:33:11 GMT</pubDate>
      <dc:creator><![CDATA[seankell@microsoft.com]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/skelley/2007/08/22/sending-email-to-sharepoint/</guid>
      <description><![CDATA[sharepoint v3 has the new&nbsp;feature of sending email to sharepoint lists.  cool right? there is...]]></description>
      <content:encoded><![CDATA[<p>sharepoint v3 has the new&nbsp;feature of sending email to sharepoint lists. </p> <p>cool right?</p> <p>there is even&nbsp;a built in sharepoint&nbsp;list template called "discussion boards" which is ideal for incoming emails, and acts as a threading tool for grouping messages together.</p> <p>&lt;soon i'll insert an image of a discussion board list&gt;</p> <p>this is handy for a lot of reasons but one potential usage of emailing to sharepoint could be&nbsp;archival storage of team discussion groups or Discussion Groups / Security Groups (DGs / SGs). </p> <p>to setup DG archiving to sharepoint, here is a quick overview of what you'll have to do:&nbsp;</p> <ul> <li>install windows smtp server component in the control panel on your sharepoint web front ends&nbsp;(not installed by default)  <li>next, enable incoming email in sharepoint central admin &gt; operations &gt; incoming email settings  <ul> <li>configure settings as per your environment </li></ul> <li>create&nbsp;the sharepoint&nbsp;list for incoming email  <ul> <li>when creating the list be sure to check the "allow incoming email" box</li></ul> <li>get the list's email address. it'll be something like <a href="mailto:listname@sharepointfarm.yourcompany.com">listname@sharepointfarm.yourcompany.com</a>  <li>create a new AD contact object  <ul> <li>set the SMTP address of the contact object to the above email address</li></ul> <li>add this contact object to the DG / SG as a member&nbsp;and all future emails will be distributed to sharepoint as well</li></ul> <p>pretty sweet right? this can all be automated as well with some not too complex&nbsp;code.</p> <p>now before you start going email crazy there's&nbsp;a couple of concerns to consider first.</p> <p>lists in sharepoint are supposed to remain under 2,000 items (being returned to the view). you'll need to consider that you'll likely hit this limitation quickly, as some email DGs can get more 2,000 mail items in only a few days (or less). </p> <p>ok fine.. i'll admit it...</p> <p>in sharepoint technically <em>you can have</em> more than 2,000 items in a list...&nbsp;you could even&nbsp;have millions.&nbsp;</p> <p>the key is that you need&nbsp;to ensure that the view you are using for displaying the list, is not returning any more than 2,000 items. </p> <p>as an example, setup the default view of a list to filter&nbsp;for the last 7 days or something which you know will always have a result set of under 2,000 items. the rest of the items can be found by searching, which is likely what people will do anyway. whose gonna browse a list of thousands of items? </p> <p>so that is one consideration. ensuring there are default views which limit the items displayed&nbsp;for all email enabled lists.</p> <p>another issue is storage. most companies have lots of DGs and if all of a sudden they're going to sharepoint you'll&nbsp;run out of storage&nbsp;the first day!</p> <p>that's why you'd need&nbsp;to figure out a rollout plan. slowly scale up and watch how much space is needed. </p> <p>of course, this should all be tested in a lab first too, to get some ballpark estimates of how much space is required for 1 email message, how many messages sent on average per day to this DG, etc...</p> <p>hey sean, what about legal ramifications? </p> <p>many companies are starting to adopt (or have already) some type of retention period setting for old emails. lawyers don't want any extra documents around that could be used against the company as soon as they become inadmissible in court. i think emails minimum&nbsp;retention period are 1 year (unless its business critical)&nbsp;but i'm not a lawyer, and that depends on your organization.</p> <p>the bottom line is, you're gonna want to consult your companies'&nbsp;lawyers and find out what their policy is. sharepoint allows you to set policies on sites&nbsp;to expire content after a certain period of time so that is pretty much exactly what you'll need. </p> <p>now you could do this for every site collection programmatically, but what if&nbsp;admins of the site just go in there and turn of the policy? </p> <p>so are you going to run this policy setting application nightly on a timer to always ensure all sites have the correct settings?</p> <p>another whole issue to deal with.</p> <p>there are plenty of things to think about, but sending email to sharepoint is a really cool feature and i imagine this will only gain popularity in the future.</p> <p>in a future post&nbsp;(and my team's upcoming book <strong>MOSS for Architects and Engineers</strong>) i'll cover some more in depth / best practice configuration settings for exchange and sharepoint to get incoming email to sharepoint working.</p> <p>-sean</p>]]></content:encoded>
    </item>
    <item>
      <title>stsadm import / export missing content</title>
      <link>https://docs.microsoft.com/archive/blogs/skelley/stsadm-import-export-missing-content</link>
      <pubDate>Thu, 12 Jul 2007 14:52:00 GMT</pubDate>
      <dc:creator><![CDATA[seankell@microsoft.com]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/skelley/2007/07/12/stsadm-import-export-missing-content/</guid>
      <description><![CDATA[in sharepoint v3, the tool&nbsp;stsadm has an operation for importing and exporting sites and/or...]]></description>
      <content:encoded><![CDATA[<p>in sharepoint v3, the tool&nbsp;stsadm has an operation for importing and exporting sites and/or webs. it is the replacement for smigrate from v2.</p> <p>so say you want to move a web to a different site collection, you would need to use this tool.</p> <p><strike>unfortunately there seems to be a bug in the import / export operations. </strike></p> <p><strike>it's a rather nasty bug too that will move most of your content but not everything, making it extremely difficult to detect.</strike></p> <p><strike>for example you might have a document library with 20 files but only 5 of them get moved, all without any obvious notices in the log files.</strike></p> <p><strike>the only way you would even know that it was not a complete import is if you knew the contents you were expecting to show up.</strike></p> <p><br></p> <p>when exporting content you should use the following switches:</p> <p><b>stsadm -o export -url &lt;url&gt; -filename &lt;filename&gt; -includeusersecurity -versions 4</b></p> <p>when importing that content you should try using:</p> <p><b>stsadm -o import -url &lt;url&gt; -filename &lt;filename&gt; -includeusersecurity</b></p><p>&nbsp;</p><p>this has worked for me and my export / imports have&nbsp;been much more successful then without those switches, but you should still try to&nbsp;verify this for yourself as well.</p> <p>if you're simply move a site collection to a different location you can use stsadm backup / restore which seems to be a little bit more reliable at this point.</p> <p><strike>a bug has been filed for this problem&nbsp;and&nbsp;the wheels are in motion to help fix this thing </strike></p><p><b>UPDATE: </b>apparently this is not a bug and is by design. if there are documents which are not a published major version or draft copies, they will not be backed up unless you use the -versions 4 switch. it's likely that in almost all cases you will want to use this switch to ensure all content is migrated.<br></p>]]></content:encoded>
    </item>
    <item>
      <title>enabling external rss feeds</title>
      <link>https://docs.microsoft.com/archive/blogs/skelley/enabling-external-rss-feeds</link>
      <pubDate>Wed, 27 Jun 2007 14:00:00 GMT</pubDate>
      <dc:creator><![CDATA[seankell@microsoft.com]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/skelley/2007/06/27/enabling-external-rss-feeds/</guid>
      <description><![CDATA[sharepoint v3 has the nice ability to display rss feeds via web parts... but there is a potential...]]></description>
      <content:encoded><![CDATA[<P>sharepoint v3 has the nice ability to display rss feeds via web parts... but there is a potential problem</P>
<P>most rss feeds people care about are external, meaning outside the company's intranet.</P>
<P>in order to allow your sharepoint server external access you may have to add a proxy for iis so it can reach the outside internet.</P>
<P>to do this you must edit the web.config file for the appropriate virtual server.</P>
<P><STRONG>warning</STRONG>: make a backup of your web.config before modifying</P>
<P>add this line toward the bottom of your web.config, but before the closing &lt;/configuration&gt;. also you should probably do a CTRL+F and look for the word proxy in your web.config... you want to make sure if you already have settings in there that they don't conflict.</P>
<P class=MsoPlainText style="MARGIN: 0in 0in 0pt"><FONT size=3><FONT face=Consolas><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>&lt;system.net&gt;<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></FONT></FONT></P>
<P class=MsoPlainText style="MARGIN: 0in 0in 0pt"><FONT size=3><FONT face=Consolas><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>&lt;defaultProxy&gt;<o:p></o:p></FONT></FONT></P>
<P class=MsoPlainText style="MARGIN: 0in 0in 0pt"><FONT size=3><FONT face=Consolas><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>&lt;proxy usesystemdefault="false" proxyaddress="<A href="http://yourproxyhere/" mce_href="http://yourproxyhere/">http://yourproxyhere</A>" bypassonlocal="true" /&gt;<o:p></o:p></FONT></FONT></P>
<P class=MsoPlainText style="MARGIN: 0in 0in 0pt"><FONT size=3><FONT face=Consolas><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>&lt;/defaultProxy&gt;<o:p></o:p></FONT></FONT></P>
<P class=MsoPlainText style="MARGIN: 0in 0in 0pt"><FONT size=3><FONT face=Consolas><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>&lt;/system.net&gt;<o:p></o:p></FONT></FONT></P>
<P>this should not require a restart of iis.... iis will pickup on the change automatically. try that apache. ;)</P>
<P mce_keep="true">&nbsp;</P>]]></content:encoded>
    </item>
    <item>
      <title>sharepoint terminology defined</title>
      <link>https://docs.microsoft.com/archive/blogs/skelley/sharepoint-terminology-defined</link>
      <pubDate>Sun, 24 Jun 2007 16:16:00 GMT</pubDate>
      <dc:creator><![CDATA[seankell@microsoft.com]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/skelley/2007/06/24/sharepoint-terminology-defined/</guid>
      <description><![CDATA[in sharepoint there are a lot of terms that may be confusing to new sharepoint admins, or even to...]]></description>
      <content:encoded><![CDATA[<P>in sharepoint there are a lot of terms that may be confusing to new sharepoint admins, or even to existing ones. </P>
<P>since a lot of the words have other meanings than what sharepoint uses them for, it can be a bit tricky. i know when i was starting out with sharepoint i was very confused for a while because of the ambiguity of the words</P>
<P>so let's take it from the top:</P>
<P><STRONG>wss&nbsp;/ windows sharepoint services</STRONG> - &nbsp;this is a free product from microsoft (comes with windows server). it gives you all the basic functionality of sharepoint including document libraries, lists, even things like email integration.</P>
<P><STRONG>moss&nbsp;/ microsoft office sharepoint server</STRONG> -&nbsp;this is an add-on to wss which gives some very cool additional features. some examples are excel services, infopath forms server,&nbsp;ecm&nbsp;(enterprise content management)&nbsp;and moss enterprise search. this is not free. </P>
<P>also you can't just install moss... moss is built on top of wss, so wss is a prerequisite. </P>
<P><STRONG>web application / web app</STRONG>&nbsp;- also known as a virtual server (in sharepoint v2) and an web site / application pool (in iis), web apps allow for&nbsp;logical separation of sharepoint content. each web app runs under a different process on the iis web&nbsp;server.</P>
<P>two examples of different web apps&nbsp;are the central administrator site which runs on an arbitrary port&nbsp;number&nbsp;and then standard sharepoint sites which typically run on port 80. they both run under separate processes in iis.</P>
<P><STRONG>site collection</STRONG> <STRONG>/ top level site / parent site / spsite</STRONG>&nbsp;- a site collection is a web site that can contain sub-sites (aka webs), which all share the same owner and administrators of the <STRONG>top level site collection</STRONG>.</P>
<P>a site collection controls global settings that sub-sites underneath it inherit. settings can include permissions, storage quotas, and themes, etc...</P>
<P><STRONG>webs / sub-sites / spweb</STRONG>&nbsp;- these are web sites that live underneath a site collection. these are almost the same thing as a site collection but the difference is the global settings that are applied from the site collection. </P>
<P>webs can have their own independent settings separate from its parent site collection, but it makes it a bit easier to manage for the owner of the site, that's the idea here.</P>
<P><STRONG>lists</STRONG> - a list is a generic term used to define the different places to store content in a sharepoint site. some built in lists are document libraries (upload and share word docs), picture libraries (upload pics), and custom lists where you define what you want to store. </P>
<P>scenario time!</P>
<P>ok lets discuss one potential way to set up a sharepoint site.</P>
<P>imagine a organization of 60 people, and then 3 sub-teams of 20 people each. </P>
<P>a potential structure of the team's sharepoint site is a <STRONG>site collection</STRONG> that contains information for all 60 people (ie vacation calendars for the whole team). </P>
<P>then each of the 3 teams could have their own <STRONG>webs</STRONG>, for the smaller teams, which contain all the documents relative to each team. </P>
<P>the url structure could look like:</P>
<UL>
<LI><A href="http://sharepoint/sites/orgsite/" mce_href="http://sharepoint/sites/orgsite/">http://sharepoint/sites/orgsite/</A></LI>
<LI><A href="http://sharepoint/sites/thetol" mce_href="http://sharepoint/sites/thetol"><A href="http://sharepoint/sites/orgsite/team1site/" mce_href="http://sharepoint/sites/orgsite/team1site/">http://sharepoint/sites/orgsite/team1site/</A></A></LI>
<LI><A href="http://sharepoint/sites/thetol" mce_href="http://sharepoint/sites/thetol"><A href="http://sharepoint/sites/orgsite/team2site/" mce_href="http://sharepoint/sites/orgsite/team2site/">http://sharepoint/sites/orgsite/team2site/</A></A></LI>
<LI><A href="http://sharepoint/sites/orgsite/team3site/" mce_href="http://sharepoint/sites/orgsite/team3site/">http://sharepoint/sites/orgsite/team3site/</A></LI></UL>
<P>in this example <STRONG>orgsite</STRONG> is the site collection and <STRONG>team1site</STRONG>, <STRONG>team2site</STRONG>, <STRONG>team3site</STRONG> are the webs.</P>
<P>a picture is worth a thousand words so in my next post i will include some diagrams to better show the relationships.</P>]]></content:encoded>
    </item>
    <item>
      <title>sharepoint alerts: how to repair them after a web app move</title>
      <link>https://docs.microsoft.com/archive/blogs/skelley/sharepoint-alerts-how-to-repair-them-after-a-web-app-move</link>
      <pubDate>Mon, 18 Jun 2007 16:53:00 GMT</pubDate>
      <dc:creator><![CDATA[seankell@microsoft.com]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/skelley/2007/06/18/sharepoint-alerts-how-to-repair-them-after-a-web-app-move/</guid>
      <description><![CDATA[this past weekend we&nbsp;had a sharepoint&nbsp;farm where we needed to detach the databases and...]]></description>
      <content:encoded><![CDATA[<p>this past weekend we&nbsp;had a sharepoint&nbsp;farm where we needed to detach the databases and reattach them to a different web application. </p> <p>this can break a lot of things, <a href="http://blogs.msdn.com/mikewat" mce_href="http://blogs.msdn.com/mikewat">dr watson</a> has a <a href="http://blogs.msdn.com/mikewat/archive/2007/06/18/moving-databases-between-web-apps.aspx" mce_href="http://blogs.msdn.com/mikewat/archive/2007/06/18/moving-databases-between-web-apps.aspx">good list of some of them</a>.</p> <p>i'm going to focus on alerts and how to fix them (yep they break)</p> <p>first of all there is a nice chunk of sample code to help fix this but its incomplete:</p> <p><a href="http://support.microsoft.com/default.aspx?scid=kb;en-us;936759" title="http://support.microsoft.com/default.aspx?scid=kb;en-us;936759" mce_href="http://support.microsoft.com/default.aspx?scid=kb;en-us;936759">http://support.microsoft.com/default.aspx?scid=kb;en-us;936759</a></p> <p>here's the piece of code we care about:</p> <table unselectable="on" bgcolor="white" border="1" cellpadding="10" width="576"> <tbody> <tr> <td color="black" width="574"><pre class="code"><span><font color="#0000ff">try</font><br></span><font color="#000000">{<br>    alert.Update();<br>    </font><font color="#000000"><span style="color: rgb(0, 128, 0);">//Change the Alert frequency back to the initial state.<br></span>    alert.AlertFrequency = afPrevious;<br>    alert.Update();<br>}<br><span style="color: rgb(0, 0, 255);">catch</span> (<span style="color: rgb(43, 145, 175);">Exception</span> ex)<br>{<br>    <span style="color: rgb(43, 145, 175);">Console</span>.WriteLine(<span style="color: rgb(163, 21, 21);">" -&gt; Error changing Alert. {0}"</span>, ex.Message);<br>} <span style="color: rgb(0, 128, 0);">// inner try</span></font><font size="2"></font></pre></td></tr></tbody></table>
<p>basically all they're doing is changing a value in the alert, updating it, and then putting the value back to what it was.</p>
<p>what this essentially does is update a hard coded value called <b>siteurl</b> in the alerts table.</p>
<p>this works, kinda</p>
<p>the alerts will be sent out but the contents of the alerts will be referencing old links</p>
<p>that's bad news. <img src="http://spaces.live.com/rte/emoticons/heart_broken.gif" alt="heart_broken" mce_src="http://spaces.live.com/rte/emoticons/heart_broken.gif" align="absbottom"></p>
<p>so how do we fix it? </p>
<p>well lets start with the content&nbsp;database tables that deal with alerts:</p>
<table unselectable="on" color="black" bgcolor="white" border="0" cellspacing="4" width="469">
<tbody>
<tr>
<td valign="top" width="162"><font color="#000000"><b>immedsubscriptions</b></font></td>
<td valign="top" width="293"><font color="#000000">contains immediate alerts</font></td></tr>
<tr>
<td valign="top" width="163"><font color="#000000"><b>schedsubscriptions</b></font></td>
<td valign="top" width="293"><font color="#000000">contains all other alerts (daily, weekly, etc)</font></td></tr></tbody></table>
<p>ok so lets have a look there</p>
<table unselectable="on" color="black" bgcolor="white" border="0" cellpadding="4" cellspacing="4" width="292">
<tbody>
<tr>
<td valign="top" width="282"><font color="#000000">select&nbsp;top 20 * from immedsubscriptions<br>select top 20 * from schedsubscriptions</font></td></tr></tbody></table>
<p>hmmm the column called properties seems to have some hard coded urls...</p>
<p>(click to enlarge)</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/skelley/WindowsLiveWriter/alerts_C365/selectprops_2.png" original-url="http://blogs.msdn.com/blogfiles/skelley/WindowsLiveWriter/alerts_C365/selectprops_2.png" mce_href="http://blogs.msdn.com/blogfiles/skelley/WindowsLiveWriter/alerts_C365/selectprops_2.png" atomicselection="true"><img src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/skelley/WindowsLiveWriter/alerts_C365/selectprops_thumb_2.png" original-url="http://blogs.msdn.com/blogfiles/skelley/WindowsLiveWriter/alerts_C365/selectprops_thumb_2.png" style="border-width: 0px;" alt="selectprops" mce_src="http://blogs.msdn.com/blogfiles/skelley/WindowsLiveWriter/alerts_C365/selectprops_thumb_2.png" border="0" height="233" width="601"></a> </p>
<p>pretty strange since there is another field in that table called <b>siteurl </b></p>
<p>(fyi&nbsp;updating the <b>siteurl</b> in these tables is what the microsoft supplied&nbsp;sample code fixes)... </p>
<p>so&nbsp;why not just use that <b>siteurl</b>&nbsp;as the url&nbsp;in <b>properties</b> instead of hard coding it?&nbsp;</p>
<p>no clue but they probably had a good reason. <img src="http://spaces.live.com/rte/emoticons/fingerscrossed.gif" alt="fingerscrossed" mce_src="http://spaces.live.com/rte/emoticons/fingerscrossed.gif"></p>
<p>anyways now we have to see whats in that bag... the property bag.</p>
<table unselectable="on" bgcolor="white" border="1" cellpadding="10" width="100%">
<tbody>
<tr>
<td><pre class="code"><font color="#000000"><span style="color: rgb(0, 0, 255);">string</span> oldurl = "<span style="color: rgb(163, 21, 21);">http://myoldwebapp</span>"; <br><span style="color: rgb(0, 0, 255);">string</span> newurl = "<span style="color: rgb(163, 21, 21);">http://mynewwebapp</span>";</font></pre><a href="http://11011.net/software/vspaste" mce_href="http://11011.net/software/vspaste"></a><pre class="code"><font color="#000000">SPPropertyBag spprop = alert.Properties;<br><br><span style="color: rgb(0, 0, 255);">if</span> (spprop[<span style="color: rgb(163, 21, 21);">"siteurl"</span>] != <span style="color: rgb(0, 0, 255);">null</span>)  </font><font color="#000000"><span style="color: rgb(0, 128, 0);">//fix hard coded properties<br></span>{<br>    </font><font color="#000000"><span style="color: rgb(0, 128, 0);">//Console.WriteLine("pre alert site url: " + spprop["siteurl"].ToString());<br></span>    <span style="color: rgb(0, 0, 255);">if</span>(spprop[<span style="color: rgb(163, 21, 21);">"siteurl"</span>].Contains(oldurl))  </font><font color="#000000"><span style="color: rgb(0, 128, 0);">//found old link reference/<br></span>    {<br>        spprop[<span style="color: rgb(163, 21, 21);">"siteurl"</span>] = spprop[<span style="color: rgb(163, 21, 21);">"siteurl"</span>].Replace(oldurl, newurl);<br>        </font><font color="#000000"><span style="color: rgb(0, 128, 0);">//Console.WriteLine("post alert site url: " + spprop["siteurl"].ToString());<br></span>        <span style="color: rgb(43, 145, 175);">Console</span>.WriteLine(<span style="color: rgb(163, 21, 21);">"Updated siteurl in properties"</span>);<br>        countsiteurlprop++;<br>        spprop.Update();<br>    }<br>}<br><br><span style="color: rgb(0, 0, 255);">if</span> (spprop[<span style="color: rgb(163, 21, 21);">"mobileurl"</span>] != <span style="color: rgb(0, 0, 255);">null</span>)<br>{<br>    </font><font color="#000000"><span style="color: rgb(0, 128, 0);">//Console.WriteLine("alert mobile url: " + spprop["mobileurl"].ToString());<br><br></span>    <span style="color: rgb(0, 0, 255);">if</span> (spprop[<span style="color: rgb(163, 21, 21);">"mobileurl"</span>].Contains(oldurl))  </font><font color="#000000"><span style="color: rgb(0, 128, 0);">//found old link reference/<br></span>    {<br>        spprop[<span style="color: rgb(163, 21, 21);">"mobileurl"</span>] = spprop[<span style="color: rgb(163, 21, 21);">"mobileurl"</span>].Replace(oldurl, newurl);<br>        <span style="color: rgb(43, 145, 175);">Console</span>.WriteLine(<span style="color: rgb(163, 21, 21);">"Updated mobileurl in properties"</span>);<br>        countmobileurlprop++;<br>        spprop.Update();<br>    }<br>}</font></pre><a href="http://11011.net/software/vspaste" mce_href="http://11011.net/software/vspaste"></a></td></tr></tbody></table>
<p>how did i know to look there? (i'm sleeping with the property bag lady)</p>
<p>just kidding, it took a bit of tinkering considering that the <b>properties</b> field&nbsp;is not directly writable from an alerts object:</p>
<p><b>SPAlert Properties</b></p>
<p><a href="http://msdn2.microsoft.com/microsoft.sharepoint.spalert.properties.aspx" mce_href="http://msdn2.microsoft.com/microsoft.sharepoint.spalert.properties.aspx">Properties</a>&nbsp;Gets the properties of the alert. </p>
<p><a href="http://msdn2.microsoft.com/en-us/library/microsoft.sharepoint.spalert_properties.aspx" title="http://msdn2.microsoft.com/en-us/library/microsoft.sharepoint.spalert_properties.aspx" mce_href="http://msdn2.microsoft.com/en-us/library/microsoft.sharepoint.spalert_properties.aspx">http://msdn2.microsoft.com/en-us/library/microsoft.sharepoint.spalert_properties.aspx</a></p>
<p>if you want to set the alert, you must use the property bag. 
</p><p>this concludes how to fix alerts after a webapp move. i hope you like.</p>]]></content:encoded>
    </item>
    <item>
      <title>welcome</title>
      <link>https://docs.microsoft.com/archive/blogs/skelley/welcome</link>
      <pubDate>Mon, 18 Jun 2007 15:21:00 GMT</pubDate>
      <dc:creator><![CDATA[seankell@microsoft.com]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/skelley/2007/06/18/welcome/</guid>
      <description><![CDATA[the reason why i started this blog is because i found myself following this trend:

start...]]></description>
      <content:encoded><![CDATA[<P>the reason why i started this blog is because i found myself following this trend:</P>
<OL>
<LI>start with&nbsp;a question about sharepoint</LI>
<LI>search internet / blogs / etc... (you know the drill)</LI>
<LI>dont find anything helpful,&nbsp;so conduct research</LI>
<LI>figure it out but then the information is lost if its not written down and shared</LI></OL>
<P>the point is people usually follow this same order of finding answers, so why not add information to step 2?</P>
<P>steps 3-4 take quite a bit of time so its great when you can skip those.</P>
<P>plus its great when you find a really helpful blog somewhere. </P>
<P>btw a couple of things:</P>
<UL>
<LI>i'm not a big fan of into capital letters so dont expect to see a lot of those</LI>
<LI>i <EM>am</EM> a big fan of bulleted lists</LI>
<LI>blogs are so serious. i'm not planning to follow suit.</LI></UL>
<P>ok thats it for the welcome post. enjoy.</P>]]></content:encoded>
    </item>
  </channel>
</rss>