Forum Discussion
DFS replication issues
- Apr 20, 2022
Thanks, Nikita. That helped a great deal and saved a lot of time.
I'll start at the end and work backwards.
You want to run these commands to clean up what is a very broken DFS-R configuration. I'll provide an in-depth explanation after the commands
Remove-ADObject -Identity "CN=45d9316b-1098-408e-a65d-8ce8449f0aaa,CN=DFSR-LocalSettings,CN=UZTASSRV01,OU=Domain Controllers,DC=sm,DC=local" -Recursive -Confirm:$false; Remove-ADObject -Identity "CN=a7297769-fdcd-4490-ae1c-c80808f44d36,CN=DFSR-LocalSettings,CN=UZTASSRV01,OU=Domain Controllers,DC=sm,DC=local" -Recursive -Confirm:$false; Remove-ADObject -Identity "CN=DFS,CN=DFSR-GlobalSettings,CN=System,DC=sm,DC=local" -Recursive -Confirm:$false; Remove-ADObject -Identity "CN=DFS_IT,CN=DFSR-GlobalSettings,CN=System,DC=sm,DC=local" -Recursive -Confirm:$false; Remove-ADObject -Identity "CN=UZTASSVR02,CN=Topology,CN=Domain System Volume,CN=DFSR-GlobalSettings,CN=System,DC=sm,DC=local" -Recursive -Confirm:$false;
Overview
What the JSON output you provided showed is:
- There are no DFS namespaces configured;
- The DFS replication group definitions are badly broken in places;
- The "built-in" SYSVOL DFS-R definition is fine but contains an orphaned reference to a domain controller no longer in existence (UZTASSVR02);
- Three DFS replications groups are defined:
- DFS;
- DFS_IT;
- Domain System Volume.
Approach
There were two options I could have pursued:
- Add the missing "MemberReference" values onto the existing "msDFSR-Subscriber" objects; or
- Delete the DFS and DFS_IT DFS replication groups.
I have chosen option 2 since:
- There is no associated DFS namespace;
- The replication groups would only have a single member, which is pointless;
- It provides you with the cleanest outcome, since you can always create new DFS namespaces and replication groups if you decide to later on, and you won't have to worry about old, corrupt data lingering around.
Explanation of each command
Line Comment 1 Removes the orphaned subscription to the "DFS" replication group from UZTASSRV01. 2 Removes the orphaned subscription to the "DFS_IT" replication group from UZTASSRV01. 3 Removes the "DFS" replication group. 4 Removes the "DFS_IT" replication group. 5 Removes the orphaned UZTASSVR02 reference from the "Domain System Volume" replication group. Once you have removed these objects, it will take DFS-R a little while to recognise the changes.
If you want to hurry the process up, you can do any one of the following:
- Restart UZTASSRV01 (since it's the only remaining host); or
- Restart the the "DFSR" service on UZTASSRV01; or
- Run the following command on UZTASSRV01 (it may not be installed though, which is fine):
dfsdiag pollad
Anyhow, once you've either waited a bit or hurried things up, you should find the Event Viewer errors stop.
Cheers,
Lain
That is a great script. Thank you for sharing. Do you think you could tell me how to fix mine?
Here is my output
{
"Status": "Okay",
"ObjectGUID": "f1516c20-c05e-4ac3-9ff2-7d171565adc3",
"ObjectClass": "msDFSR-Subscriber",
"Name": "Domain System Volume",
"DistinguishedName": "CN=Domain System Volume,CN=DFSR-LocalSettings,CN=BABBAGE,OU=Domain Controllers,DC=iosdomain,DC=local",
"MemberReference": "CN=BABBAGE,CN=Topology,CN=Domain System Volume,CN=DFSR-GlobalSettings,CN=System,DC=iosdomain,DC=local"
},
{
"Status": "Okay",
"ObjectGUID": "5fcab8b3-54e9-4f13-8162-b6558245df04",
"ObjectClass": "msDFSR-Subscription",
"Name": "SYSVOL Subscription",
"DistinguishedName": "CN=SYSVOL Subscription,CN=Domain System Volume,CN=DFSR-LocalSettings,CN=BABBAGE,OU=Domain Controllers,DC=iosdomain,DC=local"
},
{
"Status": "Unhealthy",
"ObjectGUID": "36b08e1a-0c95-41c7-817d-3ca25983d2c7",
"ObjectClass": "msDFSR-Subscriber",
"Name": "Domain System Volume",
"DistinguishedName": "CN=Domain System Volume,CN=DFSR-LocalSettings,CN=IOS-SEA-A1,OU=Domain Controllers,DC=iosdomain,DC=local",
"MemberReference": ""
},
{
"Status": "Okay",
"ObjectGUID": "b3d25181-b8c1-4b2c-b66f-47d692328ceb",
"ObjectClass": "msDFSR-Subscriber",
"Name": "Domain System Volume",
"DistinguishedName": "CN=Domain System Volume,CN=DFSR-LocalSettings,CN=IOSLA-DCFS,OU=Domain Controllers,DC=iosdomain,DC=local",
"MemberReference": "CN=IOSLA-DCFS,CN=Topology,CN=Domain System Volume,CN=DFSR-GlobalSettings,CN=System,DC=iosdomain,DC=local"
},
{
"Status": "Okay",
"ObjectGUID": "860ff124-94ec-48dc-a84c-2f7178ae2701",
"ObjectClass": "msDFSR-Subscription",
"Name": "SYSVOL Subscription",
"DistinguishedName": "CN=SYSVOL Subscription,CN=Domain System Volume,CN=DFSR-LocalSettings,CN=IOSLA-DCFS,OU=Domain Controllers,DC=iosdomain,DC=local"
},
{
"Status": "Okay",
"ObjectGUID": "b885a358-9efa-4b75-95da-a8708c167e8d",
"ObjectClass": "msDFSR-Subscriber",
"Name": "Domain System Volume",
"DistinguishedName": "CN=Domain System Volume,CN=DFSR-LocalSettings,CN=OR-VM-1,OU=Domain Controllers,DC=iosdomain,DC=local",
"MemberReference": "CN=OR-VM-1,CN=Topology,CN=Domain System Volume,CN=DFSR-GlobalSettings,CN=System,DC=iosdomain,DC=local"
},
{
"Status": "Okay",
"ObjectGUID": "63ae8858-7cb7-40db-80a5-9b87b29d1640",
"ObjectClass": "msDFSR-Subscription",
"Name": "SYSVOL Subscription",
"DistinguishedName": "CN=SYSVOL Subscription,CN=Domain System Volume,CN=DFSR-LocalSettings,CN=OR-VM-1,OU=Domain Controllers,DC=iosdomain,DC=local"
},
{
"Status": "Okay",
"ObjectGUID": "f76b9584-3391-4c5f-a319-8863a54c38f1",
"ObjectClass": "msDFSR-Subscriber",
"Name": "Domain System Volume",
"DistinguishedName": "CN=Domain System Volume,CN=DFSR-LocalSettings,CN=PS-BAY-AD1,OU=Domain Controllers,DC=iosdomain,DC=local",
"MemberReference": "CN=PS-BAY-AD1,CN=Topology,CN=Domain System Volume,CN=DFSR-GlobalSettings,CN=System,DC=iosdomain,DC=local"
},
{
"Status": "Okay",
"ObjectGUID": "8b5f8113-1697-4e8d-a555-12eb693dc1f8",
"ObjectClass": "msDFSR-Subscription",
"Name": "SYSVOL Subscription",
"DistinguishedName": "CN=SYSVOL Subscription,CN=Domain System Volume,CN=DFSR-LocalSettings,CN=PS-BAY-AD1,OU=Domain Controllers,DC=iosdomain,DC=local"
},
{
"Status": "Okay",
"ObjectGUID": "80b931aa-fda5-4076-97a9-8db68eef6df6",
"ObjectClass": "msDFSR-Subscriber",
"Name": "Domain System Volume",
"DistinguishedName": "CN=Domain System Volume,CN=DFSR-LocalSettings,CN=PS-I-AD1,OU=Domain Controllers,DC=iosdomain,DC=local",
"MemberReference": "CN=PS-I-AD1,CN=Topology,CN=Domain System Volume,CN=DFSR-GlobalSettings,CN=System,DC=iosdomain,DC=local"
},
{
"Status": "Okay",
"ObjectGUID": "dc7544d5-65a1-4bc9-91a1-c3f21954f2aa",
"ObjectClass": "msDFSR-Subscription",
"Name": "SYSVOL Subscription",
"DistinguishedName": "CN=SYSVOL Subscription,CN=Domain System Volume,CN=DFSR-LocalSettings,CN=PS-I-AD1,OU=Domain Controllers,DC=iosdomain,DC=local"
},
{
"Status": "Okay",
"ObjectGUID": "7d205027-558a-40fe-97cd-de0e2306a2d8",
"ObjectClass": "msDFSR-Subscriber",
"Name": "Domain System Volume",
"DistinguishedName": "CN=Domain System Volume,CN=DFSR-LocalSettings,CN=PS-I-AD2,OU=Domain Controllers,DC=iosdomain,DC=local",
"MemberReference": "CN=PS-I-AD2,CN=Topology,CN=Domain System Volume,CN=DFSR-GlobalSettings,CN=System,DC=iosdomain,DC=local"
},
{
"Status": "Okay",
"ObjectGUID": "087929aa-cc98-4654-965d-faa8e18248d1",
"ObjectClass": "msDFSR-Subscription",
"Name": "SYSVOL Subscription",
"DistinguishedName": "CN=SYSVOL Subscription,CN=Domain System Volume,CN=DFSR-LocalSettings,CN=PS-I-AD2,OU=Domain Controllers,DC=iosdomain,DC=local"
},
{
"Status": "Okay",
"ObjectGUID": "860c23c1-6213-4edc-8aa3-0c4b75f238da",
"ObjectClass": "msDFSR-ReplicationGroup",
"Name": "Domain System Volume",
"DistinguishedName": "CN=Domain System Volume,CN=DFSR-GlobalSettings,CN=System,DC=iosdomain,DC=local"
},
{
"Status": "Okay",
"ObjectGUID": "4d4357ba-8801-4f20-846a-5dd0e4b4cb7c",
"ObjectClass": "msDFSR-Member",
"Name": "BABBAGE",
"DistinguishedName": "CN=BABBAGE,CN=Topology,CN=Domain System Volume,CN=DFSR-GlobalSettings,CN=System,DC=iosdomain,DC=local",
"ComputerReference": "CN=BABBAGE,OU=Domain Controllers,DC=iosdomain,DC=local",
"MembershipBL": "CN=Domain System Volume,CN=DFSR-LocalSettings,CN=BABBAGE,OU=Domain Controllers,DC=iosdomain,DC=local"
},
{
"Status": "Okay",
"ObjectGUID": "3ec9a4c7-fec3-4e51-bf4c-77324b26fbb6",
"ObjectClass": "msDFSR-Member",
"Name": "IOSLA-DCFS",
"DistinguishedName": "CN=IOSLA-DCFS,CN=Topology,CN=Domain System Volume,CN=DFSR-GlobalSettings,CN=System,DC=iosdomain,DC=local",
"ComputerReference": "CN=IOSLA-DCFS,OU=Domain Controllers,DC=iosdomain,DC=local",
"MembershipBL": "CN=Domain System Volume,CN=DFSR-LocalSettings,CN=IOSLA-DCFS,OU=Domain Controllers,DC=iosdomain,DC=local"
},
{
"Status": "Okay",
"ObjectGUID": "806d1444-4493-4adf-8a0f-da75bbdf6fa9",
"ObjectClass": "msDFSR-Member",
"Name": "OR-VM-1",
"DistinguishedName": "CN=OR-VM-1,CN=Topology,CN=Domain System Volume,CN=DFSR-GlobalSettings,CN=System,DC=iosdomain,DC=local",
"ComputerReference": "CN=OR-VM-1,OU=Domain Controllers,DC=iosdomain,DC=local",
"MembershipBL": "CN=Domain System Volume,CN=DFSR-LocalSettings,CN=OR-VM-1,OU=Domain Controllers,DC=iosdomain,DC=local"
},
{
"Status": "Okay",
"ObjectGUID": "9e8b3739-6c0a-4a39-b357-b4191f4c558c",
"ObjectClass": "msDFSR-Member",
"Name": "PS-BAY-AD1",
"DistinguishedName": "CN=PS-BAY-AD1,CN=Topology,CN=Domain System Volume,CN=DFSR-GlobalSettings,CN=System,DC=iosdomain,DC=local",
"ComputerReference": "CN=PS-BAY-AD1,OU=Domain Controllers,DC=iosdomain,DC=local",
"MembershipBL": "CN=Domain System Volume,CN=DFSR-LocalSettings,CN=PS-BAY-AD1,OU=Domain Controllers,DC=iosdomain,DC=local"
},
{
"Status": "Okay",
"ObjectGUID": "2d0c5853-367f-4de4-b325-b62102f74b2e",
"ObjectClass": "msDFSR-Member",
"Name": "PS-I-AD1",
"DistinguishedName": "CN=PS-I-AD1,CN=Topology,CN=Domain System Volume,CN=DFSR-GlobalSettings,CN=System,DC=iosdomain,DC=local",
"ComputerReference": "CN=PS-I-AD1,OU=Domain Controllers,DC=iosdomain,DC=local",
"MembershipBL": "CN=Domain System Volume,CN=DFSR-LocalSettings,CN=PS-I-AD1,OU=Domain Controllers,DC=iosdomain,DC=local"
},
{
"Status": "Okay",
"ObjectGUID": "95b66f35-e63c-4167-b68b-b3196b210742",
"ObjectClass": "msDFSR-Member",
"Name": "PS-I-AD2",
"DistinguishedName": "CN=PS-I-AD2,CN=Topology,CN=Domain System Volume,CN=DFSR-GlobalSettings,CN=System,DC=iosdomain,DC=local",
"ComputerReference": "CN=PS-I-AD2,OU=Domain Controllers,DC=iosdomain,DC=local",
"MembershipBL": "CN=Domain System Volume,CN=DFSR-LocalSettings,CN=PS-I-AD2,OU=Domain Controllers,DC=iosdomain,DC=local"
}
]
PS C:\>
{
You've only got the one issue showing up for IOS-SEA-A1. It has a subscriber placeholder but no subscription, nor a matching DFS-R object residing within the SYSVOL replication group definition.
Either it's not a domain controller anymore and there's some lingering, orphaned references, or it is a broken domain controller.
Before making any changes, what does the following command return as output?
Get-ADObject -Identity "CN=IOS-SEA-A1,OU=Domain Controllers,DC=iosdomain,DC=local" -Properties * |
Select-Object -Property objectGUID, cn, dNSHostName, primaryGroupID, @{ n="lastLogonTimestamp"; e= { if ($_.lastLogonTimestamp) { [datetime]::FromFileTimeUtc($_.lastLogonTimestamp).ToString("u"); } else { "never"; } }};
Cheers,
Lain
- ZalastarJun 11, 2022Copper ContributorWhat is this strange life outside the box you are referring too 😉
- LainRobertsonJun 11, 2022Silver Contributor
Sorry, I was just out doing the Saturday morning run-around with the family.
Glad it's all sorted!
Cheers,
Lain
- ZalastarJun 11, 2022Copper Contributor
A big thank you for the time you spend here on this thread! I am so happy right now. Not a single error in the Forest. And my Delta sync times are way down now too
Source DSA largest delta fails/total %% error BABBAGE 26m:58s 0 / 10 0 IOS-SEA-A1 13m:01s 0 / 20 0 IOSLA-DCFS 08m:24s 0 / 15 0 OR-VM-1 07m:06s 0 / 10 0 PS-BAY-AD1 21m:10s 0 / 10 0 PS-I-AD1 23m:23s 0 / 15 0 PS-I-AD2 22m:06s 0 / 25 0 Destination DSA largest delta fails/total %% error BABBAGE 21m:14s 0 / 5 0 IOS-SEA-A1 :26s 0 / 20 0 IOSLA-DCFS 13m:02s 0 / 15 0 OR-VM-1 03m:01s 0 / 20 0 PS-BAY-AD1 27m:01s 0 / 15 0 PS-I-AD1 22m:08s 0 / 15 0 PS-I-AD2 23m:25s 0 / 15 0
I finally understood what you meant about getting rid of the FRS leftovers
PS C:\Users\administrator.IOSDOMAIN> Get-ADObject -Filter { (cn -ne "File Replication Service") } -SearchBase "CN=File Replication Service,CN=System,$((Get-A DRootDSE).defaultNamingContext)" -SearchScope Subtree | Select-Object -Property objectGUID, objectClass, distinguishedName PS C:\Users\administrator.IOSDOMAIN>
- ZalastarJun 11, 2022Copper Contributor
and thank you sir
PS C:\Users\administrator.IOSDOMAIN> net share Share name Resource Remark ------------------------------------------------------------------------------- C$ C:\ Default share IPC$ Remote IPC UDP_APM$ C:\Program Files\Arcserve\Unified Data Protection\APM ADMIN$ C:\Windows Remote Admin NETLOGON C:\Windows\SYSVOL\sysvol\iosdomain.local\SCRIPTS Logon server share SYSVOL C:\Windows\SYSVOL\sysvol Logon server share The command completed successfully. PS C:\Users\administrator.IOSDOMAIN>
- ZalastarJun 11, 2022Copper Contributor
Ok I ran through the steps and I am beginning to understand what it did
After the Error 4114 I saw quite a few 4412 errors starting with this one
The DFS Replication service detected that a file was changed on multiple servers. A conflict resolution algorithm was used to determine the winning file. The losing file was moved to the Conflict and Deleted folder.
Additional Information:
Original File Path: C:\Windows\SYSVOL\domain\Policies\{1F60C4D9-39CC-4A52-956E-0715D20D84B2}\GPT.INI
New Name in Conflict Folder: GPT-{D9CFBC30-0905-453D-A1F6-403F6DF348CF}-v166.INI
Replicated Folder Root: C:\Windows\SYSVOL\domain
File ID: {6CF9F740-471F-4A0A-99D6-EA74625846E9}-v66
Replicated Folder Name: SYSVOL Share
Replicated Folder ID: 8EC04617-53A4-4148-AB24-4CDD050A1716
Replication Group Name: Domain System Volume
Replication Group ID: 860C23C1-6213-4EDC-8AA3-0C4B75F238DA
Member ID: 43A19C80-D9AB-4DCC-8434-7BC4987D3B5B
Partner Member ID: 806D1444-4493-4ADF-8A0F-DA75BBDF6FA9and finally ended up with the magic error 4604
The DFS Replication service successfully initialized the SYSVOL replicated folder at local path C:\Windows\SYSVOL\domain. This member has completed initial synchronization of SYSVOL with partner OR-VM-1.iosdomain.local. To check for the presence of the SYSVOL share, open a command prompt window and then type "net share". Additional Information: Replicated Folder Name: SYSVOL Share Replicated Folder ID: 8EC04617-53A4-4148-AB24-4CDD050A1716 Replication Group Name: Domain System Volume Replication Group ID: 860C23C1-6213-4EDC-8AA3-0C4B75F238DA Member ID: 43A19C80-D9AB-4DCC-8434-7BC4987D3B5B Sync partner: OR-VM-1.iosdomain.local
- ZalastarJun 11, 2022Copper Contributor
Ok its my under standing to go through the steps again but running the altered repadmin /syncall command you provided. And just to be clear. I am setting the flag to False on the affected DC which is Seattle , which makes in non authorative, and leaving the others set to True
Im not understanding how to do this
" You can safely also remove those two leftover objects from the output, which will bring the FRS era completely to a close."
Do you mean for me to find and delete them with ADSIEDIT or will following the above process and using that Repadmin command take care of this? i a not understanding where those references in the output came from
I am running everything on the Seattle controller at the moment. The PDC is the PS-I-AD1 DC but I understand for the most part that the work I am doing needs to be done on the affected DC, which is Seattle - LainRobertsonJun 11, 2022Silver Contributor
Okay, the command output is good. You can safely also remove those two leftover objects from the output, which will bring the FRS era completely to a close.
The main thing I didn't want to see - and we didn't, is any kind of direct or indirect reference to IOS-SEA-A1. So, life is good(-ish.)
From the Microsoft Docs article, assuming you're running the commands from IOS-SEA-A1 (while also ensuring things like ADSIEDIT are specifically pointing to IOS-SEA-A1), then for steps 2 and 6, use the following statement to push changes outward from IOS-SEA-A1 to the other domain controllers:
repadmin /syncall IOS-SEA-A1 DC=iosdomain,DC=local /d /e /P
The confirmational events are described in steps 4 and 8, but that doesn't help with your question on how long to wait.
The answer to that is: you don't have to wait since you're only dealing with a single domain controller. So long a you see the events listed from steps 4 and 8, you've done everything correctly.
Of course, it takes SYSVOL some time to repopulate and even then, if you find it fails again as you have before, then we might be at the point where you have to delete the DFS-R database off of IOS-SEA-A1.
While Microsoft does discourage this in favour of the process above, the process above also doesn't fix every kind of issue, meaning that's the direction we're heading.
Still, I'd do the above Docs process once more, being sure to note the events (maybe clear the DFS-R event log first to make things easier to digest and track) before looking to delete the database.
Rest assured, deleting the database isn't all "impending doom", either. Microsoft does note some issues that can arise but they're outweighed by getting DFS-R working again.
The directory the database resides in will throw an access denied if you try to access it, but as per the following article, it really is there (read under the Symptoms heading at the top.) But let's not get ahead of ourselves as maybe the Docs article above will help this time around.
DFSR databases crash on primary member - Windows Server | Microsoft Docs
Cheers,
Lain
- ZalastarJun 11, 2022Copper Contributor
The migration was done before I inherited the position, fortunately its the only DC in the forest with an issue.
The result of that last command
objectGUID objectClass distinguishedName ---------- ----------- ----------------- 01c80ee4-dc5a-4bfa-8ddf-2500a62a3e7e nTFRSReplicaSet CN=Domain System Volume (SYSVOL share),CN=File Replication Service,CN=System,DC=iosdomain,DC=local 37442159-8097-461b-8466-bbddce3e6723 nTFRSMember CN=WIN-NAAPRAMLU0A,CN=Domain System Volume (SYSVOL share),CN=File Replication Service,CN=System,DC=iosdomain,DC=local
Yes I did follow that method but I am wondering how long I should wait for replication to finish before changing the flag and moving on to the next step? How do I tell how long my forest replication takes to finish?
- LainRobertsonJun 11, 2022Silver Contributor
Okay, so I think you mentioned earlier something about the FRS migration status being okay, which leads me to assume that an FRS to DFS-R migration took place at some point?
There's still things we can do but I'm keen to check some things first, as they're all edging closer to that "point of last resort" concept.
Does the following command return anything?
Get-ADObject -Filter { (cn -ne "File Replication Service") } -SearchBase "CN=File Replication Service,CN=System,$((Get-ADRootDSE).defaultNamingContext)" -SearchScope Subtree | Select-Object -Property objectGUID, objectClass, distinguishedName
Secondly, were you following the process here when you reset DFS-R ealier?
Note: It says D2-like, but it's not actually the older BurFlags process.
Cheers,
Lain
- ZalastarJun 10, 2022Copper ContributorOh I spoke too sonn 😞
The DFS Replication service stopped replication on the replicated folder at local path C:\Windows\SYSVOL\domain.
Additional Information:
Error: 9003 (The replication group is invalid)
Additional context of the error:
Replicated Folder Name: SYSVOL Share
Replicated Folder ID: 8EC04617-53A4-4148-AB24-4CDD050A1716
Replication Group Name: Domain System Volume
Replication Group ID: 860C23C1-6213-4EDC-8AA3-0C4B75F238DA
Member ID: 43A19C80-D9AB-4DCC-8434-7BC4987D3B5B