I know for a lot of people this is not something new, but in the courses I presented in the past weeks I always mentioned this great Windows 8 App called Server Posterpedia.
Category Archives: Active Directory
Windows Server 2012 Hyper-V: How to clone a Virtual Domain Controller

In Windows Server 2012 added a lot of improvements to Hyper-V and Active Directory. One of Microsoft strategic goals is to virtualize every workload. With the improved scale of Hyper-V Virtual Machine it is now possible to run even high SQL workload on Hyper-V Virtual Machines. In Windows Server 2008 R2 virtualization of Active Directory had still some challenges which Microsoft addressed in Windows Server 2012. (Windows Server 2008 R2: Running Domain Controllers in Hyper-V)
- Physical DC is required for Windows Server 2008 R2 Clusters
- No Snapshots of virtual Domain Controllers
- No cloning of virtual Domain Controllers
- No online V2V migration via Snapshots
- No restoring of virtual Domain Controller VMs
Most of this was caused by the problem of USN (update sequence numbers).
In Windows Server 2012 Microsoft included a new feature for Active Directory Domain Controllers called VM-GenerationID. At the moment you can use this feature with Windows Server 2012 Hyper-V as a hypervisor, but Microsoft also offers other hypervisor vendors to integrate this feature.
TechNet: Safe virtualization of domain controllers
“With Windows Server 2012, AD DS employs safeguards on virtual domain controllers hosted on VM-GenerationID aware hypervisors and ensures that the accidental application of snapshots or other such hypervisor-enabled mechanisms that could ‘rollback’ a virtual machine’s state will not disrupt your AD DS environment (by preventing replication problems such as a USN bubble or lingering objects). However, restoring a domain controller by applying a virtual machine snapshot is not recommended as an alternative mechanism to backing up a domain controller. It is recommended that you continue to use Windows Server Backup or other VSS-writer based backup solutions.”
Another problem was solved by Active Directory-less Cluster Bootstrapping. This basically removes the Active Directory dependencies during a cluster boot. This means you can boot up your cluster even if there is now other Active Directory server available during the boot process.
With the integration of the VM-GenerationID, Microsoft also created a new possibility which allows you to clone virtual Active Directory Domain Controllers.
How to clone a virtual Domain Controller
Preparation
- A Windows Server 2012 Hyper-V server is needed. In the future maybe other hypervisors will also support VM-GenerationID.
- A deployed Windows Server 2012 domain controller (virtualized or physical) that hosts the PDC emulator role. To check which server hosts the PDC role you could use the following PowerShell command.
Get-ADComputer (Get-ADDomainController –Discover –Service “PrimaryDC”).name –Property operatingsystemversion | fl
- A source virtual Domain Controller with Windows Server 2012 hosted on a Windows Server 2012 Hyper-V server. This will be the VM which will be cloned from. This cannot be the Domain Controller with the PDC role. In my example case this is VirtualDC1.
Step 1
Grant the source virtualized domain controller the permission to be cloned. Add the source domain controller to the Cloneable Domain Controllers group. You can do this over Active Directory Users and Computers, the Active Directory Administrative Center or Windows PowerShell. In my case I added the computer object VirtualDC1 to the Cloneable Domain Controllers group.
With Windows PowerShell this would be done like this.
Add-ADGroupMember –Identity “CN=Cloneable Domain Controllers,CN=Users,DC=cloud,DC=win” –Member “CN=VirtualDC1,OU=Domain Controllers,DC=cloud,DC=win”
Step 2
In the TechNet manual step to would now be to run Get-ADDCCloningExcludedApplicationList, this will check for applications which are not evaluated for cloning. If your source domain controller is a new clean setup with any special applications you can skip this step. If you have installed any application which is listed when you run Get-ADDCCloningExcludedApplicationList you have to create a Custom DC Clone Allow List. You can do this with the following PowerShell command.
Get-ADDCCloningExcludedApplicationList -GenerateXml
Step 3
Run New-ADDCCloneConfigFile on the source domain controller (VirtualDC1), which allows you the configuration of your new domain controller clone (in my case VirtualDC2), such as Name and IP Address.
New-ADDCCloneConfigFile –Static -IPv4Address “10.10.29.2” -IPv4DNSResolver “10.10.20.1” -IPv4SubnetMask “255.255.0.0” -CloneComputerName “VirtualDC2” -IPv4DefaultGateway “10.10.0.1” -SiteName “Default-First-Site-Name”
Note: The new domain controller has to be on the same site.
There are a lot of options you can configure your virtual server. For more information check out the TechNet page.
Step 4
In step for you have to export the source virtual machine (VirtualDC1) and import it as a new virtual machine (VirtualDC2). You can do this via Hyper-V Manager GUI or via the cool way with Windows PowerShell. Check out my blog post about doing import and export of virtual machines via Windows PowerShell.
After the import of your virtual machine is done you should rename it. In my example this will be VirtualDC2. After the import is finished you can boot up the virtual machines and you will have a new domain controller in your infrastructure.
By the way Peter Noorderijk wrote a blog post called The future of a virtual domain controller on the Hyper-V.nu blog.
Exam 70-410: Installing and Configuring Windows Server 2012 (Beta)

Last week I took the Microsoft Private Cloud Exam 70-246: Monitoring and Operating Private Cloud with System Center 2012 and got with this the MCSE: Private Cloud certification. I also did the beta exam 70-410: Installing and Configuring Windows Server 2012.
Now to my experience with the this exam. First of all you can see that Hyper-V is one of the new key features in Windows Server 2012 and you will get a lot of questions about Hyper-V. I got something round 45 questions. The question do pretty much match the list on the exam site. And I would recommend that you check out the new TechNet articles about Windows Server 2012. But I am sure it is much easier to pass the exam if you have worked with the new release of Windows Server 2012. Download the evaluation versions of Windows Server 2012 Release Candidate and test the new features.
You as mentioned on the exam site you should check out the following topics:
- New features in Hyper-V. So I would recommend reading my blog post about the new features in Hyper-V 2012.
- Upgrading to Windows Server 2012
- New PowerShell cmdlets. Here my blog posts about Networking and Disk Management with PowerShell can help you.
- NIC Teaming
- Active Directory and GPOs
- Print server
- Windows Server Core. This blog post about adding and removing the GUI can may help you.
- Storage
- Networking
You can get more information on the official Microsoft Certification site for exam 70-410: Installing and Configuring Windows Server 2012.
Microsoft Cloud for SMB
Last year I did a little research project about Microsoft’s public cloud and how it cloud affect Small and Medium sized businesses. So I created a paper which should help Microsoft partners to decide how they can improve their services and solutions by using the Microsoft public cloud. I the paper I focused on Microsoft Office 365 and Windows Intune. This should be for the partner which do infrastructure solutions like Active Directory, Exchange and PC Management.
You can download this paper from my Windows Live SkyDrive.
The paper includes a lot of text copied from Microsoft documents and websites, and research I did by myself. All the sources should be marked, but if you find anything which is not marked please feel free to contact me.
Automated Active Directory Deployment with PowerShell
For a small presentation at KTSI I created a PowerShell script will automatically will deploys Active Directory Servers, adds other member servers, creates Organization Units and adds users via Powershell Remoting. As source there is a XML configuration file and CSV files for User Data.
This script is just for Lab deployments not for production, and it is not perfect, but I think maybe some people will enhance this script with their own code.
I do not support this script. it is just something I need to deploy my test environments and nothing more. More it shows diffrent
You can find more information about it works in this document.
XML Config file:
<?xml version="1.0" encoding="utf-8"?> <lab> <config> <servers> <server name="ADS01" ip="192.168.100.11" id="1" adminpw="passw0rd"/> <server name="ADS02" ip="192.168.100.12" id="2" adminpw="passw0rd"/> </servers> <ad> <domain name="ktsi.local" netbiosname="ktsi" forestlevel="4" domainlevel="4" safemodepw="passw0rd" /> </ad> <ous> <ou name="UserAccounts" path="DC=KTSI,DC=LOCAL" /> <ou name="BASEL" path="OU=USERACCOUNTS,DC=KTSI,DC=LOCAL" /> <ou name="CHICAGO" path="OU=USERACCOUNTS,DC=KTSI,DC=LOCAL" /> <ou name="NEWYORK" path="OU=USERACCOUNTS,DC=KTSI,DC=LOCAL" /> <ou name="SALES" path="OU=BASEL,OU=USERACCOUNTS,DC=KTSI,DC=LOCAL" /> <ou name="IT" path="OU=BASEL,OU=USERACCOUNTS,DC=KTSI,DC=LOCAL" /> <ou name="ADMINISTRATION" path="OU=BASEL,OU=USERACCOUNTS,DC=KTSI,DC=LOCAL" /> <ou name="PRODUCTION" path="OU=BASEL,OU=USERACCOUNTS,DC=KTSI,DC=LOCAL" /> <ou name="SALES" path="OU=CHICAGO,OU=USERACCOUNTS,DC=KTSI,DC=LOCAL" /> <ou name="IT" path="OU=CHICAGO,OU=USERACCOUNTS,DC=KTSI,DC=LOCAL" /> <ou name="ADMINISTRATION" path="OU=CHICAGO,OU=USERACCOUNTS,DC=KTSI,DC=LOCAL" /> <ou name="PRODUCTION" path="OU=CHICAGO,OU=USERACCOUNTS,DC=KTSI,DC=LOCAL" /> <ou name="SALES" path="OU=NEWYORK,OU=USERACCOUNTS,DC=KTSI,DC=LOCAL" /> <ou name="IT" path="OU=NEWYORK,OU=USERACCOUNTS,DC=KTSI,DC=LOCAL" /> <ou name="ADMINISTRATION" path="OU=NEWYORK,OU=USERACCOUNTS,DC=KTSI,DC=LOCAL" /> <ou name="PRODUCTION" path="OU=NEWYORK,OU=USERACCOUNTS,DC=KTSI,DC=LOCAL" /> </ous> <users> <file name="users.csv" path="OU=ADMINISTRATION,OU=BASEL,OU=USERACCOUNTS,DC=KTSI,DC=LOCAL" /> </users> <members> <member name="PC101" ip="192.168.100.21" /> <member name="PC101" ip="192.168.100.22" /> <member name="PC101" ip="192.168.100.23" /> </members> </config> </lab>
The PowerShell Script:
Building a new Hyper-V Private Cloud Lab
Two years ago I created my first real IT Lab with some HP ProLiant ML110 G5. I used this in the past years to test new products and projects. The Lab at this time was very limited, no storage, no cluster, not much RAM and weak CPU performance. Not much help if you work a lot with Hyper-V Clusters and System Center products.
I was looking around for some time now to find a cheap offer for new servers. In the last week I found a offer from Cisco with c200 M2 servers and I couldn’t resist to buy two of the for my Hyper-V Cluster nodes. The offer was a special deal which was even cheaper than building the servers by my own, at this point thanks to my former employer Atlantis Informatik AG.
Now what I will do is creating a new Hyper-V Cluster friendly environment with two Cisco C200 M2 Hyper-V nodes, one HP ML110 G5 as Storage Server and one of my old HP ML110 G5 servers as Hyper-V Server which all my Management servers and Active Directory will run on.
If you want to know more about Hardware you can use for a Hyper-V Lab I recommend the posts of Carsten Rachfahl on hyper-v-server.de (german).
Hardware Configuration
Hyper-V nodes:
2x Cisco C200 M2 - Intel Xeon 5620 2.4GHz Quad Core, 16GB RAM, Remote Management, IPMI, 6 Networkports
Storage Server:
1x HP ProLiant ML110 G5 – Intel Xeon E3110 3.0 GHz Dual Core, 8GB RAM, 4x 500GB Raid 10, 3 Networkports
Management Hyper-V node:
1x HP ProLiant ML110 G5 – Intel Xeon E3110 3.0 GHz Dual Core, 8GB RAM
DirectAccess for SMB and Lab environments – Design, Step by Step and Troubleshooting Guide
This is a modified document which I wrote for a Microsoft Workshop at KTSI. It’s a Desgin, Step by Step and a Troubleshooting Guide for Microsoft DirectAccess. This is made for SMB or LAB environments not for Enterprise Deployments.
I hope this guide can help you deploy DirectAccess in your environment and you can enjoy DirectAccess like I do














