Few months ago I have got a request from one of my clients regarding migrating DFS from 2012R2 to 2016.
2012R2 was migrated from 2008r2 and was based on 2000 Mode. To do this you’ve got a list of requirements as it can be migrated but certain features won’t be supported if you continue to use the 2000 Mode in DFS on Windows 2016 server.
How to Start
In this tutorial I will explain how to do this migration by doing a demo step by step and guide you through this Migration with screenshots and the required commands.
I have added a tiny comparison also to make it clear why are we going to use this particular method of migrating DFS mode and Server.
To migrate a domain-based namespace to Windows Server 2008 mode
- Open a Command Prompt window and type the following command to export the namespace to a file, where \\ domain \ namespace is the name of the appropriate domain and namespace and path\filename is the path and file name of the export file:
On the source DC/DFS Server
Dfsutil root export \\domain\namespace C:\filename.xml
- Write down the path (\\ server \ share ) for each namespace server. You must manually add namespace servers to the recreated namespace because Dfsutil cannot import namespace servers.
- In DFS Management, right-click the namespace and then click Delete , or type the following command at a command prompt, where \\ domain \ namespace is the name of the appropriate domain and namespace:
Dfsutil root remove \\domain\namespace
Let’s go refresh the console and see if it’s deleted there
I will remove the rest of the name spaces
All have been removed, Now lets remove the name spaces from the display and observe what happens to the replication groups
Replication groups didn’t get affected
- In DFS Management, recreate the namespace with the same name, but use the Windows Server 2008 mode, or type the following command at a command prompt, where \\ server \ namespace is the name of the appropriate server and share for the namespace root:
Dfsutil root adddom \\server\namespace v2
I will use the UI instead of the command
Although we raised the forest and domain function forest but still the 2008 is still greyed out. Lets try to restart the DFS services on the FSMO server
Next, I will copy all the xml files to the new server and import them there
My new server is 2016
- To import the namespace from the export file, type the following command at a command prompt, where \\ domain \ namespace is the name of the appropriate domain and namespace and path\filename is the path and file name of the file to import:
Dfsutil root import merge path\filename.xml \\domain\namespace
After the Import
I will continue to import the rest of the namespaces
First we need to create them with their matching namespaces from the GUI
Now I will import and merge the xml file
After adding the NEW folder which has replicating group existing already from the previous mode. First it didn’t show up
but after navigating to the NewFolder and clicking on Replication tab then Navigate to the replication group showed the replication group underneath the Replication
What has changed?
The only noticeable thing which has changed is the NameSpace Servers everything else like ( Folder targets still the same, replication is identical to previous settings)
See this screenshot
Let’s check the access to the new namespace
Finally, Let’s import the latest namespace and its configuration (PublicFolder)
Let’s check the result on GUI
Notice the replication group for the PF didn’t come, so let’s do as we have explained before to show the replication group
Here we go
Right after this process finishes, the command creates some kind of a report with time, importing status and other related settings such as site cost, timeout.. Etc
To minimize the time that is required to import a large namespace, run the Dfsutil root import command locally on a namespace server.
Add any remaining namespace servers to the recreated namespace by right-clicking the namespace in DFS Management and then clicking Add Namespace Server , or by typing the following command at a command prompt, where \\ server \ share is the name of the appropriate server and share for the namespace root:
Dfsutil target add \\server\share
You can add namespace servers before importing the namespace, but doing so causes the namespace servers to incrementally download the metadata for the namespace instead of immediately downloading the entire namespace after being added as a namespace server.