DSCResources/DSC_DFSReplicationGroupFolder/en-US/about_DFSReplicationGroupFolder.help.txt
.NAME
DFSReplicationGroupFolder .DESCRIPTION This resource is used to configure DFS Replication Group folders. This is an optional resource, and only needs to be used if any of the following folder properties need to be set: - Description - FilenameToExclude - DirectoryNameToExclude In most cases just setting the Folders property in the DFSReplicationGroup resource will be acceptable. .PARAMETER GroupName Key - String The name of the DFS Replication Group. .PARAMETER FolderName Key - String The name of the DFS Replication Group Folder. .PARAMETER Description Write - String A description for the DFS Replication Group Folder. .PARAMETER FilenameToExclude Write - StringArray An array of file names to exclude from replication. .PARAMETER DirectoryNameToExclude Write - StringArray An array of directory names to exclude from replication. .PARAMETER DfsnPath Write - String The DFS Namespace Path to this Replication Group folder is mapped to. This does NOT create the Namespace folders, it only sets the name in the folder object. .PARAMETER DomainName Write - String The name of the AD Domain the DFS Replication Group Folder will be in. .EXAMPLE 1 Create a DFS Replication Group called Public containing two members, FileServer1 and FileServer2. The Replication Group contains a single folder called Software. A description will be set on the Software folder and it will be set to exclude the directory Temp from replication. An automatic fullmesh topology is assigned to the replication group connections. Configuration DFSReplicationGroupFolder_FullMesh_Config { param ( [Parameter()] [PSCredential] $Credential ) Import-DscResource -Module DFSDsc Node localhost { <# Install the Prerequisite features first Requires Windows Server 2012 R2 Full install #> WindowsFeature RSATDFSMgmtConInstall { Ensure = 'Present' Name = 'RSAT-DFS-Mgmt-Con' } # Configure the Replication Group DFSReplicationGroup RGPublic { GroupName = 'Public' Description = 'Public files for use by all departments' Ensure = 'Present' Members = 'FileServer1','FileServer2' Folders = 'Software' Topology = 'Fullmesh' PSDSCRunAsCredential = $Credential DependsOn = '[WindowsFeature]RSATDFSMgmtConInstall' } # End of RGPublic Resource DFSReplicationGroupFolder RGSoftwareFolder { GroupName = 'Public' FolderName = 'Software' Description = 'DFS Share for storing software installers' DirectoryNameToExclude = 'Temp' PSDSCRunAsCredential = $Credential DependsOn = '[DFSReplicationGroup]RGPublic' } # End of RGPublic Resource DFSReplicationGroupMembership RGPublicSoftwareFS1 { GroupName = 'Public' FolderName = 'Software' ComputerName = 'FileServer1' ContentPath = 'd:\Public\Software' PrimaryMember = $true PSDSCRunAsCredential = $Credential DependsOn = '[DFSReplicationGroupFolder]RGSoftwareFolder' } # End of RGPublicSoftwareFS1 Resource DFSReplicationGroupMembership RGPublicSoftwareFS2 { GroupName = 'Public' FolderName = 'Software' ComputerName = 'FileServer2' ContentPath = 'e:\Data\Public\Software' PSDSCRunAsCredential = $Credential DependsOn = '[DFSReplicationGroupFolder]RGSoftwareFolder' } # End of RGPublicSoftwareFS2 Resource } # End of Node } # End of Configuration .EXAMPLE 2 Create a DFS Replication Group called Public containing two members, FileServer1 and FileServer2. The Replication Group contains a single folder called Software. A description will be set on the Software folder and it will be set to exclude the directory Temp from replication. The resource group topology is left set to 'Manual' so that the replication group connections can be defined. Configuration DFSReplicationGroupFolder_Complete_Config { param ( [Parameter()] [PSCredential] $Credential ) Import-DscResource -Module DFSDsc Node localhost { <# Install the Prerequisite features first Requires Windows Server 2012 R2 Full install #> WindowsFeature RSATDFSMgmtConInstall { Ensure = 'Present' Name = 'RSAT-DFS-Mgmt-Con' } # Configure the Replication Group DFSReplicationGroup RGPublic { GroupName = 'Public' Description = 'Public files for use by all departments' Ensure = 'Present' Members = 'FileServer1.contoso.com','FileServer2.contoso.com' Folders = 'Software' PSDSCRunAsCredential = $Credential DependsOn = '[WindowsFeature]RSATDFSMgmtConInstall' } # End of RGPublic Resource DFSReplicationGroupConnection RGPublicC1 { GroupName = 'Public' Ensure = 'Present' SourceComputerName = 'FileServer1.contoso.com' DestinationComputerName = 'FileServer2.contoso.com' PSDSCRunAsCredential = $Credential } # End of DFSReplicationGroupConnection Resource DFSReplicationGroupConnection RGPublicC2 { GroupName = 'Public' Ensure = 'Present' SourceComputerName = 'FileServer2.contoso.com' DestinationComputerName = 'FileServer1.contoso.com' PSDSCRunAsCredential = $Credential } # End of DFSReplicationGroupConnection Resource DFSReplicationGroupFolder RGSoftwareFolder { GroupName = 'Public' FolderName = 'Software' Description = 'DFS Share for storing software installers' DirectoryNameToExclude = 'Temp' PSDSCRunAsCredential = $Credential DependsOn = '[DFSReplicationGroup]RGPublic' } # End of RGPublic Resource DFSReplicationGroupMembership RGPublicSoftwareFS1 { GroupName = 'Public' FolderName = 'Software' ComputerName = 'FileServer1.contoso.com' ContentPath = 'd:\Public\Software' PrimaryMember = $true PSDSCRunAsCredential = $Credential DependsOn = '[DFSReplicationGroupFolder]RGSoftwareFolder' } # End of RGPublicSoftwareFS1 Resource DFSReplicationGroupMembership RGPublicSoftwareFS2 { GroupName = 'Public' FolderName = 'Software' ComputerName = 'FileServer2.contoso.com' ContentPath = 'e:\Data\Public\Software' PSDSCRunAsCredential = $Credential DependsOn = '[DFSReplicationGroupFolder]RGSoftwareFolder' } # End of RGPublicSoftwareFS2 Resource } # End of Node } # End of Configuration .EXAMPLE 3 Create a Hub and Spoke style DFS Replication Group called WebSite containing one Hub member and one or more Spoke members. The name of the Hub computer is passed in the HubComputerName parameter and defaults to 'Hub'. The Hub member contains a folder called WebSiteFiles with the path 'd:\inetpub\wwwroot\WebSiteFiles'. This path is replicated to all members of the SpokeComputerName parameter array into the 'd:\inetpub\wwwroot\WebSiteFiles' folder. The spoke computers are passed in the SpokeComputerName parameter and defaults to 'Spoke1', 'Spoke2' and 'Spoke3'. Configuration DFSReplicationGroupFolder_HubAndSpoke_Config { param ( [Parameter()] [PSCredential] $Credential, [Parameter()] [System.String] $HubComputerName = 'Hub', [Parameter()] [System.String[]] $SpokeComputerName = @('Spoke1','Spoke2','Spoke3') ) Import-DscResource -Module DFSDsc Node localhost { <# Install the Prerequisite features first Requires Windows Server 2012 R2 Full install #> WindowsFeature RSATDFSMgmtConInstall { Ensure = 'Present' Name = 'RSAT-DFS-Mgmt-Con' } # Configure the Replication Group DFSReplicationGroup RGWebSite { GroupName = 'WebSite' Description = 'Files for web server' Ensure = 'Present' Members = @() + $HubComputerName + $SpokeComputerName Folders = 'WebSiteFiles' PSDSCRunAsCredential = $Credential DependsOn = '[WindowsFeature]RSATDFSMgmtConInstall' } # End of RGWebSite Resource DFSReplicationGroupFolder RGWebSiteFolder { GroupName = 'WebSite' FolderName = 'WebSiteFiles' Description = 'DFS Share for replicating web site files' PSDSCRunAsCredential = $Credential DependsOn = '[DFSReplicationGroup]RGWebSite' } # End of RGWebSiteFolder Resource DFSReplicationGroupMembership RGWebSiteMembershipHub { GroupName = 'WebSite' FolderName = 'WebSiteFiles' ComputerName = $HubComputerName ContentPath = 'd:\inetpub\wwwroot\WebSiteFiles' PrimaryMember = $true PSDSCRunAsCredential = $Credential DependsOn = '[DFSReplicationGroupFolder]RGWebSiteFolder' } # End of RGWebSiteMembershipHub Resource # Configure the connection and membership for each Spoke foreach ($spoke in $SpokeComputerName) { DFSReplicationGroupConnection "RGWebSiteConnection$spoke" { GroupName = 'WebSite' Ensure = 'Present' SourceComputerName = $HubComputerName DestinationComputerName = $spoke PSDSCRunAsCredential = $Credential DependsOn = '[DFSReplicationGroupFolder]RGWebSiteFolder' } # End of RGWebSiteConnection$spoke Resource DFSReplicationGroupMembership "RGWebSiteMembership$spoke" { GroupName = 'WebSite' FolderName = 'WebSiteFiles' ComputerName = $spoke ContentPath = 'd:\inetpub\wwwroot\WebSiteFiles' PSDSCRunAsCredential = $Credential DependsOn = "[DFSReplicationGroupConnection]RGWebSiteConnection$spoke" } # End of RGWebSiteMembership$spoke Resource } } # End of Node } # End of Configuration |