このルールは、有効になっている場合、DFS レプリケーションによる複製を待機しているファイル数 (レプリケーション バックログ) を検出します。
このルールは、有効になっている場合、DFS レプリケーションによる複製を待機しているファイル数 (レプリケーション バックログ) を検出します。この検出ルールは、Operations Console 内のレプリケーション バックログの表示を設定します。
バックログ数は頻繁に変わる (通常は Operations Manager で検出ルールが実行されるたびに変わる) 可能性があるため、この検出ルールは既定で無効になっています。レプリケーション バックログを監視する場合は、この検出ルールを有効にし、検出頻度を設定します。頻度は、バックログ数に関する最新情報を得るために必要な最小の頻度にします。サーバーの負荷とネットワーク トラフィックを最小限に抑えるため、検出頻度は 1 時間以上に設定することをお勧めします。
DFS レプリケーションまたはDFS レプリケーションのコマンド ライン ツールがインストールされたサーバーで Dfsrdiag backlog コマンドを使用すると、レプリケーション バックログを直ちに表示することができます。
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>