Dargslan.WinDFSR.psm1
|
function Get-DFSRAudit { <# .SYNOPSIS Audit DFS Replication groups and health .DESCRIPTION Windows DFS Replication audit toolkit — replication groups, folders, connections, backlog, health, and throttling Part of the Dargslan Windows Admin Toolkit — https://dargslan.com .PARAMETER Json Output results as JSON .EXAMPLE Get-DFSRAudit .EXAMPLE Get-DFSRAudit -Json .LINK https://dargslan.com #> [CmdletBinding()] param([switch]$Json) $report = [ordered]@{ Service = Get-Service DFSR -ErrorAction SilentlyContinue | Select-Object Status, StartType Groups = Get-DfsReplicationGroup -ErrorAction SilentlyContinue | Select-Object GroupName, DomainName, Description Folders = Get-DfsReplicatedFolder -ErrorAction SilentlyContinue | Select-Object GroupName, FolderName, DfsnPath Connections = Get-DfsrConnection -ErrorAction SilentlyContinue | Select-Object GroupName, SourceComputerName, DestinationComputerName, Enabled | Select-Object -First 20 Members = Get-DfsrMember -ErrorAction SilentlyContinue | Select-Object GroupName, ComputerName, DnsName Warnings = @() } if ($report.Service.Status -ne "Running") { $report.Warnings += "DFSR service is not running" } $report.Summary = [PSCustomObject]@{ ServiceRunning = $report.Service.Status -eq "Running"; GroupCount = ($report.Groups | Measure-Object).Count; FolderCount = ($report.Folders | Measure-Object).Count } if ($Json) { return $report | ConvertTo-Json -Depth 3 } Write-Host "`n [DFSR Audit - 2026]" -ForegroundColor Cyan $report.Summary | Format-List if ($report.Groups) { $report.Groups | Format-Table -AutoSize } if ($report.Warnings) { $report.Warnings | ForEach-Object { Write-Host " Warning: $_" -ForegroundColor Yellow } } return $report } Export-ModuleMember -Function Get-DFSRAudit |