Windows-Server-2008-R2

如何比 dfsrdiag 更有效地監控 DFSR 積壓

  • February 1, 2021

有沒有辦法以比使用更有效的方式監控 DFSR 積壓dfsrdiag.exe backlog

我寫了一個程序,它只是以dfsrdiag.exe backlog /smem:alpha /rmem:beta /rgname:domain\namespace\foldername /rfname:foldername五分鐘的間隔在積壓計數中啜飲。每次執行時,都需要相當長的時間(2 到 5 分鐘)才能獲得結果值。這意味著最終,它會執行幾分鐘來收集資訊,然後延遲五分鐘。為了獲得這些資訊,感覺它可能以某種方式很昂貴。它還返回積壓中的前 100 個文件。我真的只想要積壓計數而不關心文件本身。這被用來創建歷史圖表。

這些 DFSR 對等點的資訊:四台伺服器上的 Windows 2008 R2,三個通過 50-100Mb Internet 連接連接的遠端辦公室,30 個複制組,幾個複制組的文件總大小非常大(每個 1-2TB),儘管大多數都很小(500MB -10GB)。

還有另一種獲取資訊的方法,那就是通過 WMI。一個有進取心的人編寫了一個 PowerShell 腳本來收集這些資訊:

http://gallery.technet.microsoft.com/scriptcenter/dac62790-219d-4325-a57b-e79c2aa6b58e

沒有跡象表明是否比 快dfsrdiag,但我懷疑它可能是。

WMI 根目錄是root\MicrosoftDFS,從那裡您可以通過以下方式進行查詢Get-WmiObject

這是一種純粹的 PowerShell 方法:

$RegEx=[System.Text.RegularExpressions.Regex]::new("Count: (\d+)$")
$DFSObjects=@()
$DFSRMembers=Get-DfsrMembership | Where-Object { $_.Enabled } | Where-Object { $_.GroupName -eq "<namespace>" }
$DFSRMembers=@($DFSRMembers)
if ($DFSRMembers.Count -gt 1) {
 for ($i=0; $i -lt $DFSRMembers.Count; $i++) {
   $OtherMembers=$DFSRMembers | Where-Object { ($_.ComputerName -ne $DFSRMembers[$i].ComputerName) -and ($_.FolderName -eq $DFSRMembers[$i].FolderName) }
   $OtherMembers=@($OtherMembers)
   if ($OtherMembers.Count -ne 0) {
     for ($j=0; $j -lt $OtherMembers.Count; $j++) {
       $BackLog=($($Junk=.{Get-DfsrBacklog -GroupName $DFSRMembers[$i].GroupName -FolderName $DFSRMembers[$i].FolderName -SourceComputerName $DFSRMembers[$i].ComputerName -DestinationComputerName $OtherMembers[$j].ComputerName -Verbose}) 4>&1).Message
       $Matches=$RegEx.Matches($BackLog)
       if ($Matches -ne $null) { $BackLog=[System.Convert]::ToInt32($RegEx.Matches($backlog).Groups[1].Value) } else { $BackLog=0 }
       $DFSObject=New-Object -Type PSObject -Property @{Group=$DFSRMembers[$i].GroupName;Folder=$DFSRMembers[$i].FolderName;From=$DFSRMembers[$i].ComputerName;To=$OtherMembers[$j].ComputerName;Backlog=$BackLog}
       $DFSObjects+=$DFSObject
     }
   }
 }
}
$DFSObjects | Sort-Object -Property BackLog -Descending | Format-Table -Property Group,Folder,From,To,Backlog

引用自:https://serverfault.com/questions/391673