Bei der Verwaltung des DFS muss man auf Konsistenz achten. Die Flexibilität in der Konfiguration birgt auch Gefahren.
Man sollte darauf achten, dass Targets nur über einen Link eingebunden werden und keine redundanten Verbindungen existieren. Dies führt über Kurz oder Lang zu Problemen.
Der Nachfolgende Befehl gibt einen Status der aktuellen Konfiguration aus.
DFSDiag /TestDFSIntegrity /DFSRoot:\ad\public
/Recurse /Full
Das nachfolgende Powershell Script exportiert alle DFS Verbindungen als CSV Datei.
[CmdletBinding()]
param(
$DFSPath = '\\ad\public\*'
)
Write-Progress "Getting all DFS folders for $DFSPath (this can take a very long time)" -PercentComplete -1
$DFSTree = Get-DfsnFolder $DFSPath
$i = 1
$DFSTree | ForEach-Object{
Write-Progress "Getting DFS Folder Targets for $($_.Path)" -PercentComplete (($i / $DFSTree.Count) *100)
$DFSTarget = Get-DfsnFolderTarget $_.Path | Select Path,TargetPath,State
$Result = [ordered]@{
Path = $DFSTarget.Path
TargetPath = $DFSTarget.TargetPath
State = $DFSTarget.State
"ValidFrom_$Env:ComputerName" = Test-Path $DFSTarget.Path
}
New-Object PSObject -Property $Result
$i++
} | Sort Path | Export-Csv "c:\temp\DFS-$(Get-Date -format yyyy-MM-dd).csv" -NoTypeInformation