Free Books

Another large collection of Free Microsoft eBooks and Resource Kits for you, including: SharePoint 2013, Office 2013, Office 365, Duet 2.0, Azure, Cloud, Windows Phone, Lync, Dynamics CRM, and more….



Changing the Distributed Cache Service from One Server to another

Not gonna make this a long one because things are really busy. If you are getting to this post you should have an idea what the Distributed cache service is all about, if not here is a summary…

The Distributed Cache service is either required by or improves performance of the following features:

  • Authentication
  • Newsfeeds
  • OneNote client access
  • Security Trimming
  • Page load performance

For an overview of the Distributed Cache service, see or in plain English

I have some SharePoint 2013 environments I use for demos and the likes. one such environment has 4 servers, on Domain controller, a VPN server for networking, another for SharePoint 2013 as a web front end and the last one a SharePoint 2013 server dedicated specifically for managing the Distributed cache service. Now I have inherited this particular set of environments from Microsoft with dummy content on so I don’t have to work too hard at developing features for demos and POCs. My lap top has a max 16GB RAM so running all 4 servers in my hyper v is very resource consuming so I needed to find a way of minimizing the RAM requirements so I could use the machines all together without compromising on performance.

Although not totally necessary to have the distributed cache on a dedicated server unless you have a large farm, I decided to remove the need for the dedicated Distributed cache server as the farm is for use of about 100 users. That would save me about 8gb RAM! So no need for a dedicated cache server. But I do need to preserve the data on there and somehow transfer it to somewhere else where there is a valid service for the distributed cache, available to consume the data, the other web front end perhaps? Correcto! And then remove the service from the dedicated server and put the beast to rest.

So in Lamen’s terms…

Web Front End with Distributed Cache Service (dedicated) = WFE-DC

Web Front End with The Rest Of the SharePoint Services available = WFE-ALL

Some constants –

WFE-ALL has App fabric installed, necessary for the Distributed Cache and firewall is deactivated for the domain or  allows inbound ICMPv4 traffic. If you need Windows Firewall, you can enable this in PowerShell with the Set-NetFirewallRule cmdlet. The name of the rule is “File and Printer SharePoint (Echo request – ICMPv4-In)”. Notice also that it doesn’t take a Boolean ($true), but rather the string “True” as an argument to the -Enabled parameter. Don’t forget to Import-Module NetSecurity first, though! See below…


By now you’ve figured we need to use our new best friend Powershell to execute this master plan. Get used to Powershell if you wanna be a good developer/ architect, it can save you time and effort!

The Distributed Cache is one greedy kid, consuming a max of 10% total memory resource on any server it runs. So be aware of this when allocating memory to the server hosting the  service.

For whatever reason you need to move the Distributed Cache Service in a SharePoint environment,  here’s the master plan….

1.   Add the Distributed Cache Service to the WFE-ALL server to create a Distributed Cache Cluster (Fancy eh?). You need somewhere to move the cache data to when removing the service from the WFE-DC, to avoid data loss.

2.  ‘Gracefully’ shut down the Distributed Cache service on the WFE-DC. This will automatically move over all the data to the WFE-ALL server which is now part of the cluster. Its a long process, expect it to take around 15 mins or more depending on the amount of data in there.

3.  Them remove the service from the WFE-DC and it’s all done.

Now would you believe me if I told you this can be accomplished with 3 lines of Powershell??? Check this out…

1.  On WFE-ALL run the following:


2.   On WFE-DC run the following:

Stop-SPDistributedCacheServiceInstance -Graceful

Wait 15 mins, pour a drink or make a coffee, whichever poison tickles you fancy and then check the service is operational in its new location. Also test microfeed update settings in newsfeeds, this will be a good indicator of its state.

Other stuff you might need to manage at a later date are changing the service account, change the memory allocation or repair the host:

Pretty simple stuff peeps?

Peace, Love and SharePoint!



Network Discovery settings not sticking?

Apologies for the absence peeps, I’ve been very busy building servers and creating new Powershell scripts to facilitate my newest experiment: Installing and Configuring SharePoint 2013 on multiple servers in a mixed topology using only Powershell in a hands off approach. I will blog about it once I have finished my findings so hold tight!

Ok so I just have to write this up as I also use this blog to store valuable information I will likely need in the future, before I forget it .I’m configuring Windows Server 2012 environments and I’m trying to add them to my newly created domain. I know I need to enable network Discovery in the Network and Sharing Center (Control Panel–> Network and sharing Center–> Change Advanced Sharing Settings). But turn these on and as soon as you click ok, the settings revert back to their original state.

This issue will occur if the dependency services are disabled. Please make sure the following services are enabled and running:

-DNS Client
– Function Discovery Resource Publication
– SSDP Discovery
– UPnP Device Host

If this fails, check your firewall settings but it worked for me.

The Art of Installing SharePoint 2013 in a 3 Tier Topology – Part One

Ok, so you’re a support person/ newbie/ trainee SharePoint guru, and you have been asked to install SharePoint 2013 with the following topology or similar:

Now SharePoint 2013 is similar to 2010 but they are very different. Although this topology is quite rare, I had to re-create it for my app development, architecture and POC creation, and I’m going to take you through the steps of creating it from scratch. I’m going to assume this is your first SharePoint installation, so all the gurus out there, be patient! It could be a long post so I might put some links to the same information I used for reference to help me complete some of my tasks. There’s a lot of info out there on installing SharePoint 2013 (SP2013 from here on in) so by all means, have a gander and design your own custom installation solution using different aspects of others as I have done.

First off please read and understand the hardware and software requirements for SP2013, they are very important, the nature of the beast is that SharePoint is getting more splendid and all these beautiful features require more and more memory. – this is a good link to read to get you thinking about browser and IP support as well as software boundaries, limits and capacity management. Before installing SharePoint 2013, you need to really understand what it is you are doing, it will save many days of frustration and prevent many grey hairs! Ok, so here we go…

Hardware RoadMap

I created all of this on a machine with 16GB RAM, my OS was Server 2008 r2 with Hyper V role installed. All servers are on 64 bit processors.

My plan for memory allocation was as such:

AD Server – 2GB Ram and 80GB Hard drive On 64 bit processor

Database Server – 3GB and 80GB Hard drive (8GB Ram usual for SP2013 but I have used 3 and not suffered any repercussions yet, you can always increase this if the need arises especially if you are using Hyper environments) On 64 bit processor

SharePoint Server – 8GB and 80GB hard drive (Microsoft recommends at least 12 GB for production deployments but really, I think they are being overly cautious because of performance issues (Page Loads etc.) encountered with SharePoint 2010. I work with my 8GB just fine, no problems yet, but this can always be increased if required). On 64 bit processors

I created all these hyper V servers using my Hyper V manager on my guest OS. See these 2 links to create a virtual machine from a guest OS (Windows Server 2008 R2 in my case):

The next links helped me understand the different network options available in Hyper V and how basic networking in Hyper V environments work:

One other very important step is providing internet access to your machines once you have created them. I was connecting to the internet on my guest OS using a wireless connection and used the following link to facilitate that:

Software RoadMap

My software list is as follows:

AD Server – Windows 2008 R2 with AD Services role installed. I used the following link to help with setting up my domain and promoting my server to be a domain controller:

To install the OS once I had created my hyper V machine was to attach the installation media, i.e. point Hyper V to where your Windows Server 2008 r2 installation media is on your guest OS. Don’t forget to install DHCP, WINS and Enterprise Certificate Services.

*Note Before I installed the AD role on the server I update the machine with the latest service packs and updates as the Domain controller is not really meant to have any internet access for security reasons.

SQL Server – Windows Server 2012 and SQL Server 2012 standard (No longer enterprise version of Windows now, only Standard and DataCenter).

I used this link to help me set up Server 2012 and add it to my domain (Created on the domain controller):

The process of installing SQL is quite laborious so I will help you through that one in the next blog post. Don’t forget to install updates after you have installed all your required software.

SharePoint Server – Windows Server 2012, SharePoint Server 2013, Visual Studio 2013, Office 2013, SharePoint Designer 2013, and any other Dev tools you usually use. I included ULS viewer and CSK Dev Visual Studio tools from Codeplex, SP2013 Client Component Tools SDK (, and whatever else you might use for your development machine.

So I knew I had a big task ahead of me to set this all up, so I made a list of all my required tasks and it looked something like this:

  1. Create, install and configure AD Server and Domain and create Service and Farm accounts (See SharePoint installation blog post for a list of these)
  2. Create, install and configure Database Server
    1. Install Server 2012 and configure
    2. Install SQL Server 2012
    3. Add SharePoint Admin and Farm account to Database server and apply correct perms (Spadmin needs DBCreator and Security Admin permission as well as an admin on the SQL and SharePoint servers). See here ( and here (
    4. Set Up Max degree of parallelism ( and some info here (
    5. Configure SQL Server Security (
  3. Create, install and configure SharePoint 2013 Server
    1. Set up server with Web server and Application server roles
    2. Install and configure SharePoint 2013
    3. Install and configure Visual Studio 2013, Office 2013, SharePoint Designer 2013, ULS Viewer and other software
    4. Configure Managed Accounts and set up logging, email etc
    5. Set Up AD synchronisation
    6. Download and install SP2013 Client Components SDK
    7. Update all servers
    8. Backup all servers and create future backup schedule
  4. Pour a much needed Long island Ice tea and assume the recovery position! Lol that’s optional!

Ok so for part 2, I’m gonna assume you have your own plan ready to go, and you have an AD server with a working domain. Ok Lets install and configure SQL 2012