<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-US"><title type="html">Imagine Think Create Share</title><subtitle type="html" /><id>http://blogs.msdn.com/carloshm/atom.xml</id><link rel="alternate" type="text/html" href="http://blogs.msdn.com/carloshm/default.aspx" /><link rel="self" type="application/atom+xml" href="http://blogs.msdn.com/carloshm/atom.xml" /><generator uri="http://communityserver.org" version="2.1.61025.2">Community Server</generator><updated>2009-01-22T17:56:00Z</updated><entry><title>Follow SEO recommendations in your public SharePoint deployment</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/carloshm/archive/2009/11/25/follow-seo-recommendations-in-your-public-sharepoint-deployment.aspx" /><id>http://blogs.msdn.com/carloshm/archive/2009/11/25/follow-seo-recommendations-in-your-public-sharepoint-deployment.aspx</id><published>2009-11-25T16:47:00Z</published><updated>2009-11-25T16:47:00Z</updated><content type="html">&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;Today I received a request about SEO recommendations in your SharePoint deployment. Well you should care about it always, no matter if it is SharePoint or not (although it would be better :)) In case you came from other dimension, search is the technology behind everything.&lt;/P&gt;
&lt;P&gt;Just to the spec, I wanted to share that information:&lt;/P&gt;
&lt;P&gt;"I would start caring about the content (SEO is content &lt;A title="MOSS SEO" href="http://mossseo.com/" mce_href="http://mossseo.com/"&gt;quality&lt;/A&gt;), and resolve features SharePoint doesn't have. You have a good pointer at &lt;A href="http://blog.mastykarz.nl/tag/seo/"&gt;http://blog.mastykarz.nl/tag/seo/&lt;/A&gt; , &lt;A href="http://blogs.technet.com/vedant/archive/2009/06/24/search-engine-optimization-in-sharepoint.aspx"&gt;http://blogs.technet.com/vedant/archive/2009/06/24/search-engine-optimization-in-sharepoint.aspx&lt;/A&gt; or &lt;A href="http://www.thesug.org/Blogs/sharepointseo/default.aspx"&gt;http://www.thesug.org/Blogs/sharepointseo/default.aspx&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;On the other hand I would work with tools as &lt;A title="IIS SEO Toolkit" href="http://www.iis.net/expand/SEOToolkit" mce_href="http://www.iis.net/expand/SEOToolkit"&gt;IIS SEO Toolkit&lt;/A&gt; to monitor the site."&lt;/P&gt;
&lt;P&gt;Finally it is recommended to check third &lt;A title="SEO kwizcom" href="http://kwizcom.com/ProductPage.asp?ProductID=1374&amp;amp;ProductSubNodeID=1424" mce_href="http://kwizcom.com/ProductPage.asp?ProductID=1374&amp;amp;ProductSubNodeID=1424"&gt;partner solutions&lt;/A&gt;&amp;nbsp;and any generic &lt;A title=Bing href="http://www.bing.com/search?q=Search+Engine+Optimization+Tips" mce_href="http://www.bing.com/search?q=Search+Engine+Optimization+Tips"&gt;SEO recommendations&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;U&gt;&lt;EM&gt;Nice to Read&lt;/EM&gt;&lt;/U&gt;&lt;BR&gt;Search Engine Optimization Starter Guide&lt;BR&gt;&lt;A href="http://www.google.com/webmasters/docs/search-engine-optimization-starter-guide.pdf"&gt;http://www.google.com/webmasters/docs/search-engine-optimization-starter-guide.pdf&lt;/A&gt;&lt;BR&gt;How to Optimize SharePoint Server 2007 Web Content Management Sites for Search Engines&lt;BR&gt;&lt;A href="http://msdn.microsoft.com/en-us/library/cc721591.aspx"&gt;http://msdn.microsoft.com/en-us/library/cc721591.aspx&lt;/A&gt; &lt;/P&gt;
&lt;P mce_keep="true"&gt;Bye!&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9928671" width="1" height="1"&gt;</content><author><name>carloshm</name><uri>http://blogs.msdn.com/members/carloshm.aspx</uri></author><category term="SharePoint" scheme="http://blogs.msdn.com/carloshm/archive/tags/SharePoint/default.aspx" /><category term="Search" scheme="http://blogs.msdn.com/carloshm/archive/tags/Search/default.aspx" /><category term="SEO" scheme="http://blogs.msdn.com/carloshm/archive/tags/SEO/default.aspx" /></entry><entry><title>JQuery and SharePoint 2010 Javascript Conflict</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/carloshm/archive/2009/11/18/jquery-and-sharepoint-2010-javascript-conflict.aspx" /><id>http://blogs.msdn.com/carloshm/archive/2009/11/18/jquery-and-sharepoint-2010-javascript-conflict.aspx</id><published>2009-11-18T00:26:00Z</published><updated>2009-11-18T00:26:00Z</updated><content type="html">&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;Yesterday I faced a problem with a PoC I did some months ago. I added a &lt;A title="JQuery rating Sharepoint" href="http://blogs.msdn.com/carloshm/archive/2009/08/24/jquery-rating-in-sharepoint-lists.aspx" mce_href="http://blogs.msdn.com/carloshm/archive/2009/08/24/jquery-rating-in-sharepoint-lists.aspx"&gt;ratings feature&lt;/A&gt; to SharePoint 2007 Lists using JQuery. &lt;/P&gt;
&lt;P&gt;There were a conflict caused by sp.js and jquery.js using prototype methods. I just followed the &lt;A title="Using jQuery with Other Libraries" href="http://docs.jquery.com/Using_jQuery_with_Other_Libraries" mce_href="http://docs.jquery.com/Using_jQuery_with_Other_Libraries"&gt;recomendations&lt;/A&gt; to avoid it.&lt;/P&gt;
&lt;P&gt;As I had put everything in my document ready area, I just reassigned JQuery, and use the new variable at that level:&lt;/P&gt;
&lt;P&gt;var $j = jQuery;&lt;/P&gt;
&lt;P&gt;$j(document).ready(function(){&lt;BR&gt;&amp;nbsp;$j('div.rating').rating();&lt;BR&gt;});&lt;/P&gt;
&lt;P&gt;This should remind us to double check our client code in SharePoint 2007 migration scenarios.&lt;/P&gt;
&lt;P&gt;Bye!&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9923986" width="1" height="1"&gt;</content><author><name>carloshm</name><uri>http://blogs.msdn.com/members/carloshm.aspx</uri></author><category term="SharePoint" scheme="http://blogs.msdn.com/carloshm/archive/tags/SharePoint/default.aspx" /><category term="JQuery" scheme="http://blogs.msdn.com/carloshm/archive/tags/JQuery/default.aspx" /><category term="Migration" scheme="http://blogs.msdn.com/carloshm/archive/tags/Migration/default.aspx" /><category term="SharePoint 2010" scheme="http://blogs.msdn.com/carloshm/archive/tags/SharePoint+2010/default.aspx" /><category term="prototype" scheme="http://blogs.msdn.com/carloshm/archive/tags/prototype/default.aspx" /></entry><entry><title>Finally Astoria coming to your SharePoint Theatres</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/carloshm/archive/2009/11/11/finally-astoria-coming-to-your-sharepoint-theatres.aspx" /><id>http://blogs.msdn.com/carloshm/archive/2009/11/11/finally-astoria-coming-to-your-sharepoint-theatres.aspx</id><published>2009-11-11T16:26:00Z</published><updated>2009-11-11T16:26:00Z</updated><content type="html">&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;Do you remember my &lt;A title="Astoria Blog Publishing Site" href="http://blogs.msdn.com/carloshm/archive/2007/05/15/astoria-and-blog-publishing.aspx" mce_href="http://blogs.msdn.com/carloshm/archive/2007/05/15/astoria-and-blog-publishing.aspx"&gt;Astoria Blog Publishing post&lt;/A&gt;? well now you can check that my crystal ball is up and running!&lt;/P&gt;
&lt;P&gt;Cool to see that any SharePoint Server 2010 acts as a &lt;A title="Every SharePoint 2010 server is a Data Services server" href="http://blogs.msdn.com/pablo/archive/2009/10/19/every-sharepoint-2010-server-is-a-data-services-server.aspx" mce_href="http://blogs.msdn.com/pablo/archive/2009/10/19/every-sharepoint-2010-server-is-a-data-services-server.aspx"&gt;Data Services Server&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;So moving forward that vision would look like this, after installing latest &lt;A title="ADO.NET Data Services CTP2" href="http://www.microsoft.com/downloads/details.aspx?FamilyID=a71060eb-454e-4475-81a6-e9552b1034fc&amp;amp;displaylang=en#filelist" mce_href="http://www.microsoft.com/downloads/details.aspx?FamilyID=a71060eb-454e-4475-81a6-e9552b1034fc&amp;amp;displaylang=en#filelist"&gt;ADO.NET Data Services&lt;/A&gt; in your SharePoint 2010 sandbox, imagine you create a blog site /carloshm, then you will be able to get the categories at&amp;nbsp; /carloshm/_vti_bin/ListData.svc/Categories. Just simple.&lt;/P&gt;
&lt;P&gt;Check this article, as it would be &lt;A title="Astoria Team" href="http://blogs.msdn.com/astoriateam" mce_href="http://blogs.msdn.com/astoriateam"&gt;worth&lt;/A&gt; &lt;A title="Data Services Samples" href="http://msdn.microsoft.com/en-us/library/cc907912.aspx" mce_href="http://msdn.microsoft.com/en-us/library/cc907912.aspx"&gt;reading&lt;/A&gt;! &amp;nbsp;to start using it&lt;/P&gt;
&lt;P&gt;Bye!&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9920888" width="1" height="1"&gt;</content><author><name>carloshm</name><uri>http://blogs.msdn.com/members/carloshm.aspx</uri></author><category term="Astoria" scheme="http://blogs.msdn.com/carloshm/archive/tags/Astoria/default.aspx" /><category term="Data Services" scheme="http://blogs.msdn.com/carloshm/archive/tags/Data+Services/default.aspx" /><category term="SharePoint 2010" scheme="http://blogs.msdn.com/carloshm/archive/tags/SharePoint+2010/default.aspx" /></entry><entry><title>Once upon a time there was an activeX CDN :)</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/carloshm/archive/2009/09/22/once-upon-a-time-there-was-an-activex-cdn.aspx" /><id>http://blogs.msdn.com/carloshm/archive/2009/09/22/once-upon-a-time-there-was-an-activex-cdn.aspx</id><published>2009-09-22T13:34:00Z</published><updated>2009-09-22T13:34:00Z</updated><content type="html">&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;Yesterday after my vacations, I&amp;nbsp;was reviwing&amp;nbsp;Scott posts and&amp;nbsp; I found that we have announced the &lt;A title="Microsoft Ajax CDN" href="http://weblogs.asp.net/scottgu/archive/2009/09/15/announcing-the-microsoft-ajax-cdn.aspx" mce_href="http://weblogs.asp.net/scottgu/archive/2009/09/15/announcing-the-microsoft-ajax-cdn.aspx"&gt;Microsoft Ajax CDN&lt;/A&gt;. A &lt;A title=Rido href="http://blogs.msdn.com/rido/" mce_href="http://blogs.msdn.com/rido/"&gt;collegue&lt;/A&gt;&amp;nbsp;then remembered me our &lt;A title="ActiveX CDN" href="http://support.microsoft.com/kb/190045" mce_href="http://support.microsoft.com/kb/190045"&gt;activex.microsoft.com&lt;/A&gt; url.&lt;/P&gt;
&lt;P&gt;Don't you feel we are walking in a wonderful circle :D&lt;/P&gt;
&lt;P&gt;Bye!&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9897941" width="1" height="1"&gt;</content><author><name>carloshm</name><uri>http://blogs.msdn.com/members/carloshm.aspx</uri></author><category term="ActiveX" scheme="http://blogs.msdn.com/carloshm/archive/tags/ActiveX/default.aspx" /><category term="Ajax" scheme="http://blogs.msdn.com/carloshm/archive/tags/Ajax/default.aspx" /><category term="CDN" scheme="http://blogs.msdn.com/carloshm/archive/tags/CDN/default.aspx" /></entry><entry><title>JQuery Rating in SharePoint Lists</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/carloshm/archive/2009/08/24/jquery-rating-in-sharepoint-lists.aspx" /><id>http://blogs.msdn.com/carloshm/archive/2009/08/24/jquery-rating-in-sharepoint-lists.aspx</id><published>2009-08-24T11:22:00Z</published><updated>2009-08-24T11:22:00Z</updated><content type="html">&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;Last week I was asked to create a sample to include in a SharePoint list rating functionality without any server code. That means only SharePoint Designer and client script.&lt;/P&gt;
&lt;P&gt;First was how to store those ratings. Based on experience the &lt;EM&gt;obvious &lt;/EM&gt;solution was to store scores in a separate list, and aggregate afterwards totals. This avoids locks at list level and improve scalability (at the end the aggregation was done from the self user).&lt;/P&gt;
&lt;P&gt;So to accomplish this demo, you will need:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Create a list that will have the totals and the items being scored (own columns and score column). &lt;/LI&gt;
&lt;LI&gt;Create a list to store user ratings (item_id, score, user_id)&lt;/LI&gt;
&lt;LI&gt;Create a view in the first list to show the rating control and allow the actions &lt;/LI&gt;
&lt;LI&gt;Modified that view with SharePoint Designer to &lt;EM&gt;customized&lt;/EM&gt; it: 
&lt;OL&gt;
&lt;LI&gt;Change list to XSLT view (through right click WebPartPages:listViewWebPart in order to get a WebPartPages:DataFormWebPart) &lt;/LI&gt;
&lt;LI&gt;Add a new layout column with the values to read (Item Id and aggregated score) and a style to apply (class=”rating”)&lt;/LI&gt;
&lt;LI&gt;Add JQuery library, web service library and rating library (to be included in the header adding script reference in additional page head placeholder) &lt;/LI&gt;
&lt;LI&gt;Add necessary styles and images to show the functionality &lt;/LI&gt;
&lt;LI&gt;Add custom code. You can check Jan &lt;A title="querying sharepoint list items using jquery" href="http://weblogs.asp.net/jan/archive/2009/05/06/querying-sharepoint-list-items-using-jquery.aspx" mce_href="http://weblogs.asp.net/jan/archive/2009/05/06/querying-sharepoint-list-items-using-jquery.aspx"&gt;posts&lt;/A&gt; and &lt;A title="JQuery addin rating" href="http://www.visualjquery.com/rating/rating_redux.html" mce_href="http://www.visualjquery.com/rating/rating_redux.html"&gt;rating samples&lt;/A&gt;.&lt;/LI&gt;&lt;/OL&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;P align=center&gt;&lt;A href="http://blogs.msdn.com/blogfiles/carloshm/WindowsLiveWriter/JQueryRatinginSharePointLists_1F00/image_2.png" mce_href="http://blogs.msdn.com/blogfiles/carloshm/WindowsLiveWriter/JQueryRatinginSharePointLists_1F00/image_2.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: block; FLOAT: none; MARGIN-LEFT: auto; BORDER-TOP: 0px; MARGIN-RIGHT: auto; BORDER-RIGHT: 0px" title="ListViewWebPart to DataFormWebPart" border=0 alt="ListViewWebPart to DataFormWebPart" src="http://blogs.msdn.com/blogfiles/carloshm/WindowsLiveWriter/JQueryRatinginSharePointLists_1F00/image_thumb.png" width=294 height=307 mce_src="http://blogs.msdn.com/blogfiles/carloshm/WindowsLiveWriter/JQueryRatinginSharePointLists_1F00/image_thumb.png"&gt;&lt;/A&gt;&lt;FONT size=1&gt;Step 4.1&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE style="BORDER-BOTTOM: #cecece 1px solid; BORDER-LEFT: #cecece 1px solid; PADDING-BOTTOM: 5px; BACKGROUND-COLOR: #fbfbfb; MIN-HEIGHT: 40px; PADDING-LEFT: 5px; WIDTH: 480px; PADDING-RIGHT: 5px; OVERFLOW: auto; BORDER-TOP: #cecece 1px solid; BORDER-RIGHT: #cecece 1px solid; PADDING-TOP: 5px"&gt;&lt;PRE style="BACKGROUND-COLOR: #fbfbfb; MARGIN: 0em; WIDTH: 100%; FONT-FAMILY: consolas,'Courier New',courier,monospace; FONT-SIZE: 12px"&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;TD&lt;/SPAN&gt; &lt;SPAN style="COLOR: #ff0000"&gt;Class&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #0000ff"&gt;"{$IDAEG2RE}"&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;&lt;/SPAN&gt;
&lt;/PRE&gt;
&lt;PRE style="BACKGROUND-COLOR: #ffff00; MARGIN: 0em; WIDTH: 100%; FONT-FAMILY: consolas,'Courier New',courier,monospace; FONT-SIZE: 12px"&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;DIV&lt;/SPAN&gt; &lt;SPAN style="COLOR: #ff0000"&gt;ALIGN&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #0000ff"&gt;"RIGHT"&lt;/SPAN&gt; &lt;SPAN style="COLOR: #ff0000"&gt;class&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #0000ff"&gt;"rating"&lt;/SPAN&gt; &lt;SPAN style="COLOR: #ff0000"&gt;title&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #0000ff"&gt;"{@ID}_{@Puntos}"&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;DIV&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;&lt;/SPAN&gt;
&lt;/PRE&gt;
&lt;PRE style="BACKGROUND-COLOR: #fbfbfb; MARGIN: 0em; WIDTH: 100%; FONT-FAMILY: consolas,'Courier New',courier,monospace; FONT-SIZE: 12px"&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;TD&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;/PRE&gt;
&lt;P align=center mce_keep="true"&gt;&lt;FONT size=1&gt;Step 4.2&lt;/FONT&gt;&lt;/P&gt;
&lt;P align=left&gt;&lt;FONT size=2&gt;This will give us the ability to build the UI through JQuery and associate the code to manage list items. Final result:&lt;/FONT&gt;&lt;/P&gt;
&lt;P align=left&gt;&lt;A href="http://blogs.msdn.com/blogfiles/carloshm/WindowsLiveWriter/JQueryRatinginSharePointLists_1F00/image_4.png" mce_href="http://blogs.msdn.com/blogfiles/carloshm/WindowsLiveWriter/JQueryRatinginSharePointLists_1F00/image_4.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: block; FLOAT: none; MARGIN-LEFT: auto; BORDER-TOP: 0px; MARGIN-RIGHT: auto; BORDER-RIGHT: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/carloshm/WindowsLiveWriter/JQueryRatinginSharePointLists_1F00/image_thumb_1.png" width=202 height=135 mce_src="http://blogs.msdn.com/blogfiles/carloshm/WindowsLiveWriter/JQueryRatinginSharePointLists_1F00/image_thumb_1.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P align=left&gt;Bye!&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9882476" width="1" height="1"&gt;</content><author><name>carloshm</name><uri>http://blogs.msdn.com/members/carloshm.aspx</uri></author><category term="SharePoint" scheme="http://blogs.msdn.com/carloshm/archive/tags/SharePoint/default.aspx" /><category term="JQuery" scheme="http://blogs.msdn.com/carloshm/archive/tags/JQuery/default.aspx" /></entry><entry><title>Foxit PDF IFilter must be reinstalled after installing a software update or ... Microsoft Filter Pack</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/carloshm/archive/2009/08/13/foxit-pdf-ifilter-must-be-reinstalled-after-installing-a-software-update-or-microsoft-filter-pack.aspx" /><id>http://blogs.msdn.com/carloshm/archive/2009/08/13/foxit-pdf-ifilter-must-be-reinstalled-after-installing-a-software-update-or-microsoft-filter-pack.aspx</id><published>2009-08-13T12:18:00Z</published><updated>2009-08-13T12:18:00Z</updated><content type="html">&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;Testing search in a development environment, I faced that after installation of &lt;A title="Microsoft Filter Pack" href="http://www.microsoft.com/downloads/details.aspx?FamilyId=60C92A37-719C-4077-B5C6-CAC34F4227CC&amp;amp;displaylang=en" mce_href="http://www.microsoft.com/downloads/details.aspx?FamilyId=60C92A37-719C-4077-B5C6-CAC34F4227CC&amp;amp;displaylang=en"&gt;MS Filter Pack&lt;/A&gt;&amp;nbsp;you need to repair FoxIt ifilter installation. So it seems it behaves as a software update too ;)&lt;/P&gt;
&lt;P&gt;By the way, they got a &lt;A title="Microsoft Corporation" href="http://www.foxitsoftware.com/company/success_stories.html" mce_href="http://www.foxitsoftware.com/company/success_stories.html"&gt;success story&lt;/A&gt; in Microsoft Exchange Hosted Services. Great!&lt;/P&gt;
&lt;P&gt;Cheers!&lt;/P&gt;
&lt;P&gt;P.S. it is documented at &lt;A title="Foxit PDF IFilter must be reinstalled after installing a software update (Office SharePoint Server 2007)" href="http://technet.microsoft.com/en-us/library/cc298931.aspx" mce_href="http://technet.microsoft.com/en-us/library/cc298931.aspx"&gt;technet too&lt;/A&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9867952" width="1" height="1"&gt;</content><author><name>carloshm</name><uri>http://blogs.msdn.com/members/carloshm.aspx</uri></author><category term="SharePoint" scheme="http://blogs.msdn.com/carloshm/archive/tags/SharePoint/default.aspx" /><category term="MOSS" scheme="http://blogs.msdn.com/carloshm/archive/tags/MOSS/default.aspx" /><category term="pdf" scheme="http://blogs.msdn.com/carloshm/archive/tags/pdf/default.aspx" /><category term="foxit" scheme="http://blogs.msdn.com/carloshm/archive/tags/foxit/default.aspx" /><category term="ifilter" scheme="http://blogs.msdn.com/carloshm/archive/tags/ifilter/default.aspx" /></entry><entry><title>How to: Programmatically read the ChangeLog in PowerShell </title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/carloshm/archive/2009/06/05/how-to-programmatically-read-the-changelog-in-powershell.aspx" /><id>http://blogs.msdn.com/carloshm/archive/2009/06/05/how-to-programmatically-read-the-changelog-in-powershell.aspx</id><published>2009-06-05T15:33:00Z</published><updated>2009-06-05T15:33:00Z</updated><content type="html">&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;When I was working to get &lt;A title="How to: Programmatically Export the Crawl History to a CSV File in PowerShell" href="http://blogs.msdn.com/carloshm/archive/2009/03/31/how-to-programmatically-export-the-crawl-history-to-a-csv-file-in-powershell.aspx" mce_href="http://blogs.msdn.com/carloshm/archive/2009/03/31/how-to-programmatically-export-the-crawl-history-to-a-csv-file-in-powershell.aspx"&gt;powershell&lt;/A&gt; &lt;A title="How to: Programmatically Manage the Crawl of a Content Source in PowerShell " href="http://blogs.msdn.com/controlpanel/blogs/how-to-programmatically-manage-the-crawl-of-a-content-source-in-powershell" mce_href="http://blogs.msdn.com/controlpanel/blogs/how-to-programmatically-manage-the-crawl-of-a-content-source-in-powershell"&gt;scripts&lt;/A&gt; from MSDN samples to get/set information, I created&amp;nbsp;too one for reading the changelog. It was a bit tricky to build, but I manage to port &lt;A title="Querying for Specific Changes" href="http://msdn.microsoft.com/en-us/library/bb447550.aspx" mce_href="http://msdn.microsoft.com/en-us/library/bb447550.aspx"&gt;Querying for specific changes&lt;/A&gt; to PowerShell.&lt;/P&gt;
&lt;P&gt;You can review the changelog&amp;nbsp;API in the Microsoft SharePoint Developer Documentation Team Blog and MSDN (previous link):&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://blogs.msdn.com/sharepointdeveloperdocs/archive/2008/01/21/synchronizing-with-windows-sharepoint-services-part-1.aspx"&gt;http://blogs.msdn.com/sharepointdeveloperdocs/archive/2008/01/21/synchronizing-with-windows-sharepoint-services-part-1.aspx&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://blogs.msdn.com/sharepointdeveloperdocs/archive/2008/01/22/synchronizing-with-windows-sharepoint-services-part-2.aspx"&gt;http://blogs.msdn.com/sharepointdeveloperdocs/archive/2008/01/22/synchronizing-with-windows-sharepoint-services-part-2.aspx&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;We wanted to monitor which changes were been read by the crawl process and been able to filter specific changes.&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;## SharePoint Reference [void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint") [void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint.Administration") [void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.Office.Server.Search.Administration") [void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.Office.Server.Search") [void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.Office.Server") &lt;BR&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;function global:Get-ChangeLog($url, $minutes, $changetype)&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;trap [Exception] {&lt;BR&gt;&amp;nbsp;&amp;nbsp;write-error $("ERROR: " + $_.Exception.GetType().FullName); &lt;BR&gt;&amp;nbsp;&amp;nbsp;write-error $("ERROR: " + $_.Exception.Message); &lt;BR&gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;continue;&amp;nbsp; &amp;nbsp;&lt;BR&gt;&amp;nbsp;}&lt;/P&gt;
&lt;P&gt;&amp;nbsp;$s = new-Object Microsoft.SharePoint.SPSite($url);&lt;BR&gt;&amp;nbsp;$startTime = [System.DateTime]::Now.Subtract([System.TimeSpan]::FromMinutes($minutes));&lt;BR&gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp;$db_id = [Microsoft.SharePoint.Administration.SPContentDatabase].getmethod("get_Id");&lt;BR&gt;&amp;nbsp;$result_id = $db_id.Invoke($s.ContentDatabase, "instance,public", $null, $null, $null);&lt;BR&gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp;$db_CurrentChangeToken = [Microsoft.SharePoint.Administration.SPContentDatabase].getmethod("get_CurrentChangeToken");&lt;BR&gt;&amp;nbsp;$result_CurrentChangeToken = $db_CurrentChangeToken.Invoke($s.ContentDatabase, "instance,public", $null, $null, $null);&lt;BR&gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp;$startToken = New-Object Microsoft.SharePoint.SPChangeToken([Microsoft.SharePoint.SPChangeCollection+CollectionScope]::ContentDB, $result_id.ToString(), $startTime);&lt;BR&gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp;$changeQuery = New-Object Microsoft.SharePoint.SPChangeQuery($False, $False);&lt;BR&gt;&amp;nbsp;$changeQuery.User = $True;&lt;BR&gt;&amp;nbsp;$changeQuery.ContentType = $True;&lt;BR&gt;&amp;nbsp;$changeQuery.Add = $True;&lt;BR&gt;&amp;nbsp;$changeQuery.Delete = $True;&lt;BR&gt;&amp;nbsp;$changeQuery.Field = $True;&lt;BR&gt;&amp;nbsp;$changeQuery.File = $True;&lt;BR&gt;&amp;nbsp;$changeQuery.Folder = $True;&lt;BR&gt;&amp;nbsp;$changeQuery.Group = $True;&lt;BR&gt;&amp;nbsp;$changeQuery.GroupMembershipAdd = $True;&lt;BR&gt;&amp;nbsp;$changeQuery.GroupMembershipDelete = $True;&lt;BR&gt;&amp;nbsp;$changeQuery.Item = $True;&lt;BR&gt;&amp;nbsp;$changeQuery.List = $True;&lt;BR&gt;&amp;nbsp;$changeQuery.Move = $True;&lt;BR&gt;&amp;nbsp;$changeQuery.Rename = $True;&lt;BR&gt;&amp;nbsp;$changeQuery.Site = $True;&lt;BR&gt;&amp;nbsp;$changeQuery.SystemUpdate = $True;&lt;BR&gt;&amp;nbsp;$changeQuery.Update = $True;&lt;BR&gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp;$changeQuery.ChangeTokenStart = $startToken;&lt;BR&gt;&amp;nbsp;$changeQuery.ChangeTokenEnd = $result_CurrentChangeToken;&lt;BR&gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp;$db_GetChanges = [Microsoft.SharePoint.Administration.SPContentDatabase].getmethod("GetChanges", [Microsoft.SharePoint.SPChangeQuery]);&lt;BR&gt;&amp;nbsp;$result_GetChanges = $db_GetChanges.Invoke($s.ContentDatabase, "instance,public", $null, $changeQuery, $null);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;write-Output $result_GetChanges | Where-Object { $_.ChangeType -eq $changetype };&lt;/P&gt;
&lt;P&gt;&amp;nbsp;$s.Dispose();&lt;BR&gt;}&lt;/P&gt;
&lt;P&gt;Get-ChangeLog -url &lt;A href="http://your_site_url/"&gt;http://your_site_url&lt;/A&gt; -minutes 120 -changetype Add&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;Take into account that the time will get changes based on UTC&lt;/P&gt;
&lt;P&gt;Bye!&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9701271" width="1" height="1"&gt;</content><author><name>carloshm</name><uri>http://blogs.msdn.com/members/carloshm.aspx</uri></author><category term="SharePoint" scheme="http://blogs.msdn.com/carloshm/archive/tags/SharePoint/default.aspx" /><category term="Codeplex" scheme="http://blogs.msdn.com/carloshm/archive/tags/Codeplex/default.aspx" /><category term="Search" scheme="http://blogs.msdn.com/carloshm/archive/tags/Search/default.aspx" /><category term="MOSS" scheme="http://blogs.msdn.com/carloshm/archive/tags/MOSS/default.aspx" /><category term="Powershell" scheme="http://blogs.msdn.com/carloshm/archive/tags/Powershell/default.aspx" /></entry><entry><title>Phrase of the week - ODF</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/carloshm/archive/2009/05/21/phrase-of-the-week-odf.aspx" /><id>http://blogs.msdn.com/carloshm/archive/2009/05/21/phrase-of-the-week-odf.aspx</id><published>2009-05-21T13:26:00Z</published><updated>2009-05-21T13:26:00Z</updated><content type="html">&lt;P&gt;&lt;EM&gt;To the point: can you point me to where it is stated that validity to the manifest schema is a ODF conformance requirement? No, I don't think you can, because such a requirement does not exist. &lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&lt;A title="Notes on Document Conformance and Portability" href="http://adjb.net/post/Notes-on-Document-Conformance-and-Portability-4.aspx#id_dbba4bb0-22e6-4b6e-9755-8dd71c318b0c" mce_href="http://adjb.net/post/Notes-on-Document-Conformance-and-Portability-4.aspx#id_dbba4bb0-22e6-4b6e-9755-8dd71c318b0c"&gt;Rob Weir&lt;/A&gt;&amp;nbsp;- IBM / Chief ODF Architect&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Brilliant and simple answer&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;... I regard the schema as an equivalent case. It is a *grammar* which formally makes unambiguous formal provisions about the disposition of XML elements and attributes declared in a certain namespace. If the schema mandates that element x MUST contain element y, and an XML manifest makes use of element x but fails to use element y as mandated, then I say that document is as surely non-conformant as the one which disregards the ZIP format provisions mentioned above.&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;A title="Notes on Document Conformance and Portability" href="http://adjb.net/post/Notes-on-Document-Conformance-and-Portability-4.aspx#id_6dbc3401-4557-4a9f-b8d4-71181ccf718d" mce_href="http://adjb.net/post/Notes-on-Document-Conformance-and-Portability-4.aspx#id_6dbc3401-4557-4a9f-b8d4-71181ccf718d"&gt;&lt;EM&gt;Alex Brown&lt;/EM&gt;&lt;/A&gt;&lt;EM&gt;&amp;nbsp;- &lt;/EM&gt;Griffin Brown Digital Publishing Ltd / Technical Director&lt;BR&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9633619" width="1" height="1"&gt;</content><author><name>carloshm</name><uri>http://blogs.msdn.com/members/carloshm.aspx</uri></author><category term="Open Document Format" scheme="http://blogs.msdn.com/carloshm/archive/tags/Open+Document+Format/default.aspx" /><category term="ODF" scheme="http://blogs.msdn.com/carloshm/archive/tags/ODF/default.aspx" /></entry><entry><title>Web Slices and SharePoint</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/carloshm/archive/2009/04/19/web-slices-and-sharepoint.aspx" /><id>http://blogs.msdn.com/carloshm/archive/2009/04/19/web-slices-and-sharepoint.aspx</id><published>2009-04-19T23:36:00Z</published><updated>2009-04-19T23:36:00Z</updated><content type="html">&lt;P&gt;Hola,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;Last week, I read in a DL a question about how to show something cool, provide value and without custom code. Well there are many scenarios in SharePoint that empower final users in order to do this.&lt;/P&gt;
&lt;P&gt;I instantly thought about WebSlices. As&amp;nbsp;a microformat you can "decorate" your markup and include fast and easy additional funcionality to yourself or your colleagues (or even your users! :)).&lt;/P&gt;
&lt;P&gt;What would I use to do it? Well I would start thinking in webparts that can be customized vis XSLT, or those that can render custom HTML. A quick list:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;RSS Viewer WebPart&lt;/LI&gt;
&lt;LI&gt;Core Search Results WebPart (any other search webpart)&lt;/LI&gt;
&lt;LI&gt;Content By Query WebPart&lt;/LI&gt;
&lt;LI&gt;Content Web Editor&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Which will you choose? it will depend on your requirements (performance, data scope, skills). Here I will show the minimal &lt;EM&gt;implementation. &lt;/EM&gt;From here you can build a custom page that leverage updates and notifications.&lt;/P&gt;
&lt;P&gt;One MOSS challenge ;), would be to create a service that centralized these results!&lt;/P&gt;
&lt;P&gt;I will use the federated results webpart, but configured to render synchronously.&lt;BR&gt;Why?, because as you will face with the RSS Viewer webpart, you can't notifiy the client after "document ready" and you should implement "&lt;A title="Alternate Display Source" href="http://msdn.microsoft.com/en-us/library/cc196992(VS.85).aspx#_refresh" mce_href="http://msdn.microsoft.com/en-us/library/cc196992(VS.85).aspx#_refresh"&gt;Alternative Display Source&lt;/A&gt;". I tried without it, and I faced some strange behaviour (sometimes the webslices icon appeared, but the Favorites Bar is not capable of showing the preview).&lt;/P&gt;
&lt;P&gt;So it is just as easy as following the steps described at &lt;A title="Subscribing to Content with Web Slices" href="http://msdn.microsoft.com/en-us/library/cc196992(VS.85).aspx" mce_href="http://msdn.microsoft.com/en-us/library/cc196992(VS.85).aspx"&gt;Subscribing to Content with Web Slices&lt;/A&gt;&amp;nbsp;and (for this example) change:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Fixed KeyWord Query to Office 2010 (or whatever you want)&lt;/LI&gt;
&lt;LI&gt;Customized Display Properties (number of results and length)&lt;/LI&gt;
&lt;LI&gt;Add in the XSL Editor the classes required (in &lt;STRONG&gt;bold&lt;/STRONG&gt;):&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;MainTemplate&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;&amp;lt;div class="&lt;STRONG&gt;hslice&lt;/STRONG&gt; ms-searchsummarymain" id="LiveResults"&amp;gt;&lt;/LI&gt;
&lt;LI&gt;&amp;lt;div class="&lt;STRONG&gt;entry-title&lt;/STRONG&gt; ms-searchChannelTitle"&amp;gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;MainTemplate.body&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;&amp;lt;div class="&lt;STRONG&gt;entry-content&lt;/STRONG&gt; {$BodyClass}"&amp;gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;
&lt;P&gt;A picture is worth a thousand words:&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;A href="http://blogs.msdn.com/photos/carloshm/picture9555890.aspx"&gt;&lt;IMG style="WIDTH: 425px; HEIGHT: 331px" title="Web Slices SharePoint" border=0 alt="Web Slices SharePoint" src="http://blogs.msdn.com/photos/carloshm/images/9555890/425x331.aspx" width=425 height=331 mce_src="http://blogs.msdn.com/photos/carloshm/images/9555890/425x331.aspx"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Other scenarios?&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;People Search showing collegues.&lt;/LI&gt;
&lt;LI&gt;ChangeLog viewer&lt;/LI&gt;
&lt;LI&gt;TFS bugs/tasks assigned to you&lt;/LI&gt;
&lt;LI&gt;...&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;Finally, if we add code into the requirements, I would like to test a more dynamic solution:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A title="Control Adapters Web Slices" href="http://blogs.microsoft.co.il/blogs/dorong/archive/2009/01/18/web-slice-control-adapter-for-moss-2007.aspx" mce_href="http://blogs.microsoft.co.il/blogs/dorong/archive/2009/01/18/web-slice-control-adapter-for-moss-2007.aspx"&gt;Control Adapters&lt;/A&gt; to include all my webparts&lt;/LI&gt;
&lt;LI&gt;EndPoints to get updates and notifications&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;Ciao!&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9555905" width="1" height="1"&gt;</content><author><name>carloshm</name><uri>http://blogs.msdn.com/members/carloshm.aspx</uri></author><category term="SharePoint" scheme="http://blogs.msdn.com/carloshm/archive/tags/SharePoint/default.aspx" /><category term="MOSS" scheme="http://blogs.msdn.com/carloshm/archive/tags/MOSS/default.aspx" /><category term="IE8" scheme="http://blogs.msdn.com/carloshm/archive/tags/IE8/default.aspx" /><category term="Web Slices" scheme="http://blogs.msdn.com/carloshm/archive/tags/Web+Slices/default.aspx" /></entry><entry><title>Migration from Microsoft Access to SharePoint</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/carloshm/archive/2009/04/17/migration-from-microsoft-access-to-sharepoint.aspx" /><id>http://blogs.msdn.com/carloshm/archive/2009/04/17/migration-from-microsoft-access-to-sharepoint.aspx</id><published>2009-04-17T10:54:00Z</published><updated>2009-04-17T10:54:00Z</updated><content type="html">&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;Yesterday I was asked about migration paths for Access applications. Yes, there are still a spread active&amp;nbsp;group (usually at the department level).&lt;/P&gt;
&lt;P&gt;I have worked with several alternatives, however at the end you should consider four main requirements:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Security (Custom, AD, Sec. trim.)&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;UI (Access, Web [native or host in SharePoint], Custom)&lt;/LI&gt;
&lt;LI&gt;App complexity (custom code, reports, linked data)&lt;/LI&gt;
&lt;LI&gt;Data (volume, API)&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;and the requirements of your organization.&lt;/P&gt;
&lt;P&gt;I would recommend you create some Proof of concepts and&amp;nbsp;evaluate which is best for your enviornment.&lt;/P&gt;
&lt;P&gt;With this you may come to some conclusions:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Migrate Data to SQL and mantain Access UI.&lt;/LI&gt;
&lt;OL&gt;
&lt;LI&gt;This will use, depending on versions, different &lt;A title="Migration for Microsoft Access Tools" href="http://www.microsoft.com/Sqlserver/2005/en/us/migration-access.aspx" mce_href="http://www.microsoft.com/Sqlserver/2005/en/us/migration-access.aspx"&gt;Migration for Microsoft Access Tools&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;After migration some review will be needed (issues).&lt;/LI&gt;&lt;/OL&gt;
&lt;LI&gt;Migrate Data to SQL and develop new UI or stay with the current custom UI.&lt;/LI&gt;
&lt;OL&gt;
&lt;LI&gt;You can find several Third party solution apart from our own tools [above]. I like the approach of &lt;A title=PCA href="http://www.pcapps.com/PcaMiscFiles/Documents/MS-Access-Migration-Guidelines-and-Procedures.pdf" mce_href="http://www.pcapps.com/PcaMiscFiles/Documents/MS-Access-Migration-Guidelines-and-Procedures.pdf"&gt;PCA&lt;/A&gt;&amp;nbsp;(not really the Oracle section) but you can find many more at &lt;A title="Solution Finder" href="https://solutionfinder.microsoft.com/" mce_href="https://solutionfinder.microsoft.com/"&gt;Solution Finder&lt;/A&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;LI&gt;Migrate Data to SharePoint and mantain Access UI.&lt;/LI&gt;
&lt;OL&gt;
&lt;LI&gt;This will require migration to MS Access 2007, and then follow &lt;A title="SharePoint Migration Wizard" href="http://office.microsoft.com/en-us/access/HA101314681033.aspx" mce_href="http://office.microsoft.com/en-us/access/HA101314681033.aspx"&gt;SharePoint Migration Wizard&lt;/A&gt;. &lt;/LI&gt;
&lt;LI&gt;This has some limitations and you need to review some changes in the &lt;A title="more info access to sharepoint" href="http://office.microsoft.com/en-us/access/CH010620031033.aspx" mce_href="http://office.microsoft.com/en-us/access/CH010620031033.aspx"&gt;data model&lt;/A&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;LI&gt;Migrate Data to SharePoint and develop new UI or stay with the current custom UI.&lt;/LI&gt;
&lt;OL&gt;
&lt;LI&gt;It will depend on the complexity of your UI+Business Logic, but it will require extra work to do this as previous.&lt;/LI&gt;&lt;/OL&gt;&lt;/OL&gt;
&lt;P&gt;In those scenarios, you may need other tools as &lt;A title="Import Access Reports into Reporting Services" href="http://msdn.microsoft.com/es-es/library/ms156375.aspx" mce_href="http://msdn.microsoft.com/es-es/library/ms156375.aspx"&gt;Reports migration into Reporting Services&lt;/A&gt; or &lt;A title="Migration considerations for Access 2000, Access 2002, and Access 2003" href="http://technet.microsoft.com/en-us/library/cc178973.aspx" mce_href="http://technet.microsoft.com/en-us/library/cc178973.aspx"&gt;migration from previous versions&lt;/A&gt; of MS Access.&lt;/P&gt;
&lt;P&gt;Finally, you should think in coexistence, and look for strategies or third party solutions to get this.&lt;/P&gt;
&lt;P&gt;I received a question about &lt;A title=SLAM href="http://www.codeplex.com/SLAM" mce_href="http://www.codeplex.com/SLAM"&gt;SLAM&lt;/A&gt;, this may work well with some applications, mixing [1,2] and [3,4] scenarios; so you really design a SharePoint solution and sync with a database model.&lt;/P&gt;
&lt;P mce_keep="true"&gt;Is there any third party tool that may help me to the overall process? &lt;/P&gt;
&lt;P mce_keep="true"&gt;There is no magic tool, so&amp;nbsp;besides the tools linked; you should review Partners directory.&lt;/P&gt;
&lt;P mce_keep="true"&gt;Or pehaps just wait to some preview of &lt;A title="Office 2010 Announcement" href="http://www.microsoft.com/presspass/features/2009/Apr09/04-15Office2010.mspx" mce_href="http://www.microsoft.com/presspass/features/2009/Apr09/04-15Office2010.mspx"&gt;Office 2010&lt;/A&gt; and check if there are some specific improvement in the integration with MS Access.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;Namaste!&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9553995" width="1" height="1"&gt;</content><author><name>carloshm</name><uri>http://blogs.msdn.com/members/carloshm.aspx</uri></author><category term="Reporting Services" scheme="http://blogs.msdn.com/carloshm/archive/tags/Reporting+Services/default.aspx" /><category term="SharePoint" scheme="http://blogs.msdn.com/carloshm/archive/tags/SharePoint/default.aspx" /><category term="Migration" scheme="http://blogs.msdn.com/carloshm/archive/tags/Migration/default.aspx" /><category term="Ms Access" scheme="http://blogs.msdn.com/carloshm/archive/tags/Ms+Access/default.aspx" /><category term="SQL Server" scheme="http://blogs.msdn.com/carloshm/archive/tags/SQL+Server/default.aspx" /></entry><entry><title>From app_offline.htm to Failover Farm. SharePoint High Availability Scenarios</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/carloshm/archive/2009/04/01/app-offline-htm-sharepoint-upgrades.aspx" /><id>http://blogs.msdn.com/carloshm/archive/2009/04/01/app-offline-htm-sharepoint-upgrades.aspx</id><published>2009-04-01T13:37:00Z</published><updated>2009-04-01T13:37:00Z</updated><content type="html">&lt;P&gt;Hi again,&lt;/P&gt;
&lt;P&gt;Last months this has been one of our main tracks we have been working on. As useful reading in order to get previous concepts, you may start reading the&amp;nbsp;&lt;A title="Plan for redundancy " href="http://technet.microsoft.com/en-us/library/cc263044.aspx" mce_href="http://technet.microsoft.com/en-us/library/cc263044.aspx"&gt;Plan for redundancy&lt;/A&gt; guide. Here you will get the idea that there are several roles that can be redundant, and others not; and traditional ways to set up server redundancy.&lt;/P&gt;
&lt;P&gt;Here I will point out, that although it is said that Index rol is not redundant, you can achieve multiple index servers roles in different SSPs indexing the same content with a cost:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Double size for the same content (Property store - DB&amp;nbsp;and index catalog - File)&lt;/LI&gt;
&lt;LI&gt;Double size in your Query Servers (Both copies of the indexes)&lt;/LI&gt;
&lt;LI&gt;Additional capacity in your backup, IIS logs and network&amp;nbsp;planning&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;(some details in the next guide [&lt;STRONG&gt;&lt;EM&gt;Single farm with two SSPs&lt;/EM&gt;&lt;/STRONG&gt;&amp;nbsp; section] and more complex scenarios)&lt;/P&gt;
&lt;P&gt;In this scenario you could move manually your Web Applications from one SSP to another, in order to get updates from that index server (remember that you really get results from your queries servers); under a power outage, server crash or index corrupt.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;U&gt;How can you meet a specific level of availability?&lt;/U&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;We do have a &lt;A title="Plan for availability" href="http://technet.microsoft.com/en-us/library/cc748824.aspx" mce_href="http://technet.microsoft.com/en-us/library/cc748824.aspx"&gt;guide&lt;/A&gt; on this (complemented with the &lt;A title="Case Study of High Availability for SharePoint using Database Mirroring (white paper)" href="http://technet.microsoft.com/en-us/library/cc531332.aspx" mce_href="http://technet.microsoft.com/en-us/library/cc531332.aspx"&gt;whitepaper about mirroring&lt;/A&gt;), quite complete so I would not comment much on it. Just that content updates may be evil. In our scenario content was queued in order to update the main farm after failover.&lt;/P&gt;
&lt;P&gt;I would take the summary as my own: &lt;/P&gt;
&lt;P&gt;&lt;EM&gt;"Carefully review your availability requirements. The higher the level of availability and the more systems you protect, the more complex and costly an availability solution is likely to be. &lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;The costs of attaining availability should be evaluated based on business needs. Not all solutions within an organization are likely to require the same level of availability. You can offer different levels of availability for different sites, different services (for example, search and business intelligence), or different farms."&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;U&gt;Yes, but I would like something easier, is it possible?&lt;/U&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;One of the many good things of our platform, is that we boost an &lt;A title="Partner Program" href="https://partner.microsoft.com/" mce_href="https://partner.microsoft.com"&gt;ecosystem of partners&lt;/A&gt;&amp;nbsp;so you will find a lot of scenarios extended. I have not deployed myself these solutions (I did more on the backup scenario), but you may contact each of them and find the best for your needs:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A title="everRun® for Microsoft® Office SharePoint Server 2007" href="http://www.marathontechnologies.com/sharepoint-high-availability.html" mce_href="http://www.marathontechnologies.com/sharepoint-high-availability.html"&gt;everRun for Microsoft Office SharePoint Server 2007&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A title="DocAve SharePoint High Availability" href="http://www.avepoint.com/products/sharepoint-high-availability" mce_href="http://www.avepoint.com/products/sharepoint-high-availability"&gt;DocAve SharePoint High Availability&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A title="Neverfail for Microsoft® SharePoint" href="http://www.neverfailgroup.com/products/app-modules/sharepoint.aspx" mce_href="http://www.neverfailgroup.com/products/app-modules/sharepoint.aspx"&gt;Neverfail for Microsoft® SharePoint&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;and always a good reference, the &lt;A title="Replication and high availability" href="http://blogs.msdn.com/joelo/archive/2007/04/02/replication-and-high-availability.aspx" mce_href="http://blogs.msdn.com/joelo/archive/2007/04/02/replication-and-high-availability.aspx"&gt;old&lt;/A&gt; &lt;A title="Disaster Recovery" href="http://www.sharepointjoel.com/Lists/Categories/Category.aspx?Name=Disaster%20Recovery" mce_href="http://www.sharepointjoel.com/Lists/Categories/Category.aspx?Name=Disaster%20Recovery"&gt;Joel blog&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;U&gt;Ok, but I would like something really easy...&lt;/U&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Well :) (not really HA), SharePoint is a ASP.NET application&amp;nbsp;at the end (yes SharePoint IS a platform, so if you are using it from within other technology this will not work for you), so you may follow ASP.NET steps to tell your users in a friendly way that you are updating or changing the platform.&lt;/P&gt;
&lt;P&gt;It is true that from the &lt;A title="Deploy software updates for Windows SharePoint Services 3.0" href="http://technet.microsoft.com/en-us/library/cc288269.aspx" mce_href="http://technet.microsoft.com/en-us/library/cc288269.aspx"&gt;guides&lt;/A&gt; &lt;A title="Deploy software updates for Office SharePoint Server 2007" href="http://technet.microsoft.com/en-us/library/cc263467.aspx" mce_href="http://technet.microsoft.com/en-us/library/cc263467.aspx"&gt;available&lt;/A&gt;,&amp;nbsp;they indicate to stop the World Wide Web Publishing Service (W3SVC) on all Web servers; but as long as you achieve the objective (&lt;EM&gt;Disconnect users from the server farm&lt;/EM&gt;) with other options, why not using the app_offline.htm?&lt;/P&gt;
&lt;P&gt;What is the app_offline.htm option? it is a new feature &lt;A title=app_offline.htm href="http://weblogs.asp.net/scottgu/archive/2005/10/06/426755.aspx" mce_href="http://weblogs.asp.net/scottgu/archive/2005/10/06/426755.aspx"&gt;included&lt;/A&gt; in ASP.NET 2.0 (time ago :)). This basically will let ASP.NET 2.0&amp;nbsp;to shut-down the application, unload the application domain from the server, and stop processing any new incoming requests for that application,&amp;nbsp;sending back all requests for dynamic pages in the application to the app_offline.htm page.&lt;/P&gt;
&lt;P&gt;Some reading I would recommend:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;A title="Walkthrough: Deploying an ASP.NET Web Application Using XCOPY" href="http://msdn.microsoft.com/en-us/library/f735abw9.aspx" mce_href="http://msdn.microsoft.com/en-us/library/f735abw9.aspx"&gt;Walkthrough: Deploying an ASP.NET Web Application Using XCOPY&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A title='App_Offline.htm and working around the "IE Friendly Errors" feature ' href="http://weblogs.asp.net/scottgu/archive/2006/04/09/App_5F00_Offline.htm-and-working-around-the-_2200_IE-Friendly-Errors_2200_-feature.aspx" mce_href="http://weblogs.asp.net/scottgu/archive/2006/04/09/App_5F00_Offline.htm-and-working-around-the-_2200_IE-Friendly-Errors_2200_-feature.aspx"&gt;App_Offline.htm and working around the "IE Friendly Errors" feature &lt;/A&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;Finally, it would be great to have a solution to be deployed in order to be able to activate a feature in your sharepoint farm and copy that file in your web applications. isn't it?&lt;/P&gt;
&lt;P mce_keep="true"&gt;Bye!&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9457640" width="1" height="1"&gt;</content><author><name>carloshm</name><uri>http://blogs.msdn.com/members/carloshm.aspx</uri></author><category term="SharePoint" scheme="http://blogs.msdn.com/carloshm/archive/tags/SharePoint/default.aspx" /><category term="MOSS" scheme="http://blogs.msdn.com/carloshm/archive/tags/MOSS/default.aspx" /><category term="app_offline" scheme="http://blogs.msdn.com/carloshm/archive/tags/app_5F00_offline/default.aspx" /><category term="redundancy" scheme="http://blogs.msdn.com/carloshm/archive/tags/redundancy/default.aspx" /><category term="high availability" scheme="http://blogs.msdn.com/carloshm/archive/tags/high+availability/default.aspx" /></entry><entry><title>Sharepoint: supportability scenarios</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/carloshm/archive/2009/03/31/sharepoint-supported-scenarios.aspx" /><id>http://blogs.msdn.com/carloshm/archive/2009/03/31/sharepoint-supported-scenarios.aspx</id><published>2009-04-01T00:41:00Z</published><updated>2009-04-01T00:41:00Z</updated><content type="html">&lt;P&gt;Today I posted some samples about Search and Powershell integration. I mention about the supportability of querying sharepoint tables. I thought about it and I wanted to clarify my point of view and what is public &amp;amp; published.&lt;/P&gt;
&lt;P&gt;I have listed the main areas (I'm primarly&amp;nbsp;focusing on Office12) where I have seen supportability questions. If you have any question, please call your support contact or access &lt;A href="http://support.microsoft.com/"&gt;http://support.microsoft.com/&lt;/A&gt; &lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;&lt;A title="Support for changes to the databases that are used by Office server products and by Windows SharePoint Services" href="http://support.microsoft.com/kb/841057" mce_href="http://support.microsoft.com/kb/841057"&gt;Support for changes to the databases that are used by Office server products and by Windows SharePoint Services&lt;/A&gt;&lt;/STRONG&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;&lt;A title="Information about the Maintenance Plan Wizard in SQL Server 2005 and about tasks that administrators can perform against SharePoint databases" href="http://support.microsoft.com/kb/932744/" mce_href="http://support.microsoft.com/kb/932744/"&gt;Information about the Maintenance Plan Wizard in SQL Server 2005 and about tasks that administrators can perform against SharePoint databases&lt;/A&gt;&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;&lt;A title="Hardware virtualization support for SharePoint products and technologies" href="http://support.microsoft.com/kb/909840" mce_href="http://support.microsoft.com/kb/909840"&gt;Hardware virtualization support for SharePoint products and technologies&lt;/A&gt;&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;&lt;A title="Supported and unsupported scenarios for working with custom site definitions and custom area definitions in Windows SharePoint Services, in SharePoint Portal Server 2003, and in Office SharePoint Server 2007" href="http://support.microsoft.com/kb/898631" mce_href="http://support.microsoft.com/kb/898631"&gt;Supported and unsupported scenarios for working with custom site definitions and custom area definitions in Windows SharePoint Services, in SharePoint Portal Server 2003, and in Office SharePoint Server 2007&lt;/A&gt;&lt;/STRONG&gt; &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;On the other hand, there are articles as &lt;A title="SharePoint Database Access" href="http://msdn.microsoft.com/en-us/library/bb861829.aspx" mce_href="http://msdn.microsoft.com/en-us/library/bb861829.aspx"&gt;SharePoint Database Access&lt;/A&gt;&amp;nbsp;where it is recommended to not query database but instead use the object model.&lt;/P&gt;
&lt;P&gt;Looking back to the scenario of my &lt;A title=reference href="http://blogs.msdn.com/controlpanel/blogs/htt%20p://blogs.msdn.com/carloshm/archive/2009/03/31/how-to-programmatically-export-the-crawl-history-to-a-csv-file-in-powershell.aspx#comment01_carloshm" mce_href="htt p://blogs.msdn.com/carloshm/archive/2009/03/31/how-to-programmatically-export-the-crawl-history-to-a-csv-file-in-powershell.aspx#comment01_carloshm"&gt;original comment&lt;/A&gt;&amp;nbsp;if you are debugging with the SQL Profiler your SSP Database and at the same time running the powershell script or getting the crawl history, you will see something like:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;SP:Starting Event&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;exec dbo.proc_MSS_GetCrawlHistory @ContentSourceID=NULL,@MaxRecords=NULL,@BeginTime=NULL,@EndTime=NULL,@CrawlStatus=NULL &lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;SP:StmtCompleted&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;SELECT A.CrawlID,A.CrawlType,B.ContentSourceID,A.Status,A.StartTime,A.EndTime,CAST(A.SuccessCount as int) as SuccessCount,A.ErrorCount,A.WarningCount from MSSCrawlHistory as A inner join (select distinct CrawlID,ContentSourceID from MSSCrawlContent) as B on A.CrawlID = B.CrawlID WHERE A.ProjectID = 1 AND DATEDIFF([Day], A.StartTime, GETDATE()) &amp;lt;= 7 ORDER BY A.EndTime DESC&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;
&lt;P mce_keep="true"&gt;So you may think: "as these tables are not heavy used, a directly querying with some changes may&amp;nbsp;have less locking, we should follow that", something that you may test only in you lab/dev environment.&lt;/P&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;
&lt;P&gt;SELECT&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; A&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;CrawlID&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;,&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;A&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;CrawlType&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;,&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;B&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;ContentSourceID&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;,&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;A&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;Status&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;,&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;A&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;StartTime&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;,&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;A&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;EndTime&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;,&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#ff00ff size=2&gt;&lt;FONT color=#ff00ff size=2&gt;CAST&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;(&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;A&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;SuccessCount &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;as&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;int&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;)&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;as&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; SuccessCount&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;,&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;A&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;ErrorCount&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;,&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;A&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;WarningCount &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;from&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; MSSCrawlHistory &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;as&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; A &lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;with&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;(&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;nolock&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;inner&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;join&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;(&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;select&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;distinct&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; CrawlID&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;,&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;ContentSourceID &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;from&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; MSSCrawlContent &lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;with&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;(&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;nolock&lt;/FONT&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;&lt;STRONG&gt;)&lt;/STRONG&gt;)&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;as&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; B &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;on&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; A&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;CrawlID &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;=&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; B&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;CrawlID &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;WHERE&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; A&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;ProjectID &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;=&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; 1 &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;AND&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff00ff size=2&gt;&lt;FONT color=#ff00ff size=2&gt;DATEDIFF&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;(&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;[Day]&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;,&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; A&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;StartTime&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;,&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff00ff size=2&gt;&lt;FONT color=#ff00ff size=2&gt;GETDATE&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;())&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;&amp;lt;=&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; 7 &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;ORDER&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;BY&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; A&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;EndTime &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;DESC&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;
&lt;P&gt;Just thinking in the task, this may seems better, but think about the possibility that committed data may be a requirement.&lt;/P&gt;
&lt;P&gt;Finally,&amp;nbsp;should you&amp;nbsp;&lt;EM&gt;TSQL&lt;/EM&gt; your sharepoint database? I would say no, as:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;You may affect overall response of your environment&lt;/LI&gt;
&lt;LI&gt;Unless you have enough information through our &lt;A title="Open Specification Program" href="http://msdn.microsoft.com/en-us/library/cc339473.aspx" mce_href="http://msdn.microsoft.com/en-us/library/cc339473.aspx"&gt;open specification program&lt;/A&gt;&amp;nbsp;you may conflict with you EULA acceptance.&lt;/LI&gt;&lt;/UL&gt;
&lt;P mce_keep="true"&gt;What would be better, querying or using the object model?&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Working with the object model gives you supportability for your &lt;STRONG&gt;&lt;EM&gt;code &lt;/EM&gt;&lt;/STRONG&gt;as you won't have breaking changes (backward compatibility) or you will be advised about deferred/obsolete code and have migration paths. something that using TSQL you won't have.&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P mce_keep="true"&gt;Namaste!&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9524442" width="1" height="1"&gt;</content><author><name>carloshm</name><uri>http://blogs.msdn.com/members/carloshm.aspx</uri></author><category term="SharePoint" scheme="http://blogs.msdn.com/carloshm/archive/tags/SharePoint/default.aspx" /><category term="Search" scheme="http://blogs.msdn.com/carloshm/archive/tags/Search/default.aspx" /><category term="support" scheme="http://blogs.msdn.com/carloshm/archive/tags/support/default.aspx" /></entry><entry><title>How to: Programmatically Manage the Crawl of a Content Source in PowerShell </title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/carloshm/archive/2009/03/31/how-to-programmatically-manage-the-crawl-of-a-content-source-in-powershell.aspx" /><id>http://blogs.msdn.com/carloshm/archive/2009/03/31/how-to-programmatically-manage-the-crawl-of-a-content-source-in-powershell.aspx</id><published>2009-03-31T19:53:00Z</published><updated>2009-03-31T19:53:00Z</updated><content type="html">&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;If you have read my &lt;A title="How to: Programmatically Export the Crawl History to a CSV File in PowerShell " href="http://blogs.msdn.com/carloshm/archive/2009/03/31/how-to-programmatically-export-the-crawl-history-to-a-csv-file-in-powershell.aspx" mce_href="http://blogs.msdn.com/carloshm/archive/2009/03/31/how-to-programmatically-export-the-crawl-history-to-a-csv-file-in-powershell.aspx"&gt;previous post&lt;/A&gt; you may think, why did you stop there? Well, that is what I thought too&amp;nbsp;:), and started with &lt;A title="How to: Programmatically Manage the Crawl of a Content Source" href="http://msdn.microsoft.com/en-us/library/aa679491.aspx" mce_href="http://msdn.microsoft.com/en-us/library/aa679491.aspx"&gt;this article&lt;/A&gt; from MSDN.&lt;/P&gt;
&lt;P&gt;We wanted to start managing the crawling of our content source more programmatically, as we have seen that running several at the same time affects the overall process.&lt;/P&gt;
&lt;P&gt;So running these powershell scripts as scheduled task and monitoring the status can improve in crawling.&lt;/P&gt;
&lt;P&gt;You may improve them reusing the context and content sources and&amp;nbsp;doing some &lt;EM&gt;pipeline&lt;/EM&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;to be included in the overall file:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;## SharePoint Reference&lt;BR&gt;[void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint") &lt;BR&gt;[void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint.Administration") &lt;BR&gt;[void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.Office.Server.Search.Administration") &lt;BR&gt;[void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.Office.Server.Search") &lt;BR&gt;[void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.Office.Server") &lt;BR&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;To start an incremental crawl of the content source&lt;/STRONG&gt;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;function global:StartIncremental-Crawl($url, $csname)&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;trap [Exception] {&lt;BR&gt;&amp;nbsp;&amp;nbsp;write-error $("ERROR: " + $_.Exception.GetType().FullName); &lt;BR&gt;&amp;nbsp;&amp;nbsp;write-error $("ERROR: " + $_.Exception.Message); &lt;BR&gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;continue;&amp;nbsp; &amp;nbsp;&lt;BR&gt;&amp;nbsp;}&lt;/P&gt;
&lt;P&gt;&amp;nbsp;$s = new-Object Microsoft.SharePoint.SPSite($url);&lt;BR&gt;&amp;nbsp;$c = [Microsoft.Office.Server.Search.Administration.SearchContext]::GetContext($s);&lt;BR&gt;&amp;nbsp;$sc = new-Object Microsoft.Office.Server.Search.Administration.Content($c);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;$cs = $sc.ContentSources[$csname];&lt;/P&gt;
&lt;P&gt;&amp;nbsp;$cs.StartIncrementalCrawl();&lt;/P&gt;
&lt;P&gt;&amp;nbsp;$s.Dispose();&lt;BR&gt;}&lt;/P&gt;
&lt;P&gt;StartIncremental-Crawl -url &lt;A href="http://your_site_url/"&gt;http://your_site_url&lt;/A&gt; -csname "your content source name"&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;To start a full crawl of the content source&lt;/STRONG&gt;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;function global:StartFull-Crawl($url, $csname)&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;trap [Exception] {&lt;BR&gt;&amp;nbsp;&amp;nbsp;write-error $("ERROR: " + $_.Exception.GetType().FullName); &lt;BR&gt;&amp;nbsp;&amp;nbsp;write-error $("ERROR: " + $_.Exception.Message); &lt;BR&gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;continue;&amp;nbsp; &amp;nbsp;&lt;BR&gt;&amp;nbsp;}&lt;/P&gt;
&lt;P&gt;&amp;nbsp;$s = new-Object Microsoft.SharePoint.SPSite($url);&lt;BR&gt;&amp;nbsp;$c = [Microsoft.Office.Server.Search.Administration.SearchContext]::GetContext($s);&lt;BR&gt;&amp;nbsp;$sc = new-Object Microsoft.Office.Server.Search.Administration.Content($c);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;$cs = $sc.ContentSources[$csname];&lt;/P&gt;
&lt;P&gt;&amp;nbsp;$cs.StartFullCrawl();&lt;/P&gt;
&lt;P&gt;&amp;nbsp;$s.Dispose();&lt;BR&gt;}&lt;/P&gt;
&lt;P&gt;StartFull-Crawl -url &lt;A href="http://your_site_url/"&gt;http://your_site_url&lt;/A&gt; -csname "your content source name"&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;To pause a crawl in process&lt;/STRONG&gt;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;function global:Pause-Crawl($url, $csname)&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;trap [Exception] {&lt;BR&gt;&amp;nbsp;&amp;nbsp;write-error $("ERROR: " + $_.Exception.GetType().FullName); &lt;BR&gt;&amp;nbsp;&amp;nbsp;write-error $("ERROR: " + $_.Exception.Message); &lt;BR&gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;continue;&amp;nbsp; &amp;nbsp;&lt;BR&gt;&amp;nbsp;}&lt;/P&gt;
&lt;P&gt;&amp;nbsp;$s = new-Object Microsoft.SharePoint.SPSite($url);&lt;BR&gt;&amp;nbsp;$c = [Microsoft.Office.Server.Search.Administration.SearchContext]::GetContext($s);&lt;BR&gt;&amp;nbsp;$sc = new-Object Microsoft.Office.Server.Search.Administration.Content($c);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;$cs = $sc.ContentSources[$csname];&lt;/P&gt;
&lt;P&gt;&amp;nbsp;$cs.PauseCrawl();&lt;/P&gt;
&lt;P&gt;&amp;nbsp;$s.Dispose();&lt;BR&gt;}&lt;/P&gt;
&lt;P&gt;Pause-Crawl -url &lt;A href="http://your_site_url/"&gt;http://your_site_url&lt;/A&gt; -csname "your content source name"&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;To resume a paused crawl&lt;/STRONG&gt;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;function global:Resume-Crawl($url, $csname)&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;trap [Exception] {&lt;BR&gt;&amp;nbsp;&amp;nbsp;write-error $("ERROR: " + $_.Exception.GetType().FullName); &lt;BR&gt;&amp;nbsp;&amp;nbsp;write-error $("ERROR: " + $_.Exception.Message); &lt;BR&gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;continue;&amp;nbsp; &amp;nbsp;&lt;BR&gt;&amp;nbsp;}&lt;/P&gt;
&lt;P&gt;&amp;nbsp;$s = new-Object Microsoft.SharePoint.SPSite($url);&lt;BR&gt;&amp;nbsp;$c = [Microsoft.Office.Server.Search.Administration.SearchContext]::GetContext($s);&lt;BR&gt;&amp;nbsp;$sc = new-Object Microsoft.Office.Server.Search.Administration.Content($c);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;$cs = $sc.ContentSources[$csname];&lt;/P&gt;
&lt;P&gt;&amp;nbsp;$cs.ResumeCrawl();&lt;/P&gt;
&lt;P&gt;&amp;nbsp;$s.Dispose();&lt;BR&gt;}&lt;/P&gt;
&lt;P&gt;Resume-Crawl -url &lt;A href="http://your_site_url/"&gt;http://your_site_url&lt;/A&gt; -csname "your content source name"&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;To stop a crawl of the content source&lt;/STRONG&gt;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;function global:Stop-Crawl($url, $csname)&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;trap [Exception] {&lt;BR&gt;&amp;nbsp;&amp;nbsp;write-error $("ERROR: " + $_.Exception.GetType().FullName); &lt;BR&gt;&amp;nbsp;&amp;nbsp;write-error $("ERROR: " + $_.Exception.Message); &lt;BR&gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;continue;&amp;nbsp; &amp;nbsp;&lt;BR&gt;&amp;nbsp;}&lt;/P&gt;
&lt;P&gt;&amp;nbsp;$s = new-Object Microsoft.SharePoint.SPSite($url);&lt;BR&gt;&amp;nbsp;$c = [Microsoft.Office.Server.Search.Administration.SearchContext]::GetContext($s);&lt;BR&gt;&amp;nbsp;$sc = new-Object Microsoft.Office.Server.Search.Administration.Content($c);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;$cs = $sc.ContentSources[$csname];&lt;/P&gt;
&lt;P&gt;&amp;nbsp;$cs.StopCrawl();&lt;/P&gt;
&lt;P&gt;&amp;nbsp;$s.Dispose();&lt;BR&gt;}&lt;/P&gt;
&lt;P&gt;Stop-Crawl -url &lt;A href="http://your_site_url/"&gt;http://your_site_url&lt;/A&gt; -csname "your content source name"&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;To check the crawl status values for a content source&lt;/STRONG&gt;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;function global:Get-CrawlStatus($url)&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;trap [Exception] {&lt;BR&gt;&amp;nbsp;&amp;nbsp;write-error $("ERROR: " + $_.Exception.GetType().FullName); &lt;BR&gt;&amp;nbsp;&amp;nbsp;write-error $("ERROR: " + $_.Exception.Message); &lt;BR&gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;continue;&amp;nbsp; &amp;nbsp;&lt;BR&gt;&amp;nbsp;}&lt;/P&gt;
&lt;P&gt;&amp;nbsp;$s = new-Object Microsoft.SharePoint.SPSite($url);&lt;BR&gt;&amp;nbsp;$c = [Microsoft.Office.Server.Search.Administration.SearchContext]::GetContext($s);&lt;BR&gt;&amp;nbsp;$sc = new-Object Microsoft.Office.Server.Search.Administration.Content($c);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;Write-Output $sc.ContentSources;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;$s.Dispose();&lt;BR&gt;}&lt;/P&gt;
&lt;P&gt;Get-CrawlStatus -url &lt;A href="http://your_site_url/"&gt;http://your_site_url&lt;/A&gt; | Format-Table -property CrawlStatus, CrawlStarted, CrawlCompleted&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Enjoy!&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9523361" width="1" height="1"&gt;</content><author><name>carloshm</name><uri>http://blogs.msdn.com/members/carloshm.aspx</uri></author><category term="SharePoint" scheme="http://blogs.msdn.com/carloshm/archive/tags/SharePoint/default.aspx" /><category term="Codeplex" scheme="http://blogs.msdn.com/carloshm/archive/tags/Codeplex/default.aspx" /><category term="Search" scheme="http://blogs.msdn.com/carloshm/archive/tags/Search/default.aspx" /><category term="MOSS" scheme="http://blogs.msdn.com/carloshm/archive/tags/MOSS/default.aspx" /><category term="HowTo" scheme="http://blogs.msdn.com/carloshm/archive/tags/HowTo/default.aspx" /><category term="Powershell" scheme="http://blogs.msdn.com/carloshm/archive/tags/Powershell/default.aspx" /></entry><entry><title>How to: Programmatically Export the Crawl History to a CSV File in PowerShell</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/carloshm/archive/2009/03/31/how-to-programmatically-export-the-crawl-history-to-a-csv-file-in-powershell.aspx" /><id>http://blogs.msdn.com/carloshm/archive/2009/03/31/how-to-programmatically-export-the-crawl-history-to-a-csv-file-in-powershell.aspx</id><published>2009-03-31T18:51:00Z</published><updated>2009-03-31T18:51:00Z</updated><content type="html">&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;When I came across the article at MSDN &lt;A title="Crawl History to a CSV" href="http://msdn.microsoft.com/en-us/library/cc789570.aspx" mce_href="http://msdn.microsoft.com/en-us/library/cc789570.aspx"&gt;How to: Programmatically Export the Crawl History to a CSV File&lt;/A&gt;&amp;nbsp;I thought I would never create such a tool just for that specific feature, as you end up with additional requirements in order to create an admin tool.&lt;/P&gt;
&lt;P&gt;But today I needed to get data from crawl history, and I didn't want to get them from SQL (remember it is not supported ;)&lt;A title=comment01_carloshm name=comment01_carloshm&gt;&lt;/A&gt;), so I started to write down a simple powershell script to do it. And then I realized that for this atomic actions, indeed it is a great options!: you give admin people multiple commands that they can use/combine to monitor/get information about the environment (and yes many, many things more)&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;## SharePoint Reference&lt;BR&gt;[void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint") &lt;BR&gt;[void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint.Administration") &lt;BR&gt;[void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.Office.Server.Search.Administration") &lt;BR&gt;[void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.Office.Server.Search") &lt;BR&gt;[void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.Office.Server") &lt;BR&gt;&lt;/P&gt;
&lt;P&gt;function global:Get-CrawlHistory($url)&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;trap [Exception] {&lt;BR&gt;&amp;nbsp;&amp;nbsp;write-error $("ERROR: " + $_.Exception.GetType().FullName); &lt;BR&gt;&amp;nbsp;&amp;nbsp;write-error $("ERROR: " + $_.Exception.Message); &lt;BR&gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;continue;&amp;nbsp; &amp;nbsp;&lt;BR&gt;&amp;nbsp;}&lt;/P&gt;
&lt;P&gt;&amp;nbsp;$s = new-Object Microsoft.SharePoint.SPSite($url);&lt;BR&gt;&amp;nbsp;$c = [Microsoft.Office.Server.Search.Administration.SearchContext]::GetContext($s);&lt;BR&gt;&amp;nbsp;$h = new-Object Microsoft.Office.Server.Search.Administration.CrawlHistory($c);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;Write-OutPut $h.GetCrawlHistory();&lt;/P&gt;
&lt;P&gt;&amp;nbsp;$s.Dispose();&lt;BR&gt;}&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Then you can just execute: Get-CrawlHistory -url &lt;A href="http://your_site_url/"&gt;http://your_site_url/&lt;/A&gt; | &lt;A title=Export-Csv href="https://www.microsoft.com/technet/scriptcenter/topics/msh/cmdlets/export-csv.mspx" mce_href="https://www.microsoft.com/technet/scriptcenter/topics/msh/cmdlets/export-csv.mspx"&gt;Export-Csv&lt;/A&gt; your_path_and_file_name&lt;/P&gt;
&lt;P&gt;Then you can import to excel and make some charts.&lt;/P&gt;
&lt;P&gt;In order to filter the information some useful columns should be denormalized: CrawlType, ContentSourceID, Status.&lt;/P&gt;
&lt;P&gt;Cheers!&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9523116" width="1" height="1"&gt;</content><author><name>carloshm</name><uri>http://blogs.msdn.com/members/carloshm.aspx</uri></author><category term="SharePoint" scheme="http://blogs.msdn.com/carloshm/archive/tags/SharePoint/default.aspx" /><category term="Codeplex" scheme="http://blogs.msdn.com/carloshm/archive/tags/Codeplex/default.aspx" /><category term="Search" scheme="http://blogs.msdn.com/carloshm/archive/tags/Search/default.aspx" /><category term="MOSS" scheme="http://blogs.msdn.com/carloshm/archive/tags/MOSS/default.aspx" /><category term="HowTo" scheme="http://blogs.msdn.com/carloshm/archive/tags/HowTo/default.aspx" /><category term="Powershell" scheme="http://blogs.msdn.com/carloshm/archive/tags/Powershell/default.aspx" /></entry><entry><title>Use jQuery to make FrontPage requests</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/carloshm/archive/2009/01/22/use-jquery-to-make-frontpage-rpc-request.aspx" /><id>http://blogs.msdn.com/carloshm/archive/2009/01/22/use-jquery-to-make-frontpage-rpc-request.aspx</id><published>2009-01-22T19:56:00Z</published><updated>2009-01-22T19:56:00Z</updated><content type="html">&lt;P mce_keep="true"&gt;Hi,&lt;/P&gt;
&lt;P mce_keep="true"&gt;It is interesting to see JQuery growing in the SharePoint space. For sure client APIs will enrich the ecosystem of SharePoint applications.&lt;/P&gt;
&lt;P mce_keep="true"&gt;Some time ago, we needed a way to get some information we were storing in the property bag of our SPWebs. As the process to store the values were automated and the tests done programmatically; we really didn't care about any tool to manually check its values.&lt;/P&gt;
&lt;P mce_keep="true"&gt;But, the day arrived and we needed to review them in&amp;nbsp;preproduction environment. So how will you do it? well there are several ways to do it:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Create a console/web&amp;nbsp;application and implement it through the &lt;A title="SPWeb.Properties Property (Microsoft.SharePoint)" href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spweb.properties.aspx" mce_href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spweb.properties.aspx"&gt;OM&lt;/A&gt;.&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Open SharePoint Designer and read &lt;A title="Viewing Property Bag Values with SharePoint Designer " href="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2008/06/24/viewing-property-bag-values-with-sharepoint-designer.aspx" mce_href="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2008/06/24/viewing-property-bag-values-with-sharepoint-designer.aspx"&gt;them&lt;/A&gt;&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Install &lt;A title="SharePoint Property Bag Settings " href="http://www.codeplex.com/pbs" mce_href="http://www.codeplex.com/pbs"&gt;third&lt;/A&gt; &lt;A title=PropertyBagFeature href="http://www.codeplex.com/SPWCMUtils/Release/ProjectReleases.aspx?ReleaseId=5040" mce_href="http://www.codeplex.com/SPWCMUtils/Release/ProjectReleases.aspx?ReleaseId=5040"&gt;party&lt;/A&gt; solution to do the job&lt;/DIV&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;P mce_keep="true"&gt;They are all good candidates, but we couldn't neither install nor run a SPD instance or custom code; so I decided to run a web page :)&lt;/P&gt;
&lt;P mce_keep="true"&gt;Here it is when JQuery comes to the rescue:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Download JQuery library from jquery.com and upload it to a (test) document library&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Create a webpartpage in the same document library&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Drop a content web editor webpart on any webpartzone&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Update the contents of html with something similar to the following snippet, where the path starts from the web you want information from:&lt;/DIV&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;DIV style="COLOR: blue" mce_keep="true"&gt;&lt;CODE&gt;
&lt;P mce_keep="true"&gt;&amp;lt;script type="text/javascript" src="jquery-1.3.1.min.js"&amp;gt;&amp;lt;/script&amp;gt;&lt;BR&gt;&amp;lt;script&amp;gt;&lt;BR&gt;$.ajaxSetup({&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; beforeSend: function(xhr) {xhr.setRequestHeader("Accept", "auth/sicily");xhr.setRequestHeader("X-Vermeer-Content-Type", "application/x-www-form-urlencoded");}&lt;BR&gt;}); 
&lt;P mce_keep="true"&gt;$.post("/site/_vti_bin/_vti_aut/author.dll", { method: "open service"},&lt;BR&gt;&amp;nbsp; function(data){&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $("#vermeer_content").append(data);&lt;BR&gt;&amp;nbsp; });&lt;BR&gt;&amp;lt;/script&amp;gt;&lt;BR&gt;&amp;lt;div id="vermeer_content"&amp;gt;&lt;BR&gt;&amp;lt;/div&amp;gt;&lt;/P&gt;&lt;/CODE&gt;&lt;/DIV&gt;
&lt;P mce_keep="true"&gt;you will get something like this:&lt;/P&gt;
&lt;P&gt;&lt;A title="JQuery Response FRPC" href="http://blogs.msdn.com/photos/carloshm/picture9432735.aspx" mce_href="http://blogs.msdn.com/photos/carloshm/picture9432735.aspx"&gt;&lt;IMG style="WIDTH: 352px; HEIGHT: 425px" title="JQuery Response FRPC" border=0 alt="JQuery Response FRPC" align=middle src="http://blogs.msdn.com/photos/carloshm/images/9432735/352x425.aspx" width=352 height=425 mce_src="http://blogs.msdn.com/photos/carloshm/images/9432735/352x425.aspx"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;the sample just sends a request with a method that&amp;nbsp;provides meta-information for a Web site, in this case to&amp;nbsp;our client application.&lt;/P&gt;
&lt;DIV id=syntaxSection class=section&gt;
&lt;DIV id=ctl00_rs1_mainContentContainer_ctl01_other&gt;
&lt;DIV class=CodeSnippetTitleBar&gt;
&lt;DIV class=CodeDisplayLanguage&gt;&lt;/DIV&gt;&lt;/DIV&gt;
&lt;DIV dir=ltr&gt;&lt;PRE style="WORD-WRAP: break-word; WORD-BREAK: break-all" id=ctl00_rs1_mainContentContainer_ctl01other class=libCScode space="preserve"&gt;method=open service:server_extension_version&amp;amp;service_name=/[&amp;amp;effective_protocol_version=version]&lt;/PRE&gt;&lt;PRE style="WORD-WRAP: break-word; WORD-BREAK: break-all" class=libCScode space="preserve"&gt;References:&lt;/PRE&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;
&lt;P&gt;&lt;A title="open service Method" href="http://msdn.microsoft.com/en-us/library/ms446353.aspx" mce_href="http://msdn.microsoft.com/en-us/library/ms446353.aspx"&gt;open service Method&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A title="[MS-FPSE]: FrontPage Server Extensions Remote Protocol Specification" href="http://msdn.microsoft.com/en-us/library/cc231828(PROT.13).aspx" mce_href="http://msdn.microsoft.com/en-us/library/cc231828(PROT.13).aspx"&gt;[MS-FPSE]: FrontPage Server Extensions Remote Protocol Specification&lt;/A&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9369338" width="1" height="1"&gt;</content><author><name>carloshm</name><uri>http://blogs.msdn.com/members/carloshm.aspx</uri></author><category term="SharePoint" scheme="http://blogs.msdn.com/carloshm/archive/tags/SharePoint/default.aspx" /><category term="MOSS" scheme="http://blogs.msdn.com/carloshm/archive/tags/MOSS/default.aspx" /><category term="JQuery" scheme="http://blogs.msdn.com/carloshm/archive/tags/JQuery/default.aspx" /><category term="FrontPage RP" scheme="http://blogs.msdn.com/carloshm/archive/tags/FrontPage+RP/default.aspx" /></entry></feed>