Friday, October 23, 2009

Wednesday, October 21, 2009

SharePoint 2010 (Beta) Developer Center

http://msdn.microsoft.com/en-us/sharepoint/ee514561.aspx

What's New in SharePoint Foundation 2010

Atlast for some folks the wait is over here is a list of new features of SharePoint 2010 as posted by Micorosoft -

What's New: Alerts Enhancements

What's New: Business Connectivity Services

What's New: Client Object Model

What's New: Events Improvements

What's New: Microsoft Synch Framework

What's New: Mobile Device Development Enhancements

What's New: Query Enhancements

What's New: Ribbon

What's New: Sandboxed Solutions

What's New: Service Application Framework

What's New: Silverlight Integration and the Fluid Application Model

What's New: UI Improvements

What's New: Windows PowerShell for SharePoint

What's New: Workflow Improvements

SharePoint Products and Technologies (2010)

Finally microsoft started pushing SharePoint 2010 documentation on technet site -

http://msdn.microsoft.com/en-us/library/dd776256.aspx

Wednesday, September 23, 2009

MOSS Limitations pre SP2

Check out performance guidelines and limitations on SharePoint 2007 with SP1 from Microsoft.

http://technet.microsoft.com/en-us/library/cc262787.aspx

Monday, September 21, 2009

Best practices for search performance

In Office SharePoint Server 2007, you also have SharePoint groups. This system is very flexible and can include multiple layers of nesting. However, security principals can adversely affect Office SharePoint Server search performance.


To ensure maximum performance from the Office SharePoint Server 2007 crawler and searches, observe the following rules when you are using Active Directory security principals and SharePoint groups:

Place user accounts into global groups, and global groups into domain local groups. Assign permissions to domain local groups. This is the recommended best practice for using security principals in Active Directory. It ensures that domain controllers can look up group memberships quickly and that users can access resources throughout the forest.
If universal groups are necessary, use the same system but put global groups into universal groups and universal groups into domain local groups.

Put domain local groups into SharePoint groups to assign permissions to SharePoint sites and other resources.


Limit the number of nesting levels used in group membership.

  • Do not Assign Office SharePoint Server site permissions to individual users.
  • Do not Use deeply nested Active Directory security groups.
  • Do not Use distribution lists or security groups that contain contacts.

For more details -
Search Performance

SharePoint Backup Error

If you get the following error message while trying to run the backup process from Central Admin or through stsadm.

"Object WSS_Content failed in event OnBackup. For more information, see the
error log located in the backup directory. SqlException: Cannot open backup
device 'C:\SharePoint\backup\spbr0002\00000012.bak'. Operating system error
3(The system cannot find the path specified.). BACKUP DATABASE is terminating
abnormally. "

To resove this problem, make sure you are UNC path for backup and the account running SQL service has write access to this path, for more detail -
http://support.microsoft.com/kb/207187


Backup plan may fail with the following error
************************** Errors ***********************
Path: http : / / web / sites / wwwwww, Status: Failed.
Error Message: Site Level Backup Backup() error:Write error on file
"sharepoint_bak.dat".
******************************************************

A likely reason that this is failing is that the location where the file is being written to does not have sufficient space.

Friday, September 18, 2009

Remove large SQL 2005 Log file to save disk space

Sometimes we just do not need the big log file, specially if you are working on dev machine with SQL server - true in most cases with SharePoint 2007 server install. So here are the steps to clear some much needed space by removing the database log file. 
  1. Detach the database
  2. Rename the log file
  3. Attach the database without the log file
  4. Delete the log file
Let's say, the database name is WSS_Content. Open your SQL Server Management Studio,
Highlight the database -> Select Tasks , now select Detach and Click OK
Go to your log file folder -> rename the WSS_Content_log.ldf to be like testDev_log-to_be_deleted, and now go back to SQL Server Management Studio follow these steps -

Highlight Databases -> select Attach and click on Add -> add your database WSS_Content, highlight the log file and click the "Remove" button. This attach WSS_Content.mdf and create a new fresh log file.


After this is done, make sure that you verify the contents of the attached database and then delete your old log file.

And please don't forget to run Defrag on your machine, so that you can enjoy better performance.


Have Fun!!

Thursday, August 27, 2009

LDAP filters for MOSS User Profile Import

A typical query for bringing users from AD to MOSS will be -

(&(objectCategory=person)(objectClass=user)

but this will bring all services and disabled accounts, to filter these accounts you can use the following methods -
To remove disabled accounts -
(!userAccountControl:1.2.840.113556.1.4.803:=2) - removes disabled accounts

To remove service accounts (accounts with Password Expiration disabled)
(!userAccountControl=65536)
or
(!userAccountControl:1.2.840.113556.1.4.803:=65536) //in my case this one worked

Here is your LDAP query with these filter -

(&(objectCategory=person)(objectClass=user)(!userAccountControl:1.2.840.113556.1.4.803:=2)(!userAccountControl:1.2.840.113556.1.4.803:=65536))

There might be cases where you want to filter out a particular group, let say you want to exclude users from a group named - FilterGroup, under MYOU, in this case the query will be as follows -

(&(&(objectCategory=person)(objectClass=user)(!userAccountControl:1.2.840.113556.1.4.803:=2)(!memberOf=CN=FilterGroup,OU=MYOU,DC=mydomain,DC=local)))

Some more examples -

Include only the accounts with valid email addresses
(&(objectCategory=Person)(objectClass=User)(mail=*com)

Exclude accounts that don’t have a first name
(&(objectCategory=Person)(objectClass=User)(!(userAccountControl:1.2.840.113556.1.4.803:=2))(!(!givenName=*)))

 Thanks to -
Some more resources -
MSDN – Active Directory Search Filter Syntax

Wednesday, August 19, 2009

List does not exist - SharePoint 2007

While creating a new site based on a site template if you get the following error -

An error occured while rendering navigation for requested URL: /{SITEURL}/currentopps/2009/Test2006. Exception message: List does not exist
The page you selected contains a list that does not exist. It may have been deleted by another user. Stack trace: at Microsoft.SharePoint.Library.SPRequest.GetListsWithCallback(String bstrUrl, Guid foreignWebId, String bstrListInternalName, Int32 dwBaseType, Int32 dwBaseTypeAlt, Int32 dwServerTemplate, UInt32 dwGetListFlags, UInt32 dwListFilterFlags, Boolean bPrefetchMetaData, Boolean bSecurityTrimmed, Boolean bGetSecurityData, ISP2DSafeArrayWriter p2DWriter, Int32& plRecycleBinCount) at Microsoft.SharePoint.SPListCollection.EnsureListsData(Guid webId, String strListName) at Microsoft.SharePoint.SPListCollection.EnsureListsData(String strListName) at Microsoft.SharePoint.SPListCollection.ItemByInternalName(String strInternalName, Boolean bThrowException) at Microsoft.SharePoint.SPListCollection.GetListById(Guid uniqueID, Boolean bThrowException) at Microsoft.SharePoint.SPListCollection.get_Item(Guid uniqueID) at Microsoft.SharePoint.Publishing.PublishingWeb.get_PagesList() at Microsoft.SharePoint.Publishing.CachedArea.GetChildPageIds() at Microsoft.SharePoint.Publishing.Navigation.PortalWebSiteMapNode.PopulateNavigationChildren(NodeTypes includedTypes) at Microsoft.SharePoint.Publishing.Navigation.PortalSiteMapNode.GetNavigationChildren(NodeTypes includedTypes, NodeTypes includedHiddenTypes, OrderingMethod ordering, AutomaticSortingMethod method, Boolean ascending, Int32 lcid) at Microsoft.SharePoint.Publishing.Navigation.PortalSiteMapNode.GetNavigationChildren(NodeTypes includedHiddenTypes) at Microsoft.SharePoint.Publishing.Navigation.PortalSiteMapProvider.GetChildNodes(PortalSiteMapNode node, NodeTypes includedHiddenTypes)


This error happens if you are using publishing feature in your site template.