All posts by admin

How to Create Minimal Web Pages in SharePoint

This brief article talks about how to create minimalistic pages in SharePoint without deploying any server-side code, and with minimum effort by using only SharePoint Designer. By minimal web pages, here I mean master page and web pages that have only bare bones with essential web part zones, without any additional HTML markup for header, footer, left-navigation, or additional server-side controls (such as, site actions, search box, etc.).

Please note, even though this post is about SharePoint 2007 implementation, very similar technique is applicable to SharePoint 2010 as well, with changes to the content of the master page mostly.

1. Create a minimal masterpage with SharePoint Designer following this MSDN article: How to: Create a Minimal Master Page.

Basically, it all comes down to creating a file in SPD, which we are going to call msminimal.master, under your site’s http://site / _catalog / masterpage (Master Page Gallery). That msminimal.master must contain only essential empty zones, and no client-side markup or server-side controls.

My only changes to the master page from MSDN article would be adding Visible=”false” attribute to Site Actions and Welcome if you would like to hide them in your future web pages:

      <wssuc:Welcome id="explitLogout" runat="server" Visible="false" />
      <PublishingSiteAction:SiteActionMenu runat="server" Visible="false" /> 


2. While in SharePoint Designer, create a new web aspx page and reference your new master page changing MasterPageFile attribute from ~masterurl/default.master to _catalogs/masterpage/msminimal.master.

Here is an example of the simplest web page with just one web part zone:

<%@ Page language="C#" MasterPageFile="_catalogs/masterpage/msminimal.master" Inherits="Microsoft.SharePoint.WebPartPages.WebPartPage,Microsoft.SharePoint,Version=,Culture=neutral,PublicKeyToken=71e9bce111e9429c" meta:progid="SharePoint.WebPartPage.Document" %>
<%@ Register Tagprefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Register Tagprefix="WebPartPages" Namespace="Microsoft.SharePoint.WebPartPages" Assembly="Microsoft.SharePoint, Version=, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Import Namespace="Microsoft.SharePoint" %>

<asp:Content ContentPlaceHolderId="PlaceHolderMain" runat="server">
  <WebPartPages:WebPartZone runat="server" FrameType="TitleBarOnly" ID="MainZone">

3. Now if you want to edit your new custom web page visually in a browser and add web parts, you would need to use one old non-documented trick. Since there is no familiar header or site actions menu, you need to type in your Internet Explorer the following URL, in order to switch between view and edit mode, and back :

(Refer to my previous article on highly useful non-documented shortcuts

4. After adding all necessary content to your custom web page, it contains only content and no additional header, footer, etc. This sometimes comes extremely useful if you want to display some specific content in a Page Viewer Web Part on another SharePoint site, or in a frame in another non-SharePoint web application.

SharePoint 2010 White Papers

I put together a collection of white papers and diagrams from Microsoft site, which are related to SharePoint 2010 deployment and configuration. Some of them are extremely useful when it comes to planning a new SharePoint installation or preparing technical documentation. I organized SharePoint Server 2010 resources into three categories, trying to match MOF phases – plan, deliver, operate. All other resources are grouped under specific server they relate to, namely Foundation, Search, FAST, Project Server, etc.

Planning phase

Getting started with Microsoft SharePoint Server 2010 (SharePtServGetStarted.doc)

Capacity planning for Microsoft SharePoint Server 2010 (SharePtServPlanCap.doc)

Planning guide for server farms and environments for Microsoft SharePoint Server 2010 (SharePtServPlanPlatfm.doc)

Topologies for SharePoint Server 2010 (Topologies_SharePointServer2010.vsd)

Extranet Topologies for SharePoint 2010 Products (OIT2010_Model_ExtranetTopologies.vsd)

Planning guide for sites and solutions for Microsoft SharePoint Server 2010, Part 1 (SharePtServPlanSandS1.doc)

Planning guide for sites and solutions for Microsoft SharePoint Server 2010, Part 2 (SharePtServPlanSandS2.doc)

SharePoint 2010 Virtualization Guidance and Recommendations (oit2010-whitepaper-virtualization-guidance.docx)

SharePoint Server 2010 design samples: Corporate portal with classic authentication or with claims-based authentication
(SPS_2010_Design Sample_Corporate Portal_ClaimsAuth.vsd; SPS_2010_Design Sample_Corporate Portal_ClassicAuth.vsd)

Delivery phase

Deployment guide for Microsoft SharePoint Server 2010 (SharePtServDeployment.doc)

SharePoint 2010 Products Deployment (Deployment_SharePoint2010Products.vsd)

SharePoint 2010 Products: Virtualization Process (SharePoint2010_ServerVirtualization.vsd)

Hosting Environments for SharePoint 2010 Products (Hosting_SharePointProducts2010.vsd)

Services in SharePoint 2010 Products (SvsSingleFarm_SharePointProducts2010.vsd)

Cross-farm Services in SharePoint 2010 Products (SvsCrossFarm_SharePointProducts2010.vsd)

Configuring Kerberos Authentication for Microsoft SharePoint 2010 Products (SP2010 Kerberos Guide.docx)

Remote BLOB storage for Microsoft SharePoint Server 2010 (SharePtServBLOB.doc)

Operational phase

Operations guide for servers and server farms for Microsoft SharePoint Server 2010 (SharePtServOperations.doc)

Technical reference for Microsoft SharePoint Server 2010 (SharePtServTechRef.doc)

Microsoft SharePoint Server 2010 Technical Library in Compiled Help format (SharePtServer2010.chm)

Business continuity management for Microsoft SharePoint Server 2010 (SharePtServContinuity.doc)

SP 2010 Foundation Resources

Getting started with Microsoft SharePoint Foundation 2010 (SharePtFoundGetStart.doc)

Deployment guide for Microsoft SharePoint Foundation 2010 (SharePointFoundDeplo.doc)

Planning guide for Microsoft SharePoint Foundation 2010 (SharePointFoundPlan.doc)

Operations guide for SharePoint Foundation 2010 (SharePointFoundOps.doc)

Microsoft SharePoint Foundation 2010 Technical Library in Compiled Help format (SharePtFound2010.chm)

Technical reference for Microsoft SharePoint Foundation 2010 (SharePointFoundTecR.doc)

Business continuity management for Microsoft SharePoint Foundation 2010 (SharePtFoundContinuit.doc)


Getting Started with Enterprise Search in SharePoint 2010 Products (Getting Started with Enterprise Search in SharePoint 2010 Products.docx)

Search Technologies for SharePoint 2010 Products (Search Model 1 of 4 – Search Technologies.vsd)

Search Environment Planning for Microsoft SharePoint Server 2010 (Search Model 2 of 4 – Search Environment Planning.vsd)

Search Architectures for Microsoft SharePoint Server 2010 (Search Model 3 of 4 – Search Architectures.vsd)

Design Search Architectures for Microsoft SharePoint Server 2010 (Search Model 4 of 4 – Farm-level design.vsd)

Microsoft Search Server 2010 Technical Library in Compiled Help format (SearchServer2010.chm)

FAST Search

Microsoft FAST Search Server 2010 for SharePoint Enterprise Search Evaluation Guide (FASTSearchServer2010_SearchEvalGuide.docx)

FAST Search Server 2010 for SharePoint Capacity Planning (FASTSearchSharePoint2010CapacityPlanningDoc.docx)

Deployment guide for FAST Search Server 2010 for SharePoint (FASTDeployment.doc)

Microsoft FAST Search Server 2010 for SharePoint Technical Library in Compiled Help format (FASTSearch2010.chm)


Virtualization Overview, Methods, and Models

IT Manager: Platform Solution Blueprint – Virtualization

The Most Useful Undocumented SharePoint 2007/2010 Shortcuts

Here are a few of the most useful SharePoint shortcuts, which work in all versions of SharePoint 2007 and 2010 (even 2003).

Enter page web part maintenance mode

Append ?contents=1 to the URL of the page for which you want to enter maintenance mode, for example:

Enter page edit mode

Including system pages, such as view or edit pages: NewForm.aspx, EditForm.aspx, AllItems.aspx, etc.
In Internet Explorer’s URL bar type:


For more details on ShowToolPane parameter, you can refer to this old MSDN article.

Heads up: There is one thing you must seriously consider before editing a system page. This lesson I learnt the hard way from exposing modified edit pages to end-users. When you modify a previously read-only system page, such as a view or edit form, through the shortcut explain above, you make it available for editing to anyone who has contribute rights on that library or list. Hence that page becomes vulnerable to accidental changes by non-power users, because previously hidden Edit Page menu will be visible to them in Site Actions menu.

Access administration pages

A few quick shortcuts that I find not only can save time, but also help bypass obscurity created by system administrators:

http://site/_layouts/savetmpl.aspx – Save site as a template
http://site/_layouts/create.aspx – Create (libraries, lists, pages, sites)
http://site/_layouts/settings.aspx – Site settings
http://site/_layouts/newsbweb.aspx – Create a new site or workspace
http://site/_layouts/sitemanager.aspx – Site content and structure browser

Deleting GTP and EFI Partitions on Windows 7/Server 2008/Vista

If you are trying to delete GTP or EFI partition on your hard drive under Windows Server 2008/7/Vista using management console are you out of luck. However, here is the easiest way to get around it:

Start command prompt and run diskpart.exe in command prompt issuing these commands as per illustration below:
DISKPART> list disk
DISKPART> select disk x

Please note, the reason for using ‘clean’ command instead of ‘delete volume’ is that ‘delete volume’ crashes diskpart utility when attempting to delete GTP/EFI partitions. Also outdated diskpar.exe utilitiy, which is frequently used for aligning physical partitions and is still quite popular for SSD optimization, cannot even read disk layout containing GTP or EFI partitions.

Great post: How to Delete GPT Partition or EFI from Mac Hard Disks In Vista or XP
Reference: A Description of the Diskpart Command-Line Utility
Diskpar & Diskpart in server environment: Disk Partitioning Offset
Disk partitioning Alignment: Disk Partition Alignment Best Practices for SQL Server
SSD Optimization guide: OCZ Technology Forum

Fix for a Recurring Meeting Workspace Error

A great time saving post on MS SharePoint Designer Team blog:
How to fix: Recurring Meeting Workspace error: ‘g_InstanceID’ is undefined

I ran into this problem after applying a custom master page to a meeting workspace, which was linked to a recurring event. Date selection on the left navigation stopped working if a custom master page was selected, but it worked fine when site master page was set to a standard SharePoint one.

Adding these two lines to a custom master page, mentioned in the blog post above, resolve the issue:

<%@Master language="C#"%>
<%@ Register Tagprefix="Meetings" Namespace="Microsoft.SharePoint.Meetings" Assembly="Microsoft.SharePoint, Version=, Culture=neutral, PublicKeyToken=71e9bce111e9429c"%>
<Meetings:PropertyBag runat="server"/>

VSeWSS BIN Deployment and CAS Policy Issues

There is a bug in Visual Studio Extensions for WSS (including VSeWSS 1.3) – if you are targeting your web part deployment into BIN instead of GAC, you are in for an upleasant surprise, when you realize that you custom access policy is not working.

The reason for this is incorrect assembly reference in manifest.xml, which results in invalid URL for IMembershipCondition element, where binary name has an extra .dll suffix in CAS policy file, just like in the file excerpt below:

C:\Program Files\Common Files\microsoft shared\Web Server Extensions\12\CONFIG\wss_custom_wss_mediumtrust_guid.config

  <CodeGroup version="1" PermissionSetName="mycustomwebpart.wsp-12345678-90AB-1234-5678-90ABC3456-1">
    <IMembershipCondition version="1" Name="MyCustomWebPart" Url="$AppDirUrl$/bin/MyCustomWebPart.dll.dll" />

The solution for this problem is relatively simple:

– in your Visual Studio open WSP View pane, click Refresh button to update solution files

– open manifest.xml and in <Assembly> element remove extension ‘.dll’ from Assembly Name attribute:

<Solution ...>
    <PolicyItem xmlns="">
        <Assembly Name="MyCustomWebPart" />

Additionally, while editing manifest.xml if you like to grant your web part additional security privileges you might need to add a few lines to PermissionSet element. In particular, if you are using MOSS Search or Search Server functionality, such as KeywordQuery or FullTextSqlQuery classes you would need RegistryPermission and FileIOPermission lines.

<PermissionSet class="NamedPermissionSet" version="1" Description="Example">
<IPermission class="System.Security.Permissions.RegistryPermission, mscorlib, Version=, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Unrestricted="true" />
<IPermission class="System.Security.Permissions.EnvironmentPermission, mscorlib, Version=, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Unrestricted="true" />
<IPermission class="System.Security.Permissions.ReflectionPermission, mscorlib, Version=, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Unrestricted="true" />
<IPermission class="System.Security.Permissions.FileIOPermission, mscorlib, Version=, Culture=neutral, PublicKeyToken=b77a5c561934e089"version="1" Unrestricted="true" PathDiscovery="*AllFiles*" />

Additional resources:

Merging VMware Fusion/Workstation Virtual Split Disk into a Single VMDK

Every time you create a new virtual machine in VMware Fusion/Workstation, it is always created with a virtual disk (VMDK) split up into 2Gb files. One of the main reasons for that, I guess would be a limitation of FAT-32 file system – maximum file size of 2Gb. However, if you are no longer using FAT file system and would like to convert the default vmdk into one single pre-allocated file, here is what you can do.

In order to convert the existing virtual disk to a single .vmdk file you would need to use a console application ‘VMware Virtual Disk Manager’ located in '/Library/Application Support/VMWare Fusion' folder.

Follow these two steps:

– open your Mac terminal console (Applications -> Utilities -> Terminal) and navigate to the folder with your VMware disk image

– from that folder run the following command (typing VMware’s diskmanager path with backslash prefixes for space):

/Library/Application\ Support/VMWare\ Fusion/vmware-diskmanager -r originalSplitDisk.vmdk -t 0 targetSingleDisk.vmdk

If you are running VMware Workstation on Windows, you can use the same command with the only difference that vmware-vdiskmanager.exe would be located in a folder where VMware Workstation was installed, e.g.: C:\Program Files\VMware\VMware Workstation.

Documentation and other examples for VMware Virtual Disk Manager use:

Converting Physical x64 Machine to Virtual (Windows 7/Server 2008 R2): Microsoft – 1 : VMware – 0

Being an old fan of VMware products (in particular, the fact that I can run VMware VMs on my MacBook, as well as on Wintel desktop), I found myself utterly disappointed this week, when I tried to convert my physical Windows Server 2008 R2 x64 into a virtual instance.

The latest version of VMware Converter kept crashing on me at the start of the conversion process with the error: “Unable to create a VSS snapshot of the source volume(s).”
More disappointingly, even according to press releases VMware vCenter Converter – the latest and greatest version of VMware Converter, officially doesn’t support Windows 7 or Windows Server 2008 R2 editions (its latest version at the moment is 4.0.1 and dated 2009-12-08).

After a few failed attempts with VMware, I decided to look at Microsoft offerings. Even though, I couldn’t find an official Microsoft converter product, I found something better – a Sysinternals utility Disk2vhd, which can create a virtual hard disk (VHD) out of running physical image.

The most impressive part that the whole process of converting my running 60G RAID-0 hard drive array took only a couple of minutes, with minimal configuration effort – no heavy installation or complex user-interface interactions. All I had to do is select a check box with the volume(s), which needs to be converted and that’s it. Systinternals delivered an impressive utility once again! Kudos to Microsoft for keeping Sysinternals brand alive and bringing new useful tools.


SharePoint Server 2007 on Windows Server 2008 R2

This already became a somewhat old topic, since Microsoft released a proper SharePoint Server 2007 slipstream edition with SP2.

Nonetheless, it is important to remember that if you are planning to install SharePoint Server 2007 or Windows SharePoint Services 3.0, it has to be at least SP2, anything before that is not supported on Windows Server 2008 R2. SharePoint Team Blog: Install SharePoint Server 2007 on Windows Server 2008 R2

There was a bit of confusion/frustration raised over this topic, because WSS 3.0 slipstream with SP2 came out long ago (April 2009), but MOSS 2007 was for some reasons left behind, and MSDN subscribers saw slipstream SP2 edition only in January 2010.

WSS 3.0 with SP2:

MOSS 2007 with SP2 (trial):

Windows Server, IIS/SharePoint, and NULL SID ‘Audit Failure’ Security Errors

I stumbled across this issue, while troubleshooting errors accessing host-named SharePoint sites locally from within a web server (sites with specified host headers different from local server name).
While I had no problems accessing the same site from another computer, I could not login and access any pages locally. I was constantly prompted for user name and password receiving access errors, while my Security event log was getting filled with ‘Audit Failure’ log messages about NULL SID: “An account failed to log on. Security ID: NULL SID”.

After eliminating all possible causes – NLB, SharePoint site configuration, IIS security and settings – it turned out that it wasn’t even IIS- or SharePoint-related issue at all. Starting with Windows Server 2003 SP1 and higher (Windows Server 2008 and R2 editions in that list as well), as a security measure Microsoft introduced a loopback check to prevent man-in-the-middle (MITM) attack, when a malicious application (such as spyware) can try to eavesdrop communication with a remote server by introducing itself locally as a remote host. Please note: loopback check happens only when host headers do not match local computer name.

The symptoms and solutions are described in Microsoft KB article:
Additionally a few other related issues (accessing network shares, etc) are outlined in two more KB articles: and

To deal with this issue you have two options: either explicitly specify all host headers in the registry (the most secure, but also the most cumbersome solution), or disable loopback check entirely.

If you decide to opt for completely disabling loopback check (on a development or test server), here is one command line you can achieve it through. Please remember to restart your server after changing the registry!

REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Lsa /v DisableLoopbackCheck /t REG_DWORD /d 1