List DFS replication groups:
dfsradmin rg list
List replicated folders in a replication group:
dfsradmin rf list /rgname:<REPL_GROUP>
List members of a replication group:
dfsradmin mem list /rgname:<REPL_GROUP>
List the local folders that correspond to replicated folders of a replication group:
dfsradmin membership list /rgname:<REPL_GROUP> /attr:RfName,MemName,LocalPath
Show backlog between 2 members of a replication group:
dfsrdiag backlog /rgname:<REPL_GROUP> /rfname:<REPL_FOLDER> /smem:<SRV_A> /rmem:<SRV_B> [/v] dfsrdiag backlog /rgname:<REPL_GROUP> /rfname:<REPL_FOLDER> /smem:<SRV_B> /rmem:<SRV_A> [/v]
dfsrdiag
can also be used for inspecting SYSVOL backlog when DFS-R SYSVOL replication is enabled:
dfsrdiag backlog /rgname:"Domain System Volume" /rfname:"SYSVOL Share" /smem:DC1 /rmem:DC2
A word of warning if you want to run commands like the one above in PowerShell: parameters with spaces are a major pain in the rear. Naïve approaches like
& dfsradmin rf new /rgname:MyGroup /rfname:"My Replicated Folder"
or
& dfsradmin rf new /rgname:MyGroup "/rfname:My Replicated Folder"
or
& dfsradmin rf new /rgname:MyGroup "/rfname:`"My Replicated Folder`""
or even
$cmd = 'dfsradmin.exe' $params = @('rf', 'new', '/rgname:MyGroup', '/rfname:"My Replicated Folder"') & $cmd $params
won’t work, regardless of what recommendations you may find on the Internet. You need to work around this issue like this:
$env:rgname = 'MyGroup' $env:rfname = 'My Replicated Folder' & cmd /c 'dfsradmin rf new /rgname:%rgname% /rfname:"%rfname%"'
or (slightly more PoSh) like this:
$rgname = 'MyGroup' $rfname = 'My Replicated Folder' & cmd /c ("dfsradmin rf new /rgname:{0} /rfname:`"{1}`"" -f $rgname, $rfname)
In PowerShell v3 you could also do this:
$env:rgname = 'MyGroup' $env:rfname = 'My Replicated Folder' & dfsradmin --% rf new /rgname:%rgname% /rfname:"%rfname%"
Credit to “Six Demon Bag”