Ta reguła, gdy jest włączona, wykrywa, ile plików oczekuje na replikację przy użyciu usługi Replikacja systemu plików DFS (zaległości replikacji).
Ta reguła, gdy jest włączona, wykrywa, ile plików oczekuje na replikację przy użyciu usługi Replikacja systemu plików DFS (zaległości replikacji). Ta reguła odnajdowania wypełnia widok Zaległości replikacji w konsoli Operacje.
Ta reguła odnajdowania jest domyślnie wyłączona, ponieważ liczba zaległości może zmieniać się często, nawet przy każdym uruchomieniu tej reguły przez program Operations Manager. W celu monitorowania zaległości replikacji włącz tę regułę odnajdowania i skonfiguruj jak najmniejszą częstotliwość, która zapewni wystarczająco aktualne informacje o liczbie zaległości. Zalecamy ustawienie częstotliwości raz na godzinę lub rzadziej, aby zminimalizować obciążenie serwera i ruch sieciowy.
W celu natychmiastowego wyświetlenia zaległości replikacji można uruchomić polecenie Dfsrdiag backlog na serwerze, na którym jest zainstalowana usługa Replikacja systemu plików DFS lub jej narzędzia wiersza polecenia.
Target | Microsoft.Windows.FileServer.DFSR.Service |
Enabled | False |
Frequency | 14400 |
Remotable | False |
Discovered Classes and their attribuets: |
---|
|
ID | Module Type | TypeId | RunAs |
---|---|---|---|
DS | DataSource | Microsoft.Windows.TimedScript.DiscoveryProvider | Microsoft.Windows.FileServer.DFSR.MonitoringAccount |
<Discovery ID="Microsoft.Windows.FileServer.DFSR.BacklogDiscovery" Enabled="false" Target="Microsoft.Windows.FileServer.DFSR.Service" ConfirmDelivery="false" Remotable="true" Priority="Normal">
<Category>Discovery</Category>
<DiscoveryTypes>
<DiscoveryClass TypeID="Microsoft.Windows.FileServer.DFSR.ReplicationConnection">
<Property TypeID="Microsoft.Windows.FileServer.DFSR.ReplicationConnection" PropertyID="ReplicationGroupName"/>
<Property TypeID="Microsoft.Windows.FileServer.DFSR.ReplicationConnection" PropertyID="ReplicatedFolderName"/>
<Property TypeID="Microsoft.Windows.FileServer.DFSR.ReplicationConnection" PropertyID="SendingMemberName"/>
<Property TypeID="Microsoft.Windows.FileServer.DFSR.ReplicationConnection" PropertyID="ReceivingMemberName"/>
<Property TypeID="Microsoft.Windows.FileServer.DFSR.ReplicationConnection" PropertyID="Enabled"/>
<Property TypeID="Microsoft.Windows.FileServer.DFSR.ReplicationConnection" PropertyID="BacklogCount"/>
<Property TypeID="Microsoft.Windows.FileServer.DFSR.ReplicationConnection" PropertyID="ReplicationGroupGUID"/>
<Property TypeID="Microsoft.Windows.FileServer.DFSR.ReplicationConnection" PropertyID="ReplicatedFolderGUID"/>
<Property TypeID="Microsoft.Windows.FileServer.DFSR.ReplicationConnection" PropertyID="ConnectionGUID"/>
<Property TypeID="Microsoft.Windows.FileServer.DFSR.ReplicationConnection" PropertyID="SendingMemberGUID"/>
<Property TypeID="Microsoft.Windows.FileServer.DFSR.ReplicationConnection" PropertyID="ReceivingMemberGUID"/>
<Property TypeID="System!System.Entity" PropertyID="DisplayName"/>
</DiscoveryClass>
</DiscoveryTypes>
<DataSource ID="DS" RunAs="Microsoft.Windows.FileServer.DFSR.MonitoringAccount" TypeID="Windows!Microsoft.Windows.TimedScript.DiscoveryProvider">
<IntervalSeconds>14400</IntervalSeconds>
<SyncTime/>
<ScriptName>BacklogDiscovery.vbs</ScriptName>
<Arguments>0 $MPElement$ $Target/Id$ $Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/PrincipalName$</Arguments>
<ScriptBody>
Option Explicit
On Error Resume Next
Dim SourceType, SourceID, ManagedEntityId, oArgs, oAPI, sDfsrServerName, oReplicationConnections, oDiscData
SetLocale("en-us")
Set oAPI = CreateObject("MOM.ScriptAPI")
Set oArgs = WScript.Arguments
If oArgs.Count < 4 Then
call oAPI.LogScriptEvent("BacklogDiscovery.vbs", 100, 1, "Expected 4 arguments. There were only " & oArgs.Count & " arguments. Exiting script.")
Wscript.Quit -1
End If
SourceType = oArgs(0)
SourceId = oArgs(1)
ManagedEntityId = oArgs(2)
sDfsrServerName = oArgs(3)
set oDiscData = oAPI.CreateDiscoveryData(SourceType, SourceId, ManagedEntityId)
Dim objWMIService, ListOfConnections, objDfsrRfInfo, Connection, objReceivingWmiService, BacklogCount, ListOfReplicatedFolders, MemberInfoList, MemberInformation, MemberInfo
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & sDfsrServerName & "\root\microsoftdfs")
If Err.Number <> 0 then
strErr = "Unable to connect to local WMI provider. Error: 0x" & Hex(Err.Number) & " " & Err.Description
WScript.Echo strErr
Wscript.Quit -1
End If
Set MemberInfoList = objWMIService.ExecQuery("select MemberGuid from DfsrLocalMemberConfig where MemberName='" & Left(sDfsrServerName, InStr(sDfsrServerName, ".")-1) & "'")
If Err.Number <> 0 then
strErr = "Unable to query DfsrLocalMemberConfig from local WMI provider. Error: 0x" & Hex(Err.Number) & " " & Err.Description
WScript.Echo strErr
Wscript.Quit -1
End If
For Each MemberInfo in MemberInfoList
Set ListOfConnections = objWMIService.ExecQuery("Select PartnerDns, PartnerGuid, PartnerName, ConnectionGuid, MemberGuid, ReplicationGroupGuid, Enabled from DfsrConnectionConfig Where Inbound = false and MemberGuid='" & MemberInfo.MemberGuid & "'")
If Err.Number <> 0 then
strErr = "Unable to query DfsrConnectionConfig from local WMI provider. Error: 0x" & Hex(Err.Number) & " " & Err.Description
WScript.Echo strErr
Wscript.Quit -1
End If
For Each Connection in ListOfConnections
Set objReceivingWmiService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & Connection.PartnerDns & "\root\microsoftdfs")
If Err.Number <> 0 then
strErr = "Unable to connect to remote WMI provider. Server: " & Connection.PartnerDns & ". Error: 0x" & Hex(Err.Number) & " " & Err.Description
WScript.Echo strErr
Err.Clear
oDiscData.IsSnapshot = false
Else
Set ListOfReplicatedFolders = objReceivingWmiService.ExecQuery ("Select ReplicationGroupName, ReplicatedFolderGuid, ReplicatedFolderName from DfsrReplicatedFolderInfo Where MemberGuid ='" & Connection.PartnerGuid & "'")
If Err.Number <> 0 then
strErr = "Unable to query DfsrReplicatedFolderInfo from remote WMI provider. Server: " & Connection.PartnerDns & ". Error: 0x" & Hex(Err.Number) & " " & Err.Description
WScript.Echo strErr
Err.Clear
oDiscData.IsSnapshot = false
Else
For Each objDfsrRfInfo In ListOfReplicatedFolders
BacklogCount = 0
BacklogCount = Backlog(objReceivingWmiService, objWMIService, objDfsrRfInfo)
If Err.Number <> 0 then
strErr = "Unable to get backlog information. ReplicatedFolderGuid: "& objDfsrRfInfo.ReplicatedFolderGuid & " Error: 0x" & Hex(Err.Number) & " " & Err.Description
WScript.Echo strErr
Err.Clear
oDiscData.IsSnapshot = false
Else
set oReplicationConnections = oDiscData.CreateClassInstance("$MPElement[Name='Microsoft.Windows.FileServer.DFSR.ReplicationConnection']$")
call oReplicationConnections.AddProperty("$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", sDfsrServerName)
call oReplicationConnections.AddProperty("$MPElement[Name='Microsoft.Windows.FileServer.DFSR.ReplicationConnection']/ConnectionGUID$", Connection.ConnectionGuid)
call oReplicationConnections.AddProperty("$MPElement[Name='Microsoft.Windows.FileServer.DFSR.ReplicationConnection']/SendingMemberGUID$", Connection.MemberGuid)
call oReplicationConnections.AddProperty("$MPElement[Name='Microsoft.Windows.FileServer.DFSR.ReplicationConnection']/SendingMemberName$", Left(sDfsrServerName, InStr(sDfsrServerName, ".")-1))
call oReplicationConnections.AddProperty("$MPElement[Name='Microsoft.Windows.FileServer.DFSR.ReplicationConnection']/ReceivingMemberGUID$", Connection.PartnerGuid)
call oReplicationConnections.AddProperty("$MPElement[Name='Microsoft.Windows.FileServer.DFSR.ReplicationConnection']/ReceivingMemberName$", Connection.PartnerName)
call oReplicationConnections.AddProperty("$MPElement[Name='Microsoft.Windows.FileServer.DFSR.ReplicationConnection']/ReplicationGroupGUID$", Connection.ReplicationGroupGuid)
call oReplicationConnections.AddProperty("$MPElement[Name='Microsoft.Windows.FileServer.DFSR.ReplicationConnection']/ReplicationGroupName$", objDfsrRfInfo.ReplicationGroupName)
call oReplicationConnections.AddProperty("$MPElement[Name='Microsoft.Windows.FileServer.DFSR.ReplicationConnection']/ReplicatedFolderGUID$", objDfsrRfInfo.ReplicatedFolderGuid)
call oReplicationConnections.AddProperty("$MPElement[Name='Microsoft.Windows.FileServer.DFSR.ReplicationConnection']/ReplicatedFolderName$", objDfsrRfInfo.ReplicatedFolderName)
call oReplicationConnections.AddProperty("$MPElement[Name='Microsoft.Windows.FileServer.DFSR.ReplicationConnection']/Enabled$", Connection.Enabled)
call oReplicationConnections.AddProperty("$MPElement[Name='Microsoft.Windows.FileServer.DFSR.ReplicationConnection']/BacklogCount$", BacklogCount)
call oReplicationConnections.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$", "'" & Left(sDfsrServerName, InStr(sDfsrServerName, ".")-1) & " -> " & Connection.PartnerName & "'")
call oDiscData.AddInstance(oReplicationConnections)
End If
Next
End If
End If
Next
Next
Call oAPI.Return(oDiscData)
Function Backlog(objReceivingWmiConn, objSendingWmiConn, objReceivingDfsrRfInfo)
Backlog = 0
Dim strVv, strError
Dim strObjPath
Dim objSendingDfsrRfInfo
Dim uintBacklogCount
Dim uintRecordIdx
Dim uintErr
uintErr = objReceivingDfsrRfInfo.GetVersionVector(strVv)
If uintErr <> 0 Then
Backlog = 0
Exit Function
End If
strObjPath = objReceivingDfsrRfInfo.Path_.RelPath
On Error Resume Next
Set objSendingDfsrRfInfo = objSendingWmiConn.Get(strObjPath)
If ( Err <> 0 ) Then
Backlog = 0
Exit Function
End If
uintErr = objSendingDfsrRfInfo.GetOutboundBacklogFileCount(strVv, uintBacklogCount, uintRecordIdx)
If uintErr <> 0 Then
backlog = 0
Exit Function
End If
Backlog = uintBacklogCount
End Function
</ScriptBody>
<TimeoutSeconds>300</TimeoutSeconds>
</DataSource>
</Discovery>