<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2412345252286453357</id><updated>2012-02-16T15:57:42.798+08:00</updated><title type='text'>David Lim's SharePoint Blog</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://davidlimsharepoint.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2412345252286453357/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://davidlimsharepoint.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>David</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://3.bp.blogspot.com/--ui1lmzzdqo/TZFcC-LQj9I/AAAAAAAAACk/8Odp0iLBPTA/s220/David2.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>15</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2412345252286453357.post-3644763309813313368</id><published>2011-02-23T16:52:00.001+08:00</published><updated>2011-02-23T16:55:04.530+08:00</updated><title type='text'>Setting Up SMS Alert on SharePoint 2010 Lists/Libraries</title><content type='html'>For the past week,&amp;nbsp;I have been working on an enterpise microblogging&amp;nbsp;POC for a customer in&amp;nbsp;Australia,&amp;nbsp;running on Microsoft SharePoint Server 2010 platform.&amp;nbsp;&amp;nbsp;It's an interesting POC and one&amp;nbsp;of the key requirements implemented was the capability&amp;nbsp;on sending SMS alerts&amp;nbsp;for changes&amp;nbsp;in SharePoint lists/libraries that interest the users.&lt;br /&gt;&lt;br /&gt;We found an SMS provider that offers a trial account which enables us to send SMS from our &amp;nbsp;SharePoint by calling their Web Services. It is Red Oxygen global SMS gateway (30 days trial)&lt;br /&gt;&lt;br /&gt;Below are the steps in setting up and configuring the SMS alert:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Obtain the root certificate for the SMS service provider's HTTPS Web address, which is &lt;a href="https://www.redoxygen.net/oms/service.asmx"&gt;https://www.redoxygen.net/oms/service.asmx&lt;/a&gt;.&amp;nbsp; Open the URL using your browser and find out&amp;nbsp;its SSL certificate.&amp;nbsp; The certificate is issued by Go Daddy Secure Certification Authority. &lt;a name='more'&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Open the certificate store in your machine using MMC Certificate snap-in and export the Go Daddy issued&amp;nbsp;certificate into a .cer file.&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Open a Command Prompt window.&lt;/li&gt;&lt;li&gt;Type mmc and press the ENTER key. Note that to view certificates in the local machine store, you must be in the Administrator role.&lt;/li&gt;&lt;li&gt;On the File menu, click Add/Remove Snap In.&lt;/li&gt;&lt;li&gt;Click Add.&lt;/li&gt;&lt;li&gt;In the Add Standalone Snap-in dialog box, select Certificates.&lt;/li&gt;&lt;li&gt;Click Add.&lt;/li&gt;&lt;li&gt;In the Certificates snap-in dialog box, select Computer account and click Next. &lt;/li&gt;&lt;li&gt;In the Select Computer dialog box, select Local Computer and click Finish.&lt;/li&gt;&lt;li&gt;Click OK.&lt;/li&gt;&lt;li&gt;In the Console Root window, click Certificates (Local Computer) to view the certificate stores for the computer.&lt;/li&gt;&lt;li&gt;Click Trusted Root Certification Authorities and click Certificates&lt;/li&gt;&lt;li&gt;Fromt the certificate list, find certificate issued&amp;nbsp;by Go Daddy Class 2 Certification Authority&lt;/li&gt;&lt;li&gt;Right click on it, choose All Tasks, and then Export&lt;/li&gt;&lt;li&gt;Click Next two times&lt;/li&gt;&lt;li&gt;In File to Export,&amp;nbsp;fill-in the path and the file name (i.e. c:\godaddy.cer)&lt;/li&gt;&lt;li&gt;Click Next and click Finish&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Import&amp;nbsp;the root certificate and create a trusted root authority by using Windows PowerShell&lt;/li&gt;&lt;ul style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;&lt;li&gt;On the Start menu, click All Programs.&lt;/li&gt;&lt;li&gt;Click Microsoft SharePoint 2010 Products.&lt;/li&gt;&lt;li&gt;Right click SharePoint 2010 Management Shell and Run as Administrator&lt;/li&gt;&lt;li style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;Get the root certificate by typing&amp;nbsp;in:&lt;/li&gt;&lt;ul&gt;&lt;li style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;$cert = Get-PfxCertificate c:\godaddy.cer&lt;/li&gt;&lt;/ul&gt;&lt;li style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;Create a trusted root authority by typing in:&lt;/li&gt;&lt;ul&gt;&lt;li style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;New-SPTrustedRootAuthority -Name&amp;nbsp;GoDaddy -Certificate $cert&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;div class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-Dat32XG9BL4/TWTFUD1ydGI/AAAAAAAAACU/Bcn1l9Ej0z4/s1600/cert.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="197" j6="true" src="http://4.bp.blogspot.com/-Dat32XG9BL4/TWTFUD1ydGI/AAAAAAAAACU/Bcn1l9Ej0z4/s400/cert.jpg" width="400" /&gt;&lt;/a&gt;&amp;nbsp; &lt;/div&gt;&lt;ul&gt;&lt;li&gt;Configure&amp;nbsp;the&amp;nbsp;mobile account for a server farm by using Central Administration&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;On the Central Administration Home page, click System Settings.&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;On the System Settings page, in the E-Mail and Text Messages (SMS) section, click Configure mobile account. &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;On the Mobile Account Settings page, in the Text Message (SMS) Service Settings section&lt;/div&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;The URL of Text Message (SMS) Service: &lt;a href="https://www.redoxygen.net/oms/service.asmx"&gt;https://www.redoxygen.net/oms/service.asmx&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;User name: [your trial account user name]&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;Password: [your trial account password]&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;To confirm that the URL and user credentials are correct, click Test Service.&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;Click OK.&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;That's it!&amp;nbsp; Your SMS alert service is up and running.&amp;nbsp; To test, go to a document library and create an Alert Me setting for the changes in the library (Notes: Alert Me button will not be shown up in the Ribbon&amp;nbsp;of the library if the outgoing email settings have not been configured).&amp;nbsp; Upload a new file into the library, wait for a few minutes, and finger cross ... you will receive the SMS alert in your mobile/smart phone.&lt;/div&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-gGtgmy-Wr80/TWTKg8eaqsI/AAAAAAAAACY/IWVNXaUwhgE/s1600/sms+alert.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" j6="true" src="http://1.bp.blogspot.com/-gGtgmy-Wr80/TWTKg8eaqsI/AAAAAAAAACY/IWVNXaUwhgE/s320/sms+alert.PNG" width="213" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2412345252286453357-3644763309813313368?l=davidlimsharepoint.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://davidlimsharepoint.blogspot.com/feeds/3644763309813313368/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://davidlimsharepoint.blogspot.com/2011/02/setting-up-sms-alert-on-sharepoint-2010.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2412345252286453357/posts/default/3644763309813313368'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2412345252286453357/posts/default/3644763309813313368'/><link rel='alternate' type='text/html' href='http://davidlimsharepoint.blogspot.com/2011/02/setting-up-sms-alert-on-sharepoint-2010.html' title='Setting Up SMS Alert on SharePoint 2010 Lists/Libraries'/><author><name>David</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://3.bp.blogspot.com/--ui1lmzzdqo/TZFcC-LQj9I/AAAAAAAAACk/8Odp0iLBPTA/s220/David2.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-Dat32XG9BL4/TWTFUD1ydGI/AAAAAAAAACU/Bcn1l9Ej0z4/s72-c/cert.jpg' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2412345252286453357.post-3565136368966650376</id><published>2011-02-23T15:01:00.000+08:00</published><updated>2011-02-23T15:01:31.867+08:00</updated><title type='text'>MCPD on SharePoint Developer 2010 Certified</title><content type='html'>I have passed Exam 70-573:&amp;nbsp;&lt;span class="tl"&gt;&lt;a class="l noline" href="http://www.microsoft.com/learning/en/us/exam.aspx?ID=70-573" onmousedown="return clk(this.href,'','','','1','','0CCAQFjAA')"&gt;&lt;span style="color: #2200c1;"&gt;TS: Microsoft SharePoint 2010, Application Development&lt;/span&gt;&lt;/a&gt;&amp;nbsp;early this month, following the&amp;nbsp;previous three SharePoint 2010 beta exams I passed on mid last year.&amp;nbsp; This&amp;nbsp;entitled me for MCPD on SharePoint Developer 2010 credential.&amp;nbsp; &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2412345252286453357-3565136368966650376?l=davidlimsharepoint.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://davidlimsharepoint.blogspot.com/feeds/3565136368966650376/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://davidlimsharepoint.blogspot.com/2011/02/mcpd-on-sharepoint-developer-2010.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2412345252286453357/posts/default/3565136368966650376'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2412345252286453357/posts/default/3565136368966650376'/><link rel='alternate' type='text/html' href='http://davidlimsharepoint.blogspot.com/2011/02/mcpd-on-sharepoint-developer-2010.html' title='MCPD on SharePoint Developer 2010 Certified'/><author><name>David</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://3.bp.blogspot.com/--ui1lmzzdqo/TZFcC-LQj9I/AAAAAAAAACk/8Odp0iLBPTA/s220/David2.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2412345252286453357.post-4068458155507435001</id><published>2010-08-02T17:05:00.002+08:00</published><updated>2010-08-02T17:08:09.990+08:00</updated><title type='text'>Microsoft SharePoint Server 2010 encountered an error during setup. One or more required office components failed to complete successfully.</title><content type='html'>I encountered this error today after trying to reinstall&amp;nbsp;SharePoint 2010 on my Windows 7 Enterprise 64 bit&amp;nbsp;machine.&amp;nbsp; It failed near the end of the binary installation.&amp;nbsp; From the log file, I found that the “One or more required office components” failed during the&amp;nbsp;setup was the installation of the SQL Server&amp;nbsp;Express database for SharePoint.&amp;nbsp; And the root cause of the problem was in the Windows Registry, which is HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\PendingFileRenameOperations.&amp;nbsp; &lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;In my machine, this key contains the following values:&lt;br /&gt;\??\C:\Windows\system32\spool\DRIVERS\x64\3\New\PCLXL.GPD&lt;br /&gt;\??\C:\Windows\system32\spool\DRIVERS\x64\3\PCLXL.GPD&lt;br /&gt;\??\C:\Windows\system32\spool\DRIVERS\x64\3\New\PJL.GPD&lt;br /&gt;\??\C:\Windows\system32\spool\DRIVERS\x64\3\PJL.GPD&lt;br /&gt;\??\C:\Windows\system32\spool\DRIVERS\x64\3\New\hpcdmc64.dll&lt;br /&gt;\??\C:\Windows\system32\spool\DRIVERS\x64\3\hpcdmc64.dll&lt;br /&gt;\??\C:\Windows\system32\spool\DRIVERS\x64\3\New\hpbcfgre.DLL&lt;br /&gt;\??\C:\Windows\system32\spool\DRIVERS\x64\3\hpbcfgre.DLL&lt;br /&gt;\??\C:\Windows\system32\spool\DRIVERS\x64\3\New\hpmpm081.dll&lt;br /&gt;\??\C:\Windows\system32\spool\DRIVERS\x64\3\hpmpm081.dll&lt;br /&gt;\??\C:\Windows\system32\spool\DRIVERS\x64\3\New\hpmpw081.dll&lt;br /&gt;\??\C:\Windows\system32\spool\DRIVERS\x64\3\hpmpw081.dll&lt;br /&gt;\??\C:\Windows\system32\spool\DRIVERS\x64\3\New\hpcsat20.dll&lt;br /&gt;\??\C:\Windows\system32\spool\DRIVERS\x64\3\hpcsat20.dll&lt;br /&gt;\??\C:\Windows\system32\spool\DRIVERS\x64\3\New\FxCompChannel_x64.dll&lt;br /&gt;\??\C:\Windows\system32\spool\DRIVERS\x64\3\FxCompChannel_x64.dll&lt;br /&gt;\??\C:\Windows\system32\spool\DRIVERS\x64\3\New\cioum.dll&lt;br /&gt;\??\C:\Windows\system32\spool\DRIVERS\x64\3\cioum.dll&lt;br /&gt;\??\C:\Windows\system32\spool\DRIVERS\x64\3\New\cioum64.msi&lt;br /&gt;\??\C:\Windows\system32\spool\DRIVERS\x64\3\cioum64.msi&lt;br /&gt;\??\C:\Windows\system32\spool\DRIVERS\x64\3\New\hppdcompio.dll&lt;br /&gt;\??\C:\Windows\system32\spool\DRIVERS\x64\3\hppdcompio.dll&lt;br /&gt;\??\C:\Windows\system32\spool\DRIVERS\x64\3\New\HPJobCaps.dll&lt;br /&gt;\??\C:\Windows\system32\spool\DRIVERS\x64\3\HPJobCaps.dll&lt;br /&gt;\??\C:\Windows\system32\spool\DRIVERS\x64\3\New\hpfxcomw.dll&lt;br /&gt;\??\C:\Windows\system32\spool\DRIVERS\x64\3\hpfxcomw.dll&lt;br /&gt;\??\C:\Config.Msi\1daf14.rbf&lt;br /&gt;\??\C:\Config.Msi\1daf16.rbf&lt;br /&gt;\??\C:\Config.Msi\1daf18.rbf&lt;br /&gt;\??\C:\Config.Msi\f21b89.rbf&lt;br /&gt;&lt;br /&gt;The SQL Server Express install must check the HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\PendingFileRenameOperations value and throw the restart required error when there is a value in this key.&amp;nbsp; To solve this issue and get SharePoint 2010 binary successfully installed is by removing the values in this key and then rerunning the SharePoint Server 2010&amp;nbsp;setup file.&amp;nbsp; There is no need&amp;nbsp;to restart the&amp;nbsp;machine after changing the registry value.&lt;br /&gt;&lt;br /&gt;Notes: Please backup your registry key first before removing the value.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2412345252286453357-4068458155507435001?l=davidlimsharepoint.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://davidlimsharepoint.blogspot.com/feeds/4068458155507435001/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://davidlimsharepoint.blogspot.com/2010/08/microsoft-sharepoint-server-2010.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2412345252286453357/posts/default/4068458155507435001'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2412345252286453357/posts/default/4068458155507435001'/><link rel='alternate' type='text/html' href='http://davidlimsharepoint.blogspot.com/2010/08/microsoft-sharepoint-server-2010.html' title='Microsoft SharePoint Server 2010 encountered an error during setup. One or more required office components failed to complete successfully.'/><author><name>David</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://3.bp.blogspot.com/--ui1lmzzdqo/TZFcC-LQj9I/AAAAAAAAACk/8Odp0iLBPTA/s220/David2.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2412345252286453357.post-1795520869917697068</id><published>2010-07-12T16:06:00.002+08:00</published><updated>2010-07-13T11:44:45.547+08:00</updated><title type='text'>SharePoint 2010 Certified!</title><content type='html'>Praise the Lord!&lt;br /&gt;&lt;br /&gt;Last weekend I got&amp;nbsp;some pleasant news from Microsoft Certification Program Team.&amp;nbsp; I passed two&amp;nbsp; Microsoft SharePoint 2010 beta exams taken on last May 25, which are &lt;a href="http://www.microsoft.com/learning/en/us/exam.aspx?ID=70-667&amp;amp;locale=en-us"&gt;Exam 70-667 TS: Microsoft SharePoint 2010, Configuring&lt;/a&gt;&amp;nbsp;and &lt;a href="http://www.microsoft.com/learning/en/us/exam.aspx?ID=70-668&amp;amp;locale=en-us"&gt;Exam 70-668 PRO: Microsoft SharePoint 2010, Administrator&lt;/a&gt;.&amp;nbsp; This entitles me for&amp;nbsp;both &lt;a href="http://www.microsoft.com/learning/en/us/certification/cert-sharepoint-server.aspx#tab2"&gt;MCTS - SharePoint 2010, Configuration&lt;/a&gt; and &lt;a href="http://www.microsoft.com/learning/en/us/certification/cert-sharepoint-server.aspx#tab3"&gt;MCITP - SharePoint Administrator 2010&lt;/a&gt; credentials.&lt;br /&gt;&lt;br /&gt;On top of that, I also passed &lt;a href="http://www.microsoft.com/learning/en/us/Exam.aspx?ID=70-576&amp;amp;locale=en-us"&gt;Exam 70-576&amp;nbsp;PRO: Designing and Developing Microsoft SharePoint 2010 Applications&lt;/a&gt; beta exam on June 9, counted toward MCPD: SharePoint Developer 2010 credential. One more exam to go is &lt;a href="http://www.microsoft.com/learning/en/us/exam.aspx?ID=70-573&amp;amp;locale=en-us"&gt;Exam 70-573 TS: Microsoft SharePoint 2010, Application Development&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I am very glad to be again among the very first group of people worldwide achieving this credential.&amp;nbsp; It's similiar to my SharePoint 2007 and .NET certification achievements&amp;nbsp;many years back.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2412345252286453357-1795520869917697068?l=davidlimsharepoint.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://davidlimsharepoint.blogspot.com/feeds/1795520869917697068/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://davidlimsharepoint.blogspot.com/2010/07/sharepoint-2010-certified.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2412345252286453357/posts/default/1795520869917697068'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2412345252286453357/posts/default/1795520869917697068'/><link rel='alternate' type='text/html' href='http://davidlimsharepoint.blogspot.com/2010/07/sharepoint-2010-certified.html' title='SharePoint 2010 Certified!'/><author><name>David</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://3.bp.blogspot.com/--ui1lmzzdqo/TZFcC-LQj9I/AAAAAAAAACk/8Odp0iLBPTA/s220/David2.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2412345252286453357.post-5277182701524946468</id><published>2010-07-06T15:51:00.004+08:00</published><updated>2010-07-06T16:00:27.245+08:00</updated><title type='text'>AvePoint Content Shield: A Superior Content Filtering Solution for SharePoint 2007</title><content type='html'>One of&amp;nbsp;the requirements that&amp;nbsp;we have to deliver for our client&amp;nbsp;is to implement a content filtering solution for our SharePoint 2007&amp;nbsp;farm with the following core&amp;nbsp;capabilities:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The solution can perform real time scanning of all content prior to upload for instance(s) of forbidden keyword/phrases and file types, and can block or replace the violating content accordingly&lt;/li&gt;&lt;li&gt;The solution can perform scheduled scanning of existing content which have been uploaded to the sites&amp;nbsp;for instance(s) of forbidden keyword/phrases and file types, and can remove the violating content accordingly&lt;/li&gt;&lt;li&gt;Each site collection&amp;nbsp;can has its own filtering dictionary, containing the list of&amp;nbsp;&amp;nbsp;forbidden keyword/phrases and file types, and its own filtering profile, containing the list of actions to be taken for violating content based on scanning type, such as block, delete, remove content with error message, send email to content&amp;nbsp;creator or modifier, etc.&amp;nbsp; This is actually the main requirement since each site collection can be owned by different agencies and each agency has its own content policy.&amp;nbsp; For example, some agencies&amp;nbsp;might allow .avi content in their sites, while other agencies&amp;nbsp;might prohibit them&lt;/li&gt;&lt;li&gt;The content filtering can be performed on&amp;nbsp;lists, list attachments, and document libraries for items where their iFilters are installed, including zipped items&lt;/li&gt;&lt;li&gt;The solution provides audit trails for all the actions taken, such as block, delete, etc.&lt;/li&gt;&lt;li&gt;The solution user interface is integrated with SharePoint Central Administration&lt;/li&gt;&lt;/ul&gt;&lt;a name='more'&gt;&lt;/a&gt;SharePoint 2007 does have&amp;nbsp;some sort of&amp;nbsp;content filtering capability.&amp;nbsp; However, it can only filter the content based on the forbidden file types.&amp;nbsp; We can go to &lt;strong&gt;&lt;em&gt;Central Administation - Operations &lt;/em&gt;&lt;/strong&gt;tab and then click &lt;em&gt;&lt;strong&gt;Blocked File Types&lt;/strong&gt; &lt;/em&gt;link under &lt;strong&gt;&lt;em&gt;Security Configuration&lt;/em&gt;&lt;/strong&gt; to define the list of forbidden file types for each web application.&amp;nbsp; But there is no capability and setting&amp;nbsp;to filter the content based on forbidden keyword/phrases.&amp;nbsp; Moreover, we also cannot apply the file type based&amp;nbsp;content filtering&amp;nbsp;at a specific site collection.&amp;nbsp; The granularity is at web application level, which means&amp;nbsp;the filtering policy&amp;nbsp;will be the same for all site collections under the web application.&lt;br /&gt;&lt;br /&gt;Another possible solution is Microsoft Forefront Security for SharePoint, which provides&amp;nbsp;both file type and keyword/phrases&amp;nbsp;based content filtering.&amp;nbsp; However,&amp;nbsp;the filtering policy also cannot be applied at the site collection level.&amp;nbsp; The granularity is at web application level.&lt;br /&gt;&lt;br /&gt;After some researches,&amp;nbsp;we finally found a suitable content filtering solution from AvePoint, a Microsoft Gold Certified Partner. The AvePoint Content Shield perfectly meets our requirements.&amp;nbsp; They do have the capability the perform real time and scheduled scanning of all content based on both&amp;nbsp;keyword/phrases and file types.&amp;nbsp; Each type of scanning has its own actions that can be chosen&amp;nbsp;for its filtering profile.&amp;nbsp; For example, for real time scanning you might want to block or remove the content with error message for violating contents, while for scheduled scanning you might just want to delete the violating contents.&amp;nbsp; The filtering dictionary and&amp;nbsp;profile&amp;nbsp;are configurable and the most important thing is it can be applied at a site collection level.&amp;nbsp; Hence, different site collections can have their own filtering policy. From the user interface perspective, it is nicely integrated with Central Admin where we can also see the audit trails for the scanning and filtering activities there.&lt;br /&gt;&lt;br /&gt;Below is the screen for AvePoint Content Shield administration in Central Administration:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_1SOFwSlqLjM/TDLfHuS8cQI/AAAAAAAAABA/O41FqWTNIWw/s1600/1.JPG" imageanchor="1" style="clear: left; cssfloat: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" rw="true" src="http://3.bp.blogspot.com/_1SOFwSlqLjM/TDLfHuS8cQI/AAAAAAAAABA/O41FqWTNIWw/s320/1.JPG" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Below is the screen where we can define content dictionary (keyword/phrases) that can be applied at different site collections later on:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_1SOFwSlqLjM/TDLfrAcHjaI/AAAAAAAAABI/eEbElFsSPH0/s1600/2.JPG" imageanchor="1" style="clear: left; cssfloat: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" rw="true" src="http://4.bp.blogspot.com/_1SOFwSlqLjM/TDLfrAcHjaI/AAAAAAAAABI/eEbElFsSPH0/s320/2.JPG" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Below is the screen where we can define&amp;nbsp;file type&amp;nbsp;dictionary that can be applied at different site collections later on:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_1SOFwSlqLjM/TDLf0CEtCEI/AAAAAAAAABQ/8qvoiwbTvWc/s1600/3.JPG" imageanchor="1" style="clear: left; cssfloat: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" rw="true" src="http://2.bp.blogspot.com/_1SOFwSlqLjM/TDLf0CEtCEI/AAAAAAAAABQ/8qvoiwbTvWc/s320/3.JPG" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Below is the screen where we can define our own filtering profiles that can be applied at different site collections later on:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_1SOFwSlqLjM/TDLgHKkOpJI/AAAAAAAAABY/P68lx1eorDY/s1600/4.JPG" imageanchor="1" style="clear: left; cssfloat: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" rw="true" src="http://3.bp.blogspot.com/_1SOFwSlqLjM/TDLgHKkOpJI/AAAAAAAAABY/P68lx1eorDY/s320/4.JPG" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_1SOFwSlqLjM/TDLgOr6l9pI/AAAAAAAAABg/aA-GbWB0ygM/s1600/5.JPG" imageanchor="1" style="clear: left; cssfloat: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" rw="true" src="http://4.bp.blogspot.com/_1SOFwSlqLjM/TDLgOr6l9pI/AAAAAAAAABg/aA-GbWB0ygM/s320/5.JPG" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2412345252286453357-5277182701524946468?l=davidlimsharepoint.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://davidlimsharepoint.blogspot.com/feeds/5277182701524946468/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://davidlimsharepoint.blogspot.com/2010/07/avepoint-content-shield-superior.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2412345252286453357/posts/default/5277182701524946468'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2412345252286453357/posts/default/5277182701524946468'/><link rel='alternate' type='text/html' href='http://davidlimsharepoint.blogspot.com/2010/07/avepoint-content-shield-superior.html' title='AvePoint Content Shield: A Superior Content Filtering Solution for SharePoint 2007'/><author><name>David</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://3.bp.blogspot.com/--ui1lmzzdqo/TZFcC-LQj9I/AAAAAAAAACk/8Odp0iLBPTA/s220/David2.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_1SOFwSlqLjM/TDLfHuS8cQI/AAAAAAAAABA/O41FqWTNIWw/s72-c/1.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2412345252286453357.post-626508645654244669</id><published>2010-07-01T16:44:00.001+08:00</published><updated>2010-07-01T16:46:59.471+08:00</updated><title type='text'>Replica is inconsistent error in Data Protection Manager 2007</title><content type='html'>I encountered this replica is inconsistent&amp;nbsp;error for&amp;nbsp;protection status of SharePoint Farm Configuration Database&amp;nbsp;under Protection tab&amp;nbsp;inside DPM 2007 Administrator Console.&amp;nbsp; The suggestion given by DPM admin console to solve the error is by performing consistency check&amp;nbsp;on the farm configuration database.&amp;nbsp; However after running the consistency check for several times, it didn't fix the error and consequently all protection activities, like recovery point creation&amp;nbsp;for the SharePoint farm also failed.&lt;br /&gt;&lt;br /&gt;After some troubleshooting,&amp;nbsp; I found out that the root cause of this issue&amp;nbsp;was due to the addition of a new content database to store a new site collection in the SharePoint farm. This made the replica of the data source (content databases)&amp;nbsp;are inconsistent with the data source (content databases)&amp;nbsp;on the protected farm.&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;To solve this issue, I need to modify the protection group, containing the error, by re-running the wizard (right click the protection group under Protection tab and choose Modify protection group).&amp;nbsp; Then just clicked the Next button and finally the Update Group button to complete the process.&lt;br /&gt;&lt;br /&gt;Tips:&amp;nbsp;In the first screen of the Modify protection group wizard (Select Group Members), you have to expand the SharePoint server node under Available members&amp;nbsp;until&amp;nbsp;its farm configuration database node&amp;nbsp;is displayed before clicking the Next button.&amp;nbsp; Without doing this, the Modify protection group wizard will not be able to fix the inconsistent replica issue for the farm configuration database. This is the most&amp;nbsp;tricky part.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2412345252286453357-626508645654244669?l=davidlimsharepoint.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://davidlimsharepoint.blogspot.com/feeds/626508645654244669/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://davidlimsharepoint.blogspot.com/2010/07/replica-is-inconsistent-error-in-data.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2412345252286453357/posts/default/626508645654244669'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2412345252286453357/posts/default/626508645654244669'/><link rel='alternate' type='text/html' href='http://davidlimsharepoint.blogspot.com/2010/07/replica-is-inconsistent-error-in-data.html' title='Replica is inconsistent error in Data Protection Manager 2007'/><author><name>David</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://3.bp.blogspot.com/--ui1lmzzdqo/TZFcC-LQj9I/AAAAAAAAACk/8Odp0iLBPTA/s220/David2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2412345252286453357.post-5052324312755615834</id><published>2010-06-24T10:30:00.001+08:00</published><updated>2010-06-24T10:30:30.267+08:00</updated><title type='text'>Failed to create the configuration database - User cannot be found</title><content type='html'>I got the above error message when running the SharePoint 2010 Products Configuration Wizard after installing the binaries on my Windows 7 64-bit machine.&amp;nbsp; Then from the event log, it&amp;nbsp;was Event ID 104 as below:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Failed to create the configuration database.&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;An exception of type Microsoft.SharePoint.SPException was thrown. Additional exception information: User cannot be found.&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;a name='more'&gt;&lt;/a&gt;Microsoft.SharePoint.SPException: User cannot be found.&lt;br /&gt;&lt;em&gt;at Microsoft.SharePoint.Administration.SPSiteCollection.Add(SPContentDatabase database, SPSiteSubscription siteSubscription, String siteUrl, String title, String description, UInt32 nLCID, String webTemplate, String ownerLogin, String ownerName, String ownerEmail, String secondaryContactLogin, String secondaryContactName, String secondaryContactEmail, String quotaTemplate, String sscRootWebUrl, Boolean useHostHeaderAsSiteName)&lt;/em&gt;&lt;br /&gt;&lt;em&gt;at Microsoft.SharePoint.Administration.SPSiteCollection.Add(SPSiteSubscription siteSubscription, String siteUrl, String title, String description, UInt32 nLCID, String webTemplate, String ownerLogin, String ownerName, String ownerEmail, String secondaryContactLogin, String secondaryContactName, String secondaryContactEmail, Boolean useHostHeaderAsSiteName)&lt;/em&gt;&lt;br /&gt;&lt;em&gt;at Microsoft.SharePoint.Administration.SPAdministrationWebApplication.CreateDefaultInstance(SqlConnectionStringBuilder administrationContentDatabase, SPWebService adminService, IdentityType identityType, String farmUser, SecureString farmPassword)&lt;/em&gt;&lt;br /&gt;&lt;em&gt;at Microsoft.SharePoint.Administration.SPFarm.CreateAdministrationWebService(SqlConnectionStringBuilder administrationContentDatabase, IdentityType identityType, String farmUser, SecureString farmPassword)&lt;/em&gt;&lt;br /&gt;&lt;em&gt;at Microsoft.SharePoint.Administration.SPFarm.CreateBasicServices(SqlConnectionStringBuilder administrationContentDatabase, IdentityType identityType, String farmUser, SecureString farmPassword)&lt;/em&gt;&lt;br /&gt;&lt;em&gt;at Microsoft.SharePoint.Administration.SPFarm.Create(SqlConnectionStringBuilder configurationDatabase, SqlConnectionStringBuilder administrationContentDatabase, IdentityType identityType, String farmUser, SecureString farmPassword, SecureString masterPassphrase)&lt;/em&gt;&lt;br /&gt;&lt;em&gt;at Microsoft.SharePoint.PostSetupConfiguration.ConfigurationDatabaseTask.CreateOrConnectConfigDb()&lt;/em&gt;&lt;br /&gt;&lt;em&gt;at Microsoft.SharePoint.PostSetupConfiguration.ConfigurationDatabaseTask.Run()&lt;/em&gt;&lt;br /&gt;&lt;em&gt;at Microsoft.SharePoint.PostSetupConfiguration.TaskThread.ExecuteTask()&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Since my machine has been&amp;nbsp;joined to my company domain and at the time of running the Configuration Wizard I was not connected to my corporate network, the wizard could not contact the domain controller.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;The solution to solve this issue is by connecting to my corporate network via VPN using my home internet connection or just by plugging in the corporate network cable when you are back to the office.&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2412345252286453357-5052324312755615834?l=davidlimsharepoint.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://davidlimsharepoint.blogspot.com/feeds/5052324312755615834/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://davidlimsharepoint.blogspot.com/2010/06/failed-to-create-configuration-database.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2412345252286453357/posts/default/5052324312755615834'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2412345252286453357/posts/default/5052324312755615834'/><link rel='alternate' type='text/html' href='http://davidlimsharepoint.blogspot.com/2010/06/failed-to-create-configuration-database.html' title='Failed to create the configuration database - User cannot be found'/><author><name>David</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://3.bp.blogspot.com/--ui1lmzzdqo/TZFcC-LQj9I/AAAAAAAAACk/8Odp0iLBPTA/s220/David2.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2412345252286453357.post-2191807122457281447</id><published>2010-04-28T20:53:00.002+08:00</published><updated>2010-04-28T21:01:22.149+08:00</updated><title type='text'>Running Windows Server 2008 R2 on Windows 7 with Boot to VHD</title><content type='html'>With the MSDN&amp;nbsp;release of SharePoint 2010 RTM, I am very excited to start installing it on my notebook,&amp;nbsp; running on Windows 7 64 bit with 4GB RAM.&amp;nbsp; Then there&amp;nbsp;were two options that I considered.&amp;nbsp; First option&amp;nbsp;was to install SharePoint 2010 directly on my Windows 7&amp;nbsp;64 bit&amp;nbsp;notebook and the second option&amp;nbsp;was to install it on my Windows Server 2008 R2 VHD, and then use the&amp;nbsp;boot to VHD feature of Windows 7.&amp;nbsp; Both options seems good.&amp;nbsp; However for portability reason&amp;nbsp;I chose the second option.&amp;nbsp; With the second option it would be very easy and quick if I need to change&amp;nbsp;my notebook and it has minimal performance impact.&amp;nbsp; Microsoft estimates that Windows Server 2008 bR2 take a performance hit of only about 2% when running from a VHD. &amp;nbsp;Furthermore I&amp;nbsp;can also&amp;nbsp;play around&amp;nbsp;with all of the Windows Server 2008 features, such Active Directory. &lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;Below are the steps that I&amp;nbsp;took&amp;nbsp;in order to&amp;nbsp;finally have&amp;nbsp;it set up and&amp;nbsp;run:&lt;br /&gt;1. Download &lt;a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=696dd665-9f76-4177-a811-39c26d3b3b34"&gt;Windows Automated Installation Kit (AIK) for Windows 7&lt;/a&gt;&amp;nbsp;with 1,66 GB size&lt;br /&gt;2. Unpack the&amp;nbsp;KB3AIK_EN.iso file&lt;br /&gt;3. Install the AIK by running StartCD.exe&lt;br /&gt;4. In the Welcome screen, click Windows AIK Setup and follow the installation steps&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_1SOFwSlqLjM/S9gl5ycCSeI/AAAAAAAAAA8/QngUq6KmCQU/s1600/aik+welcome.jpg" imageanchor="1" style="clear: left; cssfloat: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="146" src="http://4.bp.blogspot.com/_1SOFwSlqLjM/S9gl5ycCSeI/AAAAAAAAAA8/QngUq6KmCQU/s200/aik+welcome.jpg" tt="true" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;5. Download and install &lt;a href="http://code.msdn.microsoft.com/wim2vhd/"&gt;Windows(R) Image to Virtual Hard Disk (WIM2VHD) Converter&lt;/a&gt; &lt;br /&gt;6. Mount Windows Server&amp;nbsp;2008 R2.iso to a Virtual DVD drive using Virtual Clone Drive or other image mount tools&lt;br /&gt;7. Open Command Prompt with Run as Administrator&lt;br /&gt;8. Run the script to create&amp;nbsp;the VHD by executing below command&lt;br /&gt;&lt;em&gt;CSCRIPT WIM2VHD.WSF /WIM:D:\sources\install.wim /SKU:SERVERSTANDARD /VHD:C:\VHD\WindowsServer2008R2.vhd&amp;nbsp;&lt;/em&gt;&lt;br /&gt;9. Make sure there are no errors&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_1SOFwSlqLjM/S9gkoT8YyAI/AAAAAAAAAA0/2XRntNFdut0/s1600/aik.jpg" imageanchor="1" style="clear: left; cssfloat: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="161" src="http://4.bp.blogspot.com/_1SOFwSlqLjM/S9gkoT8YyAI/AAAAAAAAAA0/2XRntNFdut0/s320/aik.jpg" tt="true" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;10. Set up Windows 7&amp;nbsp;boot menu to boot to the VHD by executing below commands&lt;br /&gt;&lt;br /&gt;&lt;em&gt;bcdedit /copy {current} /d "Windows Server 2008 R2 VHD"&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;This will return a GUID. Select it using the Mark command by right-clicking in the Command Prompt and copy it to the clipboard.&amp;nbsp; Using that {guid},&amp;nbsp;execute these commands one by one:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;bcdedit /set {guid} device vhd=[C:]\VHD\WindowsServer2008R2.vhd&lt;/em&gt;&lt;br /&gt;&lt;em&gt;bcdedit /set {guid} osdevice vhd=[C:]\VHD\WindowsServer2008R2.vhd&lt;/em&gt;&lt;br /&gt;&lt;em&gt;bcdedit /set {guid} detecthal on&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;11.&amp;nbsp; Reboot the machine&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Notes: &lt;/u&gt;&lt;br /&gt;Run &lt;em&gt;bcdedit /enum &lt;/em&gt;to list&amp;nbsp;the available boot options, including their guids&lt;br /&gt;Run &lt;em&gt;bcdedit /delete {guid}&lt;/em&gt; to remove the particular boot option&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2412345252286453357-2191807122457281447?l=davidlimsharepoint.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://davidlimsharepoint.blogspot.com/feeds/2191807122457281447/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://davidlimsharepoint.blogspot.com/2010/04/running-windows-server-2008-r2-on.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2412345252286453357/posts/default/2191807122457281447'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2412345252286453357/posts/default/2191807122457281447'/><link rel='alternate' type='text/html' href='http://davidlimsharepoint.blogspot.com/2010/04/running-windows-server-2008-r2-on.html' title='Running Windows Server 2008 R2 on Windows 7 with Boot to VHD'/><author><name>David</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://3.bp.blogspot.com/--ui1lmzzdqo/TZFcC-LQj9I/AAAAAAAAACk/8Odp0iLBPTA/s220/David2.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_1SOFwSlqLjM/S9gl5ycCSeI/AAAAAAAAAA8/QngUq6KmCQU/s72-c/aik+welcome.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2412345252286453357.post-8578252173435009264</id><published>2010-04-26T14:06:00.002+08:00</published><updated>2010-04-26T14:20:00.817+08:00</updated><title type='text'>Deploying Data Protection Manager 2007 (DPM) for SharePoint 2007 Protection and Recovery</title><content type='html'>In order to meet our Recovery Time Objective (RTO) and Recovery Point Objective (RPO) goals, we have decided to deploy and use Microsoft System Center Data Protection Manager 2007 (DPM) for our SharePoint farm,&amp;nbsp;rather than using third party tools or manual content database&amp;nbsp;restore approach which&amp;nbsp;needs a longer&amp;nbsp;restore time.&amp;nbsp; From that experiences, below&amp;nbsp;is the summary of steps that we have performed in order to set it up for protecting our farm, which consists of web front-end, index, and database servers.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;&lt;strong&gt;1.&amp;nbsp;Service account preparation&lt;/strong&gt;&lt;/u&gt;&lt;br /&gt;- DPM administrator service account, which has local administrator privilege on the DPM Server&lt;br /&gt;- DPM agent service account, which has local administrator privilege on the machines to be protected, which&amp;nbsp;are the web front-end, index, and database servers&lt;br /&gt;- SQL server service account&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;u&gt;&lt;strong&gt;2. Machine preparation&lt;/strong&gt;&lt;/u&gt;&lt;br /&gt;- 1 server machine for DPM installation, including its database (DPM server)&lt;br /&gt;- 1 server machine (or can be a virtual one and put in the same machine as DPM server) for SharePoint recovery farm&lt;br /&gt;&lt;br /&gt;&lt;u&gt;&lt;strong&gt;3.&amp;nbsp;DPM server installation&lt;/strong&gt;&lt;/u&gt;&lt;br /&gt;a.&amp;nbsp;Install Windows Server 2008 R2&lt;br /&gt;b. Add the Application Server and Web Server (IIS) roles (on the Role Services screen, select all check boxes)&lt;br /&gt;c. Install SQL Server 2005, choose the following components to install and select Default instance &lt;br /&gt;- Database Services / Data Files&lt;br /&gt;- Database Services / Shared Tools&lt;br /&gt;- Reporting Services / * (All Items)&lt;br /&gt;- Client Components / * (All Items)&lt;br /&gt;d. Install &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=ae7387c3-348c-4faa-8ae5-949fdfbe59c4&amp;amp;displaylang=en"&gt;SQL Server 2005 SP3&lt;/a&gt;&lt;br /&gt;e. Grant sysadmin access&amp;nbsp;for DPM administrator service account to SQL Server by executing below query in the SQL Server Management Studio query window&lt;br /&gt;&lt;em&gt;USE [master]&lt;/em&gt;&lt;br /&gt;&lt;em&gt;GO&lt;/em&gt;&lt;br /&gt;&lt;em&gt;CREATE LOGIN [CONTOSO\svcDPMAdmin] FROM WINDOWS WITH DEFAULT_DATABASE=[master]&lt;/em&gt;&lt;br /&gt;&lt;em&gt;GO&lt;/em&gt;&lt;br /&gt;&lt;em&gt;EXEC master..sp_addsrvrolemember @loginame = N'CONTOSO\svcDPMAdmin', @rolename = N'sysadmin'&lt;/em&gt;&lt;br /&gt;&lt;em&gt;GO&lt;/em&gt;&lt;br /&gt;f. Install Single Instance Store (SIS) feature to reduce the amount of space that is used to store data on a volume by executing the following command in the command prompt (Run as administrator) and restart the machine after completed&lt;br /&gt;&lt;em&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; start /wait ocsetup.exe SIS-Limited /quiet /norestart&lt;/em&gt;&lt;br /&gt;g. Add the static&amp;nbsp;host entries for web front-end, index, and database servers in C:\Windows\System32\Drivers\etc\Hosts&lt;br /&gt;h. Install DPM 2007 by selecting &lt;em&gt;Use the dedicated MS$DPM2007$ instance of SQL Server&lt;/em&gt;&lt;br /&gt;i. In the SQL Settings interface, use DPM administrator service account, which has been granted sysadmin role to the database server&lt;br /&gt;j. Install &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=ae7387c3-348c-4faa-8ae5-949fdfbe59c4&amp;amp;displaylang=en"&gt;SQL Server 2005 SP3&lt;/a&gt;&lt;br /&gt;k. Install &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=8AE5EDAC-4DE8-44E0-A6F9-8AFBB3E23585&amp;amp;displaylang=en"&gt;DPM 2007 SP1&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;&lt;u&gt;&lt;strong&gt;4. DPM agent installation&lt;/strong&gt;&lt;/u&gt;&lt;br /&gt;a. On the DPM server, click Start -&amp;gt; Programs -&amp;gt; Microsoft System Center Data Protection Manager -&amp;gt; Microsoft System Center Data Protection Manager&lt;br /&gt;b. Click &lt;em&gt;Management&lt;/em&gt; tab&lt;br /&gt;c. Click &lt;em&gt;Install &lt;/em&gt;under &lt;em&gt;Actions &lt;/em&gt;to start Protection Agent Installation Wizard&lt;br /&gt;d. Enter the computer name of SharePoint web front-end server and click Add&lt;br /&gt;e. Enter the computer name of SharePoint index server and click Add&lt;br /&gt;f. Click Next&lt;br /&gt;g. On the &lt;em&gt;Credentials&lt;/em&gt; interface, enter the DPM agent service account, provide the password and click Next (This account should have local administrator privileges on both servers before attempting to click Next)&lt;br /&gt;h. Select the &lt;em&gt;No, I will restart the selected computers later&lt;/em&gt; option on the &lt;em&gt;Choose Restart Method&lt;/em&gt; interface and click Next&lt;br /&gt;i. Click Install&lt;br /&gt;j. Ensure the agent install is successful on both&amp;nbsp;servers and click Close&lt;br /&gt;k. Restart the web front-end and index servers&lt;br /&gt;l.&amp;nbsp;Close the DPM Management GUI on the DPM server and wait for the servers to restart&lt;br /&gt;m. Once each server has restarted, establish an RDP session to it using an account with local administrative privileges&lt;br /&gt;n. Open a command prompt as an administrator&lt;br /&gt;o. Change to the directory:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;em&gt;c:\program files\Microsoft Data Protection Manager\DPM\bin\&lt;/em&gt;&lt;br /&gt;p. Execute the following command:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;em&gt;configuresharepoint.exe –EnableSharePointProtection&lt;/em&gt;&lt;br /&gt;q. When prompted, provide the SharePoint farm account username&amp;nbsp;and password&lt;br /&gt;r. Ensure the operation succeeds (do not close the command prompt)&lt;br /&gt;s. Execute the command:&lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;em&gt;configuresharepoint.exe –setTempPath ‘D:\MOSS_Recovery’&lt;/em&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; (Notes: D:\MOSS_Recovery folder needs to be created first)&lt;br /&gt;t. Provide the password for the SharePoint&amp;nbsp;farm account and ensure the operation succeeds&lt;br /&gt;u.&amp;nbsp;On the DPM Server, open the DPM Management GUI and navigate&amp;nbsp;to the Management/Agents tab and ensure that the agent status for&amp;nbsp;both machines&amp;nbsp;are &lt;em&gt;OK&lt;/em&gt;&lt;br /&gt;v. Install the DPM agent on the recovery farm's server, following the steps a&amp;nbsp;-&amp;gt; u&lt;br /&gt;w. Install the&amp;nbsp;DPM agent on the&amp;nbsp;database server,&amp;nbsp;following the steps&amp;nbsp;a&amp;nbsp;-&amp;gt; l&lt;br /&gt;&lt;br /&gt;&lt;u&gt;&lt;strong&gt;5. Post installation configuration on the DPM server&lt;/strong&gt;&lt;/u&gt;&lt;br /&gt;a. Configure storage pool for disk and tape&lt;br /&gt;b. Create protection group &lt;br /&gt;- SharePoint farm configuration database&lt;br /&gt;-&amp;nbsp;IIS web site folder for SharePoint web applications (e.g. c:\inetpub\wwwroot) &lt;br /&gt;- C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12 folder &lt;br /&gt;- System State&lt;br /&gt;&lt;br /&gt;&lt;u&gt;&lt;strong&gt;6. DPMRecoveryWebApplication creation in recovery farm&lt;/strong&gt;&lt;/u&gt;&lt;br /&gt;Before DPM can be used to recover any data to a protected farm, the DPMRecoveryWebApplication must be created on the recovery farm’s server. Below are the steps necessary to create the DPMRecoveryWebApplication.&lt;br /&gt;a. On the recovery farm's server, open the SharePoint 3.0 Central Administration console from the Start Menu and&amp;nbsp;click on the &lt;em&gt;Application Management &lt;/em&gt;tab&lt;br /&gt;b. Under the SharePoint Web Application Management heading, click on the &lt;em&gt;Create or Extend Web application&lt;/em&gt; &lt;br /&gt;c.&amp;nbsp;The Create or Extend Web application page appears and click &lt;em&gt;Create a new Web application &lt;/em&gt;&lt;br /&gt;d. Choose the &lt;em&gt;Create a new IIS web site &lt;/em&gt;and in the description, name it “DPMRecoveryWebApplication”&lt;br /&gt;e. In the Port field,&amp;nbsp;can use port&amp;nbsp;80&lt;br /&gt;f. The Host Header and Path fields can remain unchanged. &lt;br /&gt;g. Scroll down to the radio button &lt;em&gt;Create new application pool &lt;/em&gt;and in the Application pool name box, note that the entry name includes the port number and the SharePoint recovery server name. &lt;br /&gt;h. Under the &lt;em&gt;Select a security account for this application pool&lt;/em&gt;, select the &lt;em&gt;Configurable&lt;/em&gt; radio button and type in a suitable account and password in the fields that follow&lt;br /&gt;i. Lastly, in the Database Name box, type in &lt;em&gt;DPMRecoveryWebApplication&lt;/em&gt; &lt;br /&gt;j. Click OK&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2412345252286453357-8578252173435009264?l=davidlimsharepoint.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://davidlimsharepoint.blogspot.com/feeds/8578252173435009264/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://davidlimsharepoint.blogspot.com/2010/04/deploying-dpm-2007-for-sharepoint-2007.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2412345252286453357/posts/default/8578252173435009264'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2412345252286453357/posts/default/8578252173435009264'/><link rel='alternate' type='text/html' href='http://davidlimsharepoint.blogspot.com/2010/04/deploying-dpm-2007-for-sharepoint-2007.html' title='Deploying Data Protection Manager 2007 (DPM) for SharePoint 2007 Protection and Recovery'/><author><name>David</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://3.bp.blogspot.com/--ui1lmzzdqo/TZFcC-LQj9I/AAAAAAAAACk/8Odp0iLBPTA/s220/David2.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2412345252286453357.post-7453947547732061979</id><published>2010-04-23T10:58:00.004+08:00</published><updated>2010-04-27T11:11:58.145+08:00</updated><title type='text'>SharePoint Foundation 2010 and SharePoint Designer 2010 are available as public download</title><content type='html'>&lt;a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=566d3f55-77a5-4298-bb9c-f55f096b125d"&gt;SharePoint Foundation 2010 download&lt;/a&gt;&lt;br /&gt;Supported Operating Systems: Windows 7 Enterprise; Windows 7 Professional; Windows 7 Ultimate; Windows Server 2008 R2; Windows Server 2008 Service Pack 2; Windows Vista Service Pack 2&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=566d3f55-77a5-4298-bb9c-f55f096b125d"&gt;SharePoint Designer 2010 64 bit download&lt;/a&gt;&lt;br /&gt;Supported Operating Systems: Windows 7; Windows Server 2003 R2 x64 editions; Windows Server 2008; Windows Server 2008 R2; Windows Vista Service Pack 1&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=d88a1505-849b-4587-b854-a7054ee28d66&amp;amp;displaylang=en"&gt;SharePoint Designer 2010&amp;nbsp;32 bit download&lt;/a&gt;&lt;br /&gt;Supported Operating Systems: Windows 7; Windows Server 2003 R2 (32-Bit x86); Windows Server 2003 R2 x64 editions; Windows Server 2008; Windows Server 2008 R2; Windows Vista Service Pack 1; Windows XP Service Pack 3&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2412345252286453357-7453947547732061979?l=davidlimsharepoint.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://davidlimsharepoint.blogspot.com/feeds/7453947547732061979/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://davidlimsharepoint.blogspot.com/2010/04/sharepoint-foundation-2010-is-available.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2412345252286453357/posts/default/7453947547732061979'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2412345252286453357/posts/default/7453947547732061979'/><link rel='alternate' type='text/html' href='http://davidlimsharepoint.blogspot.com/2010/04/sharepoint-foundation-2010-is-available.html' title='SharePoint Foundation 2010 and SharePoint Designer 2010 are available as public download'/><author><name>David</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://3.bp.blogspot.com/--ui1lmzzdqo/TZFcC-LQj9I/AAAAAAAAACk/8Odp0iLBPTA/s220/David2.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2412345252286453357.post-755407538903784525</id><published>2010-04-07T17:24:00.004+08:00</published><updated>2010-04-28T20:59:04.534+08:00</updated><title type='text'>Enabling Information Rights Management in SharePoint 2007 by Integrating with AD RMS</title><content type='html'>Recently we have been asked to enable Information Rights Management (IRM) capability in our SharePoint infrastructure, which consists of three web front-end servers, one excel calculation server, one index server, and two clustered database servers.&amp;nbsp; All servers are running on Windows Server 2008 64 bit environment.&lt;br /&gt;The original&amp;nbsp;plan is to prepare our SharePoint infrastructure&amp;nbsp;to&amp;nbsp;store IRM-protected documents, where the protection capabilities are embedded in the document.&amp;nbsp; However,&amp;nbsp;it will make these protected&amp;nbsp;documents unsearchable since they cannot be tagged or indexed while the document contents are encrypted.&amp;nbsp; This is no longer the case with AD RMS and SharePoint 2007&amp;nbsp;since the IRM policies are only applied when the documents are downloaded and they are stored unencrypted in the libraries, hence making them indexable and later searchable.&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;With SharePoint, IRM protection is available for files that are located in document libraries and stored as attachments to list items.&amp;nbsp;SharePoint uses the access control list (ACL) on the library or list&amp;nbsp;to determine the permissions that it applies to a document for the user downloading it. Protection includes the following options: &lt;ul&gt;&lt;li&gt;Whether or not users can print documents that are rights managed.&lt;/li&gt;&lt;li&gt;Whether the user can run Microsoft Visual Basic for Applications (VBA) and other custom code in the file.&lt;/li&gt;&lt;li&gt;The number of days for which the license is valid; after the specified number of days, the license expires and the user must download the file again from the document library.&lt;/li&gt;&lt;li&gt;Whether to let users upload file types that do not support IRM.&lt;/li&gt;&lt;li&gt;Optionally, the date to stop restricting permissions to the document library; after the specified date passes, Office SharePoint Server removes all rights-management restrictions from the documents in the library.&lt;/li&gt;&lt;/ul&gt;There are basically three simple steps to integrate AD RMS with SharePoint 2007 as follows: &lt;div&gt;&lt;em&gt;(Notes: since we are using Windows Server 2008, which already&amp;nbsp;includes AD RMS client, there is no need to install a separate Windows RMS client as in Windows Server 2003)&lt;/em&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;1. Add permissions for the SharePoint server to the AD RMS certification pipeline&lt;/div&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Log on to the AD RMS server as a local administrator&lt;/li&gt;&lt;li&gt;Click Start, and then click Computer&lt;/li&gt;&lt;li&gt;Navigate to c:\Inetpub\wwwroot\_wmcs\Certification&lt;/li&gt;&lt;li&gt;Right-click &lt;strong&gt;ServerCertification.asmx&lt;/strong&gt;, click Properties, and then click the Security tab&lt;/li&gt;&lt;li&gt;Click Advanced, click Edit,&amp;nbsp;select the &lt;strong&gt;Include inheritable permissions from this object's parent &lt;/strong&gt;check box, and then click OK two times&lt;/li&gt;&lt;li&gt;Click Edit&lt;/li&gt;&lt;li&gt;Click Add&lt;/li&gt;&lt;li&gt;Click Object Types, select the Computers check box, and then click OK&lt;/li&gt;&lt;li&gt;Type the name of the &lt;strong&gt;SharePoint web front-end server&lt;/strong&gt;, and then click OK twice.&amp;nbsp;&lt;/li&gt;&lt;li&gt;Repeat the above three steps for other web front-end servers&lt;/li&gt;&lt;li&gt;Click OK to close the ServerCertification.asmx Properties sheet. By default the Read &amp;amp; Execute and the Read permissions are configured &lt;/li&gt;&lt;li&gt;Reset IIS&lt;/li&gt;&lt;/ul&gt;2. Specify RMS server location in SharePoint using Central Administration&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Open &lt;strong&gt;SharePoint 3.0 Central Administration&lt;/strong&gt; site&lt;/li&gt;&lt;li&gt;Click Operations, and then click Information Rights Management&lt;/li&gt;&lt;li&gt;Select &lt;strong&gt;Use the default RMS server specified in Active Directory &lt;/strong&gt;checkbox&lt;/li&gt;&lt;li&gt;Click OK&lt;/li&gt;&lt;/ul&gt;3. Enable IRM policy to control access to the contents of a document library&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Open&amp;nbsp;a SharePoint site and go to the document library where we want to enable the&amp;nbsp;IRM policy&lt;/li&gt;&lt;li&gt;Click Settings, and then click &lt;strong&gt;Document Library Settings&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;Under Permissions and Management, click &lt;strong&gt;Information Rights Management&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;Select the &lt;strong&gt;Restrict permission to documents in this library on download&lt;/strong&gt; check box&lt;/li&gt;&lt;li&gt;In the Permissions policy title box, type in the policy title&lt;/li&gt;&lt;li&gt;In the Permission policy description box, type in the policy description&lt;/li&gt;&lt;li&gt;Click OK&lt;/li&gt;&lt;/ul&gt;SharePoint&amp;nbsp;will&amp;nbsp;now automatically apply AD RMS rights to the document when it is downloaded from the document library. These rights are determined by the the user permission for that&amp;nbsp;library. For example, a user who has Read permission will not be able to modify the document when it is downloaded from the document library.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Notes: When AD RMS protected documents (created outside SharePoint environment) are uploaded to the library with IRM policy enabled, the original document protection policy&amp;nbsp;will supercede the library protection policy when those documents are downloaded or accessed by users.&amp;nbsp; AD RMS end-to-end security prevents SharePoint from decrypting documents created outside of the SharePoint environment, hence applying the SharePoint library IRM policy to those documents.&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2412345252286453357-755407538903784525?l=davidlimsharepoint.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://davidlimsharepoint.blogspot.com/feeds/755407538903784525/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://davidlimsharepoint.blogspot.com/2010/04/enabling-information-rights-management.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2412345252286453357/posts/default/755407538903784525'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2412345252286453357/posts/default/755407538903784525'/><link rel='alternate' type='text/html' href='http://davidlimsharepoint.blogspot.com/2010/04/enabling-information-rights-management.html' title='Enabling Information Rights Management in SharePoint 2007 by Integrating with AD RMS'/><author><name>David</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://3.bp.blogspot.com/--ui1lmzzdqo/TZFcC-LQj9I/AAAAAAAAACk/8Odp0iLBPTA/s220/David2.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2412345252286453357.post-7400046384035850061</id><published>2010-04-06T17:26:00.003+08:00</published><updated>2010-04-08T14:24:16.755+08:00</updated><title type='text'>Configuring SQL Server 2005 Log Shipping for SharePoint 2007 Disaster Recovery Farm</title><content type='html'>As part of the architecture design to provide 99.5% availability for our SharePoint infrastructure, which is equivalent to 3.5 hours downtime per month, we plan for the redundancy and failover between two server farms.&amp;nbsp; The&amp;nbsp;primary farm is located in&amp;nbsp;a main data centre and the secondary farm is located in&amp;nbsp;a Disaster Recovery centre in the same city.&amp;nbsp; Both farms have been setup separately with their own configuration database&amp;nbsp;and Central Administration content database.&amp;nbsp; All customizations and patches have been deployed on both farms as well.&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;To support the disaster recovery scenario, the primary farm's content databases&amp;nbsp;are configured with log shipping to the failover farm in the disaster recovery centre.&amp;nbsp; Log shipping essentially involves copying&amp;nbsp;the content database backup and subsequent transaction log backups from the primary farm's database server and restoring the content database and transaction log backups on the secondary farm's database server. The content&amp;nbsp;database and transaction logs are restored on the secondary&amp;nbsp;farm in standby or no-recovery mode, which allows subsequent transaction logs to be backed up on the primary and shipped or copied&amp;nbsp;to the secondary server and applied there. &lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;The steps to configure log shipping for a particular content database&amp;nbsp;are as follows:&lt;br /&gt;1.&amp;nbsp;Ensure that the content database is on &lt;strong&gt;Full or Bulk_logged&lt;/strong&gt; recovery model since log shipping requires those models to function.&amp;nbsp; To change the recovery model for&amp;nbsp;the database, right click on&amp;nbsp;the database, select properties and in the Options tab, click on the Recovery Model drop down list box and select Full or Bulk_logged recovery model.&lt;br /&gt;2. Right click the content&amp;nbsp;database in the primary farm's database server, and then click Properties.&lt;br /&gt;3. Under Select a page, click &lt;strong&gt;Transaction Log Shipping&lt;/strong&gt;.&lt;br /&gt;4. Select the &lt;strong&gt;Enable this as a primary database in a log shipping configuration&lt;/strong&gt; check box.&lt;br /&gt;5. Under Transaction log backups, click &lt;strong&gt;Backup Settings&lt;/strong&gt;&lt;em&gt;.&lt;/em&gt;&lt;br /&gt;6.&lt;em&gt; &lt;/em&gt;In the &lt;strong&gt;Network path to the backup folder&lt;/strong&gt; box, type the network path to the share created for the transaction log backup folder.&amp;nbsp; Before configuring log shipping,&amp;nbsp;we must create a share to make the transaction log backups available to the secondary server. This is a share of the directory where the transaction log backups will be generated. For example, if&amp;nbsp;we back up our transaction logs to the directory d:\data\tlogs\,&amp;nbsp;we could create the \\primaryserver\tlogs share off that directory.&lt;br /&gt;7. If the backup folder is located on the primary server, type the local path to the backup folder in the &lt;em&gt;If the backup folder is located on the primary server, type a local path to the folder&lt;/em&gt; box. (If the backup folder is not on the primary server, you can leave this box empty.)&amp;nbsp; If the SQL Server service account on primary server runs under the local system account,&amp;nbsp;we must create backup folder on the primary server and specify a local path to that folder.&lt;br /&gt;&lt;u&gt;Notes:&lt;/u&gt; &lt;br /&gt;If we are backing up to a network path, there will be some increase in the transaction log backup times and&amp;nbsp;it will decrease the space requirements on primary server . The network path should go to the location where&amp;nbsp;we want to store the transaction log backups on the secondary server. Most DBAs use a network share to back up the files to because they want the transaction log backup files on the secondary server to protect them in the event that the primary server goes down.&amp;nbsp; The local path option will back up the transaction logs to a path on primary server. Make sure the transaction log backups are not backed up to the same physical drive where your database data files or log files exist. Should they be backed up to the same physical drive, it would cause I/O contention and overall SQL Server performance degradation. &lt;br /&gt;8. Configure the &lt;strong&gt;Delete files older than &lt;/strong&gt;and &lt;strong&gt;Alert if no backup occurs within&lt;/strong&gt; parameters.&lt;br /&gt;9. Note the backup schedule listed in the &lt;strong&gt;Schedule &lt;/strong&gt;box under Backup job. If we want to customize the schedule, then click Schedule and adjust the SQL Server Agent schedule as needed.&lt;br /&gt;10. Click OK.&lt;br /&gt;11. Under &lt;strong&gt;Secondary server instances and databases&lt;/strong&gt;, click Add.&lt;br /&gt;12. Click Connect and connect to the instance of SQL Server that&amp;nbsp;we want to use as our secondary server.&lt;br /&gt;13. In the &lt;strong&gt;Secondary Database&lt;/strong&gt; box, choose a database from the list or type the name of the database&amp;nbsp;we want to create. &lt;br /&gt;14. On the &lt;strong&gt;Initialize Secondary database&lt;/strong&gt; tab, choose the option that&amp;nbsp;we want to use to initialize the secondary database.&lt;br /&gt;&lt;u&gt;Notes:&lt;/u&gt; &lt;br /&gt;If we choose to have Management Studio initialize the secondary database from a database backup, the data files created on the secondary server will have the same names as those on the primary server, and will be created in an identical directory structure, including the drive letter.&lt;br /&gt;15. On the &lt;strong&gt;Copy Files&lt;/strong&gt; tab, in the &lt;strong&gt;Destination&lt;/strong&gt; folder for copied files box, type the path of the folder into which the transaction logs backups should be copied. This folder is often located on the secondary server.&lt;br /&gt;16. Note the copy schedule listed in the &lt;strong&gt;Schedule&lt;/strong&gt; box under &lt;strong&gt;Copy&lt;/strong&gt; job. If&amp;nbsp;we want to customize the schedule for our installation, click Schedule and then adjust the SQL Server Agent schedule as needed. This schedule should approximate the backup schedule.&lt;br /&gt;17.On the &lt;strong&gt;Restore&lt;/strong&gt; tab, under &lt;strong&gt;Database &lt;/strong&gt;state when restoring backups, choose the &lt;strong&gt;No recovery mode &lt;/strong&gt;or &lt;strong&gt;Standby mode &lt;/strong&gt;option. If&amp;nbsp;we chose the Standby mode option, choose if&amp;nbsp;we want to disconnect users from the secondary database while the restore operation is underway.&lt;br /&gt;&lt;u&gt;Notes:&lt;/u&gt;&lt;br /&gt;&lt;strong&gt;No Recovery Mode&lt;/strong&gt;: This is the default option. In this option, the destination database will be inaccessible. &lt;br /&gt;&lt;strong&gt;Standby Mode&lt;/strong&gt;: In this option, the destination database will be read only until the next transaction log backup is applied. After the transaction log is applied, the database will be returned to read-only mode again. This allows read-only access and users will not be able to make any changes to the database&amp;nbsp;and they will be disconnected when the next database backup is applied.&lt;br /&gt;18. If&amp;nbsp;we want to delay the restore process on the secondary server, choose a delay time under Delay restoring backups at least.&lt;br /&gt;19. Choose an alert threshold under &lt;strong&gt;Alert if no restore occurs within&lt;/strong&gt;.&lt;br /&gt;20. Note the restore schedule listed in the &lt;strong&gt;Schedule&lt;/strong&gt; box under &lt;strong&gt;Restore&lt;/strong&gt; job. If we want to customize the schedule for our installation, click Schedule and then adjust the SQL Server Agent schedule as needed. This schedule should approximate the backup schedule.&lt;br /&gt;21. Click OK.&lt;br /&gt;&lt;br /&gt;Steps 22 to 26 below are optional:&lt;br /&gt;22. Under &lt;strong&gt;Monitor &lt;/strong&gt;server instance, select the &lt;strong&gt;Use a monitor server instance&lt;/strong&gt; check box, and then click &lt;strong&gt;Settings&lt;/strong&gt;.&amp;nbsp; To monitor this log shipping configuration, we must add the monitor server now. To add the monitor server later,&amp;nbsp;we would need to remove this log shipping configuration and then replace it with a new configuration that includes a monitor server.&lt;br /&gt;23. Click &lt;strong&gt;Connect &lt;/strong&gt;and connect to the instance of SQL Server that&amp;nbsp;we want to use as our monitor server.&lt;br /&gt;24. Under Monitor connections, choose the connection method to be used by the backup, copy, and restore jobs to connect to the monitor server.&lt;br /&gt;25. Under History retention, choose the length of time you want to retain a record of your log shipping history.&lt;br /&gt;26. Click OK.&lt;br /&gt;&lt;br /&gt;27. On the Database Properties dialog box, click OK to begin the configuration process.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2412345252286453357-7400046384035850061?l=davidlimsharepoint.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://davidlimsharepoint.blogspot.com/feeds/7400046384035850061/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://davidlimsharepoint.blogspot.com/2010/04/configuring-sql-server-2005-log.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2412345252286453357/posts/default/7400046384035850061'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2412345252286453357/posts/default/7400046384035850061'/><link rel='alternate' type='text/html' href='http://davidlimsharepoint.blogspot.com/2010/04/configuring-sql-server-2005-log.html' title='Configuring SQL Server 2005 Log Shipping for SharePoint 2007 Disaster Recovery Farm'/><author><name>David</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://3.bp.blogspot.com/--ui1lmzzdqo/TZFcC-LQj9I/AAAAAAAAACk/8Odp0iLBPTA/s220/David2.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2412345252286453357.post-7393114458436587470</id><published>2010-04-01T11:32:00.005+08:00</published><updated>2010-04-08T14:27:59.007+08:00</updated><title type='text'>SharePoint 2007 Farm Migration</title><content type='html'>As part of the company acquisition and platform enhancement, recently we have been&amp;nbsp;tasked&amp;nbsp;to perform a migration from&amp;nbsp;an old&amp;nbsp;SharePoint 2007 farm (running on old company domain) to a new SharePoint 2007 farm (running on new company domain).&amp;nbsp; The old SharePoint farm has&amp;nbsp;one&amp;nbsp;root site collection with&amp;nbsp;fourteen&amp;nbsp;sites, stored in one big content database.&amp;nbsp; On the new SharePoint farm, these fourteen sites will be created as site collections with their own content databases in order to ensure enhanced operation procedures.&amp;nbsp;&amp;nbsp;The new farm topology consists of&amp;nbsp;one web front-end server, one index server and&amp;nbsp;one database server.&amp;nbsp; There is also a&amp;nbsp;recovery farm in a standalone server and a DPM 2007 server for backup and restore&amp;nbsp;purpose.&amp;nbsp;&amp;nbsp;The migration was performed by using the stsadm command line tool.&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;The steps taken&amp;nbsp;during the preparation of&amp;nbsp;the migration&amp;nbsp;process are below:&lt;br /&gt;1. Setup and configure the new SharePoint farm&lt;br /&gt;2. Deploy non out of the box site templates if any (e.g. F40 application templates) in the new farm&lt;br /&gt;3. Create staging web application in the new farm&lt;br /&gt;4. Create destination web application in the new farm&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;The steps taken during the&amp;nbsp;actual migration process are below:&lt;br /&gt;1. Set the root site collection in the old farm to read only mode to prevent any new updates&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;em&gt;stsadm -o setsitelock -url&amp;nbsp;{root_site_collection_url}&lt;site_collection_url&gt; -lock readonly&lt;/em&gt;&lt;br /&gt;2.&amp;nbsp;Copy the content database backup file of the old farm to the new farm's&amp;nbsp;database server and restore it &lt;br /&gt;3. Attach the restored content database to the staging web application in the new farm&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;em&gt;stsadm -o addcontentdb -url&amp;nbsp;{web_application_url}&lt;web_application_url&gt; -databasename {database_name}&lt;content_database_name&gt;&lt;/em&gt;&lt;br /&gt;4. Export the fourteen sites of the root site collection in the staging web application&amp;nbsp;to files in the file system&lt;br /&gt;&lt;em&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; stsadm -o export -url&amp;nbsp;{site_url} -filename&amp;nbsp;{file_path_and_name} -overwrite -includeusersecurity -versions 4 -cabsize 100&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Notes: &lt;/u&gt;&lt;br /&gt;&lt;strong&gt;includeusersecurity: &lt;/strong&gt;preserves the user security settings&lt;br /&gt;&lt;strong&gt;versions:&lt;/strong&gt; indicates which type of file and list item version history should be included in the export. If the -versions parameter is absent, the export operation will default to using a value of 1.&lt;br /&gt;1: Last major version for files and list items(default) &lt;br /&gt;2: The current version, either the last major or the last minor&lt;br /&gt;3: Last major and last minor version for files and list items&lt;br /&gt;4: All versions for files and list items&lt;br /&gt;&lt;strong&gt;cabsize: &lt;/strong&gt;An integer from 1 to 1024 megabytes that describes how large each cabinet file (*.cab) should be. Once the specified size is reached, another cabinet file is generated. This can be beneficial if you are copying files over a network, and you want the file size to be small.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;For example:&lt;/u&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;em&gt;stsadm -o export -url &lt;a href="http://oldportal.contoso.com/marketing"&gt;http://oldportal.contoso.com/marketing&lt;/a&gt; -filename D:\SharePointSiteExport\Marketing\Marketing.exp -overwrite -includeusersecurity -versions 4 -cabsize 100&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;stsadm -o export -url &lt;a href="http://oldportal.contoso.com/sales"&gt;http://oldportal.contoso.com/sales&lt;/a&gt; -filename D:\SharePointSiteExport\Sales\Sales.exp -overwrite -includeusersecurity -versions 4 -cabsize 100&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;5. Create fourteen new site collections with their own dedicated content databases using Blank site template in the new farm&lt;br /&gt;&lt;em&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; stsadm -o createsiteinnewdb -url {site_collection_url} -ownerlogin {owner_login_id}&amp;nbsp;-ownername {owner_name} -owneremail&amp;nbsp;{owner_email}&amp;nbsp;-sitetemplate "STS#1" - title {site_collection_title}&amp;nbsp;-description {site_collection_description} -quota {quota_template} -databasename {database_name} -databaseserver&amp;nbsp;{database_instance_name}&lt;/em&gt;&lt;/div&gt;&lt;br /&gt;&lt;u&gt;For example:&lt;/u&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;em&gt;&lt;span id="goog_1207362896"&gt;&lt;/span&gt;&lt;span id="goog_1207362897"&gt;&lt;/span&gt;stsadm -o create&lt;span id="goog_1207362892"&gt;&lt;/span&gt;&lt;span id="goog_1207362893"&gt;&lt;/span&gt;&lt;span id="goog_1207362894"&gt;&lt;/span&gt;&lt;span id="goog_1207362895"&gt;&lt;/span&gt;siteinnewdb -url &lt;a href="http://newportal.contoso.com/sites/Marketing"&gt;http://newportal.contoso.com/sites/Marketing&lt;/a&gt; -ownerlogin "contoso\davidlim" -ownername "Lim, David" -owneremail "davidlim@contoso.com" -sitetemplate "STS#1" -title "Marketing Site" -description "Contoso Marketing Site" -quota "Contoso Quota" -databasename "Contoso_Content_Marketing" -databaseserver "CONTOSOSQL"&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;stsadm -o createsiteinnewdb -url &lt;a href="http://newportal.contoso.com/sites/Sales"&gt;http://newportal.contoso.com/sites/Sales&lt;/a&gt; -ownerlogin "contoso\davidlim" -ownername "Lim, David" -owneremail "davidlim@contoso.com" -sitetemplate "STS#1" -title&amp;nbsp;"Sales Site" -description "Contoso&amp;nbsp;Sales Site" -quota "Contoso Quota" -databasename "Contoso_Content_Sales" -databaseserver "CONTOSOSQL"&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;6. Import the exported fourteen site files into their coresponding site collections in the new farm&lt;br /&gt;&lt;em&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; stsadm -o import -url {site_collection_url} -filename {file_path_and name} -includeusersecurity -updateversions 2&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Notes:&lt;/u&gt;&lt;br /&gt;&lt;strong&gt;updateversions&lt;/strong&gt;: indicates how to resolve situations where a file to be imported to a site already exists in that site. If the -updateversions parameter is absent, the import operation will default to using a value of 1&lt;br /&gt;1: Add new versions to the current file (default)&lt;br /&gt;2: Overwrite the file and all of its versions (delete then insert)&lt;br /&gt;3: Ignore the file if it exists on the destination&lt;br /&gt;&lt;br /&gt;&lt;u&gt;For example:&lt;/u&gt; &lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;em&gt;stsadm -o import -url &lt;a href="http://newportal.contoso.com/sites/Marketing"&gt;http://newportal.contoso.com/sites/Marketing&lt;/a&gt; -filename D:\SharePointSiteExport\Marketing\Marketing.exp -includeusersecurity -updateversions 2&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;stsadm -o import -url &lt;a href="http://newportal.contoso.com/sites/Sales"&gt;http://newportal.contoso.com/sites/Sales&lt;/a&gt; -filename D:\SharePointSiteExport\Sales\Sales.exp -includeusersecurity -updateversions 2&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;7. Delete the staging web application in the new farm, including its IIS web site and content database&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2412345252286453357-7393114458436587470?l=davidlimsharepoint.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://davidlimsharepoint.blogspot.com/feeds/7393114458436587470/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://davidlimsharepoint.blogspot.com/2010/04/sharepoint-2007-farm-migration.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2412345252286453357/posts/default/7393114458436587470'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2412345252286453357/posts/default/7393114458436587470'/><link rel='alternate' type='text/html' href='http://davidlimsharepoint.blogspot.com/2010/04/sharepoint-2007-farm-migration.html' title='SharePoint 2007 Farm Migration'/><author><name>David</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://3.bp.blogspot.com/--ui1lmzzdqo/TZFcC-LQj9I/AAAAAAAAACk/8Odp0iLBPTA/s220/David2.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2412345252286453357.post-4337101045338940605</id><published>2010-03-31T15:58:00.002+08:00</published><updated>2010-04-08T14:10:41.892+08:00</updated><title type='text'>Error in the Site Data Web Service - No results returned from Search</title><content type='html'>I&amp;nbsp;found this error message&amp;nbsp;in the Crawl Log of Search Administration settings in Central Administration site after getting a complaint from the user that&amp;nbsp;they cannot find any results when performing a search on a particular site collection.&amp;nbsp; It happened after&amp;nbsp;we performed a site migration from one SharePoint 2007&amp;nbsp;farm&amp;nbsp;to another SharePoint 2007 farm running on two different domains with trust relationship.&lt;br /&gt;&lt;br /&gt;The root cause of this error is &lt;strong&gt;corrupted SIDs in the UserInfo table of the site collection&lt;/strong&gt;, which returns no search results.&amp;nbsp; And the steps to solve the issue are:&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;1. Log on&amp;nbsp;to the database server of the SharePoint&amp;nbsp;farm and&amp;nbsp;open SQL Server Management Studio&lt;br /&gt;&lt;br /&gt;2. Locate the content database containing the site collection&lt;br /&gt;&lt;br /&gt;3. Open SQL query windows and&amp;nbsp;execute the following query against the content database&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;em&gt;&lt;strong&gt;Select tp_login, tp_systemid, tp_deleted from userinfo where len(ltrim(rtrim(tp_systemid))) &amp;lt;25 and tp_deleted = 0&lt;/strong&gt;&lt;/em&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;4.&amp;nbsp;Note down&amp;nbsp;a list of&amp;nbsp;users returned from the query,&amp;nbsp;other than&amp;nbsp;the following system&amp;nbsp;users, if any&lt;/div&gt;&lt;ul&gt;&lt;li&gt;NT AUTHORITY\authenticated users&lt;/li&gt;&lt;li&gt;NT AUTHORITY\local service&lt;/li&gt;&lt;li&gt;NT AUTHORITY\system&lt;/li&gt;&lt;li&gt;SHAREPOINT\system&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;5. Grant a permission (e.g. Read permission)&amp;nbsp;to those users&amp;nbsp;(except the system users listed above) in the root site of the site collection.&amp;nbsp; This will somehow fix the corrupted&amp;nbsp;SID.&amp;nbsp; After that, can also remove back&amp;nbsp;the assigned user&amp;nbsp;permission if needed.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/div&gt;6. Reexecute the query againsts the content database until no more users (other than the system&amp;nbsp;users),&amp;nbsp;are returned&amp;nbsp;from the query.&amp;nbsp; &lt;br /&gt;&amp;nbsp; &lt;br /&gt;7. Run the incremental or full crawl on the content source containing the site collection &lt;br /&gt;&amp;nbsp; &lt;br /&gt;8. Perform the search on the site collection and get the results &lt;br /&gt;&lt;br /&gt;&lt;div&gt;Notes: When performing step 5, I found that some users cannot be granted the permission.&amp;nbsp; It returned an error message, saying "The user does not exist or is not unique".&amp;nbsp; I just skipped these users and move on to the next&amp;nbsp;user in the list.&amp;nbsp;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2412345252286453357-4337101045338940605?l=davidlimsharepoint.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://davidlimsharepoint.blogspot.com/feeds/4337101045338940605/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://davidlimsharepoint.blogspot.com/2010/03/error-in-site-data-web-service-no.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2412345252286453357/posts/default/4337101045338940605'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2412345252286453357/posts/default/4337101045338940605'/><link rel='alternate' type='text/html' href='http://davidlimsharepoint.blogspot.com/2010/03/error-in-site-data-web-service-no.html' title='Error in the Site Data Web Service - No results returned from Search'/><author><name>David</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://3.bp.blogspot.com/--ui1lmzzdqo/TZFcC-LQj9I/AAAAAAAAACk/8Odp0iLBPTA/s220/David2.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2412345252286453357.post-1033497472234402343</id><published>2010-03-31T13:07:00.000+08:00</published><updated>2010-03-31T13:30:31.191+08:00</updated><title type='text'>Welcome to My SharePoint Blog</title><content type='html'>I would like to dedicate this blog as a diary of the exciting and challenging things that I have experienced and encountered while implementing SharePoint projects for my clients.  It has been more than four years since I delivered the first SharePoint 2007 project in 2006.  A lot of challenging issues have been found and ironed out during this journey.  With the release of SharePoint 2010, there will be much more exciting things ahead. &lt;br /&gt;&lt;br /&gt;Welcome to this blog!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2412345252286453357-1033497472234402343?l=davidlimsharepoint.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://davidlimsharepoint.blogspot.com/feeds/1033497472234402343/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://davidlimsharepoint.blogspot.com/2010/03/welcome-to-my-sharepoint-blog.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2412345252286453357/posts/default/1033497472234402343'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2412345252286453357/posts/default/1033497472234402343'/><link rel='alternate' type='text/html' href='http://davidlimsharepoint.blogspot.com/2010/03/welcome-to-my-sharepoint-blog.html' title='Welcome to My SharePoint Blog'/><author><name>David</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://3.bp.blogspot.com/--ui1lmzzdqo/TZFcC-LQj9I/AAAAAAAAACk/8Odp0iLBPTA/s220/David2.jpg'/></author><thr:total>0</thr:total></entry></feed>
