I recently decided to move over to Windows 8 so I can take advantage of Hyper-V and get off a third party tool for virtualization. In the process I decided to rebuild my VM set up and modify the layout a little. Previously I had made each VM a domain controller that needed to be joined to a domain. This was ok in the previous setup as communication between VMs was a pain. With Hyper-V though I decided to create one domain controller and join the other VMs to it in an attempt to boost my SharePoint VM performance.
This was working splendid. I created a single Windows Server 2008 R2 Service Pack1 image with all the updates applied. I then made that read-only and used it as the base for my differencing disks. Again not a problem. Created a domain controller and a second VM for SharePoint 2010. Joining the domain was a breeze and installing SharePoint went great. The problem arose when I went to install SQL Server 2012.
When assigning the service accounts to the various SQL services the following error popped up when selecting the account to use:
“S-1-5-21-4180795751-2880370114-533936497-1103: No mapping between account names and security IDs was done.”.
Since I created a single differencing disk in Hyper-V and used it as the base for both my domain controller and my SharePoint VM the machines has the same SID. Normally this is not a problem except in one case when a DC is involved. I’m not a Windows admin, so I honestly don’t know all the details behind that (you’re welcome to read a really good blog about the problem here: http://blogs.technet.com/b/markrussinovich/archive/2009/11/03/3291024.aspx). In the end, the fact that both machines had the same SID was the issue.
The domain controller should have it’s own SID. Everything else can have the same SID, but the DC needs to be unique. This can mean doing one of two things; run SYSPREP on each new VM you create on top of the differencing disk (which if you read the blog above introduces all kinds of issues/undoes a bunch of settings you may have done already) or just create two separate VMs (one for the DC and a separate image for everything else).
I chose to go option two. I have a single image I use for the DC and a second image that is the base image for all differencing disks that I may create. This way the DC SID is always guaranteed to be different from the other VMs I create and I don’t have to bother with running the annoying SYSPREP process every time I create a new VM.
If you do choose the SYSPREP route though here is what you need to do:
- From the Start Menu select Run
- Enter C:WindowsSystem32sysprepsysprep.exe in the box and click OK
- Be sure that Enter System Out-of-Box Experience (OOBE) is selected
- Check the box next to Generalize (If this is not select the SID won’t get changed)
- Click OK and follow the prompts when the system reboots.