Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.
# create a DFS replication group (any name are OK)
PS C:\Users\serverworld> New-DfsReplicationGroup -GroupName "RepGroup01"
GroupName : RepGroup01
DomainName : srv.world
Identifier : 6eb84337-fe83-464e-9a42-7a20a510dcbe
Description :
State : Normal
# set member servers for the replication group
PS C:\Users\serverworld> Add-DfsrMember -GroupName "RepGroup01" -ComputerName "rx-7","rx-8"
GroupName : RepGroup01
ComputerName : RX-7
DomainName : srv.world
Identifier : 26bfe587-ac0c-4190-a26b-eb079efc0483
Description :
DnsName : rx-7.srv.world
Site : Default-First-Site-Name
NumberOfConnections : 0
NumberOfInboundConnections : 0
NumberOfOutboundConnections : 0
NumberOfInterSiteConnections : 0
NumberOfIntraSiteConnections : 0
IsClusterNode : False
State : Normal
GroupName : RepGroup01
ComputerName : RX-8
DomainName : srv.world
Identifier : c78a68e9-34f2-4ee5-8d92-653bf103ac3c
Description :
DnsName : rx-8.srv.world
Site : Default-First-Site-Name
NumberOfConnections : 0
NumberOfInboundConnections : 0
NumberOfOutboundConnections : 0
NumberOfInterSiteConnections : 0
NumberOfIntraSiteConnections : 0
IsClusterNode : False
State : Normal
# set a connection between members of the replication group
# -SourceComputerName [branch (source) server]
# -DestinationComputerName [hub (destination) server]
PS C:\Users\serverworld> Add-DfsrConnection -GroupName "RepGroup01" `
-SourceComputerName "rx-7" `
-DestinationComputerName "rx-8"
GroupName : RepGroup01
SourceComputerName : RX-7
DestinationComputerName : RX-8
DomainName : srv.world
Identifier : 7a24425e-1dfe-417d-a0a4-fc61efec0dbe
Enabled : True
RdcEnabled : True
CrossFileRdcEnabled : True
Description :
MinimumRDCFileSizeInKB : 64
State : Normal
GroupName : RepGroup01
SourceComputerName : RX-8
DestinationComputerName : RX-7
DomainName : srv.world
Identifier : 7cf2b658-8db2-45db-811b-21fb898c8f60
Enabled : True
RdcEnabled : True
CrossFileRdcEnabled : True
Description :
MinimumRDCFileSizeInKB : 64
State : Normal
# create a target folder for replication
PS C:\Users\serverworld> New-Item E:\Replica01 -ItemType Directory
# set folder name (any name are OK)
PS C:\Users\serverworld> New-DfsReplicatedFolder -GroupName "RepGroup01" -FolderName "Replica01"
GroupName : RepGroup01
FolderName : Replica01
DomainName : srv.world
Identifier : ad6a7471-ba47-43e8-a777-d0d9571b11a8
Description :
FileNameToExclude : {~*, *.bak, *.tmp}
DirectoryNameToExclude : {}
DfsnPath :
IsDfsnPathPublished : False
State : Normal
# set physical path of the replication folder on the branch server
PS C:\Users\serverworld> Set-DfsrMembership -GroupName "RepGroup01" `
-FolderName "Replica01" `
-ContentPath "E:\Replica01" `
-ComputerName "rx-7" `
-PrimaryMember $True
This operation will modify the DFSR membership with domain: srv.world; replication group: "RepGroup01"; replicated folder:
"Replica01"; computer: RX-7; GUID: {34788889-0295-474a-8f9f-3ae9a86cbe39}.
Are you sure you want to modify this membership?
[Y] Yes [N] No [S] Suspend [?] Help (default is "Y"): Y
GroupName : RepGroup01
ComputerName : RX-7
FolderName : Replica01
GroupDomainName : srv.world
ComputerDomainName : srv.world
Identifier : 34788889-0295-474a-8f9f-3ae9a86cbe39
DistinguishedName : CN=ad6a7471-ba47-43e8-a777-d0d9571b11a8,CN=c362261f-c382-4f48-aec3-2ca70b35ea25,CN=DFSR-LocalSett
ings,CN=RX-7,CN=Computers,DC=srv,DC=world
ContentPath : E:\Replica01
PrimaryMember : True
StagingPath : E:\Replica01\DfsrPrivate\Staging
StagingPathQuotaInMB : 4096
MinimumFileStagingSize : Size256KB
ConflictAndDeletedPath : E:\Replica01\DfsrPrivate\ConflictAndDeleted
ConflictAndDeletedQuotaInMB : 4096
ReadOnly : False
RemoveDeletedFiles : False
Enabled : True
DfsnPath :
State : Normal
# set physical path of the replication folder on the hub server
PS C:\Users\serverworld> Set-DfsrMembership -GroupName "RepGroup01" `
-FolderName "Replica01" `
-ContentPath "C:\Replica01" `
-ComputerName "rx-8"
This operation will modify the DFSR membership with domain: srv.world; replication group: "RepGroup01"; replicated folder:
"Replica01"; computer: RX-8; GUID: {0679979a-48cd-4f45-b5d1-e174d7b92a73}.
Are you sure you want to modify this membership?
[Y] Yes [N] No [S] Suspend [?] Help (default is "Y"): Y
GroupName : RepGroup01
ComputerName : RX-8
FolderName : Replica01
GroupDomainName : srv.world
ComputerDomainName : srv.world
Identifier : 0679979a-48cd-4f45-b5d1-e174d7b92a73
DistinguishedName : CN=ad6a7471-ba47-43e8-a777-d0d9571b11a8,CN=41b9db3e-fae0-4202-8a90-88c8c9b0b800,CN=DFSR-LocalSett
ings,CN=RX-8,CN=Computers,DC=srv,DC=world
ContentPath : C:\Replica01
PrimaryMember : False
StagingPath : C:\Replica01\DfsrPrivate\Staging
StagingPathQuotaInMB : 4096
MinimumFileStagingSize : Size256KB
ConflictAndDeletedPath : C:\Replica01\DfsrPrivate\ConflictAndDeleted
ConflictAndDeletedQuotaInMB : 4096
ReadOnly : False
RemoveDeletedFiles : False
Enabled : True
DfsnPath :
State : Normal
# confirm current replication state
PS C:\Users\serverworld> Get-DfsrCloneState
Ready
# verify settings to create test files or folders in the replication folder
PS C:\Users\serverworld> New-Item E:\Replica01\testfolder -ItemType Directory
PS C:\Users\serverworld> Add-Content -Path E:\Replica01\testfile.txt "Test File"
PS C:\Users\serverworld> Get-ChildItem E:\Replica01
Directory: E:\Replica01
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 1/9/2025 8:12 PM 11 testfile.txt
-a---- 1/9/2025 8:12 PM 0 testfolder
PS C:\Users\serverworld> ssh rx-8 powershell -c "Get-ChildItem C:\Replica01"
fd3s01\serverworld@rx-8's password:
Directory: C:\Replica01
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 1/9/2025 8:12 PM 11 testfile.txt
-a---- 1/9/2025 8:12 PM 0 testfolder
PS C:\Users\serverworld> ssh rx-8 powershell -c "Add-Content -Path C:\Replica01\testfolder\testfile2.txt 'Replication Test'"
fd3s01\serverworld@rx-8's password:
PS C:\Users\serverworld> Get-ChildItem E:\Replica01\testfolder
Directory: E:\Replica01\testfolder
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 1/9/2025 8:23 PM 18 testfile2.txt
PS C:\Users\serverworld> Get-Content E:\Replica01\testfolder\testfile2.txt
Replication Test
|