Browsed by
Tag: VMWare

Creating a Sysprepped Windows Server 2012 image

Creating a Sysprepped Windows Server 2012 image

One of the advantages to running Windows Server 2012 is the highly improved Hyper-V engine. In my time working on deployment scenarios I have found that creating a reliable baseline VM is critical to my success in getting farms deployed quickly and easily. To this end I have found that getting a new VM server with the OS installed to the correct level with patches, the SharePoint prerequisites, and all of the customizations that I like to have on a server already installed and ready to go in minutes is pretty important.

This is where Sysprep comes the picture. We have been using Sysprep to prepare images since Windows XP as it allows us to generalize the critical system GUIDs and when the image is launched post-Sysprepping it will create new GUIDs and allow you to re-register the system. While this has always been a recommended practice for deploying the same VM over and over, it has not been a required function until Windows Server 2012.

There are some drawbacks to generalizing a system that you are trying to deploy. For example, once a server has been registered in a SharePoint farm that server cannot be expected to interoperate properly once generalized. Translation: you can’t join a SharePoint server to a farm, then do a generalized Sysprep, and expect the new server to be a member of the farm. It is going to have an understandable identity crisis.

For this reason, you will want to do your generalized Sysprep after installing SharePoint & it’s patches, but BEFORE doing your PSCONFIG. This will allow you to redeploy the image, set the computer name, a domain and then run PSCONFIG to join the server to the farm. On average this process will take about 15 or so minutes.

Here is how you actually will perform a generalized Sysprep:

1.) Get your image where you are happy with it

Patch your OS. Install the softwares that you want to be able to have already ready to go. I recommend checking out some of my other posts for helpful PowerShell scripts that you will want to run to help you with some of the base OS configurations that you will find useful. “Setup your development machine right” & “Track what you are doing in PowerShell” are two good examples of this.

2.) Take a snapshot of your VM

This will allow you to return to the operational state you are currently in when you finish Sysprepping the image.

3.) From command line run: “c:\windows\system32\sysprep\sysprep.exe”


4.) Choose the option to “Generalize the system”

This is going to remove the GUIDs from the registry and allow you to create new ones upon boot. This will also remove the license key information and require that you re-register with Microsoft when you use the image. This will allow sharing of an image with others without the fear of the licensing police coming after you.

5.) Choose the option to shut down the machine when complete

6.) Click Ok

7.) Once the VM is shutdown make a copy of the VM

It is a good idea to store this in a location that you going to remember what the VM is. It is also a good idea to rename the VM folder & files so that you know that this is a generic image. You will want to give the files a new name each time you redeploy them.

8.) Revert to your pre-Sysprepped snapshot

As previously stated, this will return you to where you were before you started this exercise with an image ready to deploy on.

I hope that this is as useful for you as it has been for me.

How to: Configure Microsoft Nework Load Balancing (NLB) in a Virtualized Environment for Windows 2008 R2 on a Cisco Switched Network

How to: Configure Microsoft Nework Load Balancing (NLB) in a Virtualized Environment for Windows 2008 R2 on a Cisco Switched Network

Firstly, can I make this blog post’s title any longer?  Yes, I didn’t include that I am doing this for SharePoint 2010, so thanks for the smart-alecked thoughts subconscious!


Using VMware vSphere 4.0 server to host Windows 2008 R2 64bit Servers which host SharePoint 2010 Server and looking to use Microsoft’s NLB.

Set up NLB in mulitcast mode as recommended by everyone in the blogosphere and some different Microsoft articles and viola!  It works…  until 5 minutes after implementation and then anyone who sits outside of the site where the servers reside can no longer get to the pages.  Users at the site where the servers are can consistently resolve pages without fail.  Anyone offsite gets an error.

How do you get NLB to work every time for all users regardless of location?


All trouble shooting pointed back to networking.  After a bit of digging and working with the site networking team, I found that we had Cisco 4506 switches that we were going through and while they support multicast, the switch needs a static MAC address entered in it’s ARP table or it will not allow anyone coming to the switch from outside to connect because it doesn’t know who to route the packets to.  The users on the same switch are able to see the advertisement of the MAC through broadcast.

Setting the static MAC entry in the ARP table worked for some users for a little while, but not for everyone.  It wasn’t until we came across an article from VMware that we discovered that the switch supported IGMP Multicast and not standard multicast.

Things started working for a while and then we hit the wall again.  I started a clean NLB Cluster installation and found that switching from standard Multicast to IGMP Multicast changed the MAC address of the virtual NIC!  We were using the standard Multicast MAC for the ARP table entry instead of the IGMP Multicast MAC address.

Once we made the change to the ARP table with the correct static MAC address, we were off to the races for all users.

Helpful Links:

Here are a few helpful links to read when you are considering setting up NLB:

Implementing Microsoft NLB in a Virtualized Environment

Configure Network Load Balancing Cluster Operation Mode

Internet Group Management Protocol

Verifying the NLB Cluster and Enabling Client Access

Install and configure NLB on each cluster host in the new cluster

Unable to access VMware Workstation Guest after Host Machine crash

Unable to access VMware Workstation Guest after Host Machine crash


While doing SharePoint 2010 development is now able to be done from within a Windows 7 64bit system and even inside of a Hyper-V VM, many of us in the wide world of computing are still using VMware Workstation, Fusion, Player, or even the old VMware GSX Server to run local development environments.  This post deals with how to get back into a VM that seems horribly locked after your workstation hosting your VM crashes hard.


System crashed while a VMware Workstation Guest was running. The VM now reports that it is in use by the current host. Taking ownership of the VM is not possible.  All hope is starting to fade…


Go to the VM location and delete the .lck files and folders. This will unlock the VM Guest and allow you to boot in.  VMware treats this like a hard server reset, and offers safe mode booting at that point. If the system is able to recover cleanly, it gets you back to operational.


Just like anytime you hard reset a server you must be prepared to deal with the consequences.  Data loss, data corruption, and complete system failure is possible as a result of such action.

However if you are left with the alternative of complete system rebuild already, it might be worth a shot.  Just don’t blame me if your system is toasty afterwards.