This object discovers replicated folders hosted on servers running Windows Server 2008.
This object discovers replicated folders hosted on servers running Windows Server 2008. This discovery rule queries the DFS Replication WMI class DfsrReplicatedFolderInfo to discover replicated folders and properties such as the following:
Name of the replicated folder and its path on the member server
Size of the replicated folder
Current state of the replicated folder
Location of the staging area for the replicated folder
Staging quota for the replicated folder
Location of the Conflicts and Deleted folder for the replicated folder
GUID corresponding to the replicated folder
Users with Author or Administrator permissions in Operations Manager can use overrides to change the following parameters:
IntervalSeconds controls how often Operations Manager runs the discovery process.
Timeoutseconds controls how long to wait for discovery to complete.
DfsrReplicatedFolderInfo WMI class on MSDN (http://go.microsoft.com/fwlink/?LinkID=165544)
How to Override a Monitor (http://go.microsoft.com/fwlink/?LinkId=171027)
Target | Microsoft.Windows.FileServer.DFSR.2008.Service |
Enabled | True |
Frequency | 14400 |
Remotable | False |
Discovered Classes and their attribuets: |
---|
|
Discovered relationships and their attribuets: |
ID | Module Type | TypeId | RunAs |
---|---|---|---|
Microsoft.Windows.TimedScript.DiscoveryProvider | DataSource | Microsoft.Windows.TimedScript.DiscoveryProvider | Microsoft.Windows.FileServer.DFSR.MonitoringAccount |
<Discovery ID="Microsoft.Windows.FileServer.DFSR.2008.ReplicatedFolderDiscovery" Enabled="true" Target="Microsoft.Windows.FileServer.DFSR.2008.Service" ConfirmDelivery="false" Remotable="true" Priority="Normal">
<Category>Discovery</Category>
<DiscoveryTypes>
<DiscoveryClass TypeID="DFSRLib!Microsoft.Windows.FileServer.DFSR.ReplicatedFolder">
<Property TypeID="DFSRLib!Microsoft.Windows.FileServer.DFSR.ReplicatedFolder" PropertyID="IsReadOnly"/>
<Property TypeID="DFSRLib!Microsoft.Windows.FileServer.DFSR.ReplicatedFolder" PropertyID="IsClustered"/>
<Property TypeID="DFSRLib!Microsoft.Windows.FileServer.DFSR.ReplicatedFolder" PropertyID="ClusterResourceName"/>
<Property TypeID="DFSRLib!Microsoft.Windows.FileServer.DFSR.ReplicatedFolder" PropertyID="ClusterResourceState"/>
<Property TypeID="DFSRLib!Microsoft.Windows.FileServer.DFSR.ReplicatedFolder" PropertyID="RGName"/>
<Property TypeID="DFSRLib!Microsoft.Windows.FileServer.DFSR.ReplicatedFolder" PropertyID="MemberName"/>
<Property TypeID="DFSRLib!Microsoft.Windows.FileServer.DFSR.ReplicatedFolder" PropertyID="Enabled"/>
<Property TypeID="DFSRLib!Microsoft.Windows.FileServer.DFSR.ReplicatedFolder" PropertyID="RootPath"/>
<Property TypeID="DFSRLib!Microsoft.Windows.FileServer.DFSR.ReplicatedFolder" PropertyID="State"/>
<Property TypeID="DFSRLib!Microsoft.Windows.FileServer.DFSR.ReplicatedFolder" PropertyID="StagingPath"/>
<Property TypeID="DFSRLib!Microsoft.Windows.FileServer.DFSR.ReplicatedFolder" PropertyID="StagingSize"/>
<Property TypeID="DFSRLib!Microsoft.Windows.FileServer.DFSR.ReplicatedFolder" PropertyID="ConflictPath"/>
<Property TypeID="DFSRLib!Microsoft.Windows.FileServer.DFSR.ReplicatedFolder" PropertyID="ConflictSize"/>
<Property TypeID="DFSRLib!Microsoft.Windows.FileServer.DFSR.ReplicatedFolder" PropertyID="ReplicatedFolderGUID"/>
<Property TypeID="System!System.Entity" PropertyID="DisplayName"/>
<Property TypeID="DFSRLib!Microsoft.Windows.FileServer.DFSR.ReplicatedFolder" PropertyID="ReplicationGroupGUID"/>
<Property TypeID="DFSRLib!Microsoft.Windows.FileServer.DFSR.ReplicatedFolder" PropertyID="VolumeGUID"/>
<Property TypeID="DFSRLib!Microsoft.Windows.FileServer.DFSR.ReplicatedFolder" PropertyID="ClusterGroupName"/>
</DiscoveryClass>
<DiscoveryClass TypeID="DFSRLib!Microsoft.Windows.FileServer.DFSR.ReplicationGroupMember">
<Property TypeID="DFSRLib!Microsoft.Windows.FileServer.DFSR.ReplicationGroupMember" PropertyID="RGName"/>
<Property TypeID="DFSRLib!Microsoft.Windows.FileServer.DFSR.ReplicationGroupMember" PropertyID="MemberName"/>
<Property TypeID="DFSRLib!Microsoft.Windows.FileServer.DFSR.ReplicationGroupMember" PropertyID="ReplicationGroupGUID"/>
<Property TypeID="DFSRLib!Microsoft.Windows.FileServer.DFSR.ReplicationGroupMember" PropertyID="MemberGUID"/>
<Property TypeID="System!System.Entity" PropertyID="DisplayName"/>
<Property TypeID="DFSRLib!Microsoft.Windows.FileServer.DFSR.ReplicationGroupMember" PropertyID="IsClustered"/>
<Property TypeID="DFSRLib!Microsoft.Windows.FileServer.DFSR.ReplicationGroupMember" PropertyID="ClusterGroupName"/>
</DiscoveryClass>
<DiscoveryRelationship TypeID="DFSRLib!Microsoft.Windows.FileServer.DFSR.Service.Contains.ReplicationGroupMembers"/>
<DiscoveryRelationship TypeID="DFSRLib!Microsoft.Windows.FileServer.DFSR.ReplicationGroupMembers.Contains.ReplicatedFolders"/>
<DiscoveryRelationship TypeID="DFSRLib!Microsoft.Windows.FileServer.DFSR.Volume.Contains.ReplicatedFolder"/>
</DiscoveryTypes>
<DataSource ID="Microsoft.Windows.TimedScript.DiscoveryProvider" RunAs="DFSRLib!Microsoft.Windows.FileServer.DFSR.MonitoringAccount" TypeID="Windows!Microsoft.Windows.TimedScript.DiscoveryProvider">
<IntervalSeconds>14400</IntervalSeconds>
<SyncTime/>
<ScriptName>ReplicatedFolderDiscovery2008.vbs</ScriptName>
<Arguments>0 $MPElement$ $Target/Id$ $Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/PrincipalName$ $Target/Property[Type="DFSRLib!Microsoft.Windows.FileServer.DFSR.Service"]/IsVirtualNode$</Arguments>
<ScriptBody> Option Explicit
On Error Resume Next
Dim SourceType, SourceID, ManagedEntityId, oArgs, oAPI, sDfsrServerName, ReplicatedFolderInfo, oDfsrServerRole, ReplicationGroupInfo, oReplicationGroupList, ReplicationGroupData
Dim objWMIService, ListOfReplicatedFolders, isVirtualNode, oRFVolume, oRelVol
SetLocale("en-us")
Set oAPI = CreateObject("MOM.ScriptAPI")
Set oArgs = WScript.Arguments
if oArgs.Count < 4 Then
call oAPI.LogScriptEvent("ReplicatedFolderDiscovery2008.vbs", 100, 1, "Expected 4 or 5 arguments. There were only " & oArgs.Count & " arguments. Exiting script.")
Wscript.Quit -1
End If
Dim oDiscData, oReplicatedFolder, stateStr, oRel, oRGMembers, oRFConfig, oRFConfigCollection, oRGMemberCollection, queryRFConfig
SourceType = oArgs(0)
SourceId = oArgs(1)
ManagedEntityId = oArgs(2)
sDfsrServerName = oArgs(3)
if oArgs.Count = 5 then
isVirtualNode = oArgs(4)
else
isVirtualNode = "False"
end if
if isVirtualNode = "True" then
Wscript.Quit
end if
set oDiscData = oAPI.CreateDiscoveryData(SourceType, SourceId, ManagedEntityId)
set oDfsrServerRole = oDiscData.CreateClassInstance("$MPElement[Name='Microsoft.Windows.FileServer.DFSR.2008.Service']$")
call oDfsrServerRole.AddProperty("$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", sDfsrServerName)
Call oDiscData.AddInstance(oDfsrServerRole)
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 oRGMemberCollection = objWMIService.ExecQuery("Select MemberGuid, MemberName, ReplicationGroupGuid 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 ReplicationGroupInfo in oRGMemberCollection
Set oReplicationGroupList = objWMIService.ExecQuery("Select ReplicationGroupName from DfsrReplicationGroupConfig where ReplicationGroupGuid = '" & ReplicationGroupInfo.ReplicationGroupGuid & "'")
if Err.Number <> 0 then
strErr = "Unable to query DfsrReplicationGroupConfig from local WMI provider. Error: 0x" & Hex(Err.Number) & " " & Err.Description
WScript.Echo strErr
Err.Clear
oDiscData.IsSnapshot=false
Else
Dim sReplicationGroupName
For Each ReplicationGroupData in oReplicationGroupList
sReplicationGroupName = ReplicationGroupData.ReplicationGroupName
Next
set oRGMembers = oDiscData.CreateClassInstance("$MPElement[Name='DFSRLib!Microsoft.Windows.FileServer.DFSR.ReplicationGroupMember']$")
call oRGMembers.AddProperty("$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", sDfsrServerName)
call oRGMembers.AddProperty("$MPElement[Name='DFSRLib!Microsoft.Windows.FileServer.DFSR.ReplicationGroupMember']/MemberGUID$", ReplicationGroupInfo.MemberGuid)
call oRGMembers.AddProperty("$MPElement[Name='DFSRLib!Microsoft.Windows.FileServer.DFSR.ReplicationGroupMember']/MemberName$", ReplicationGroupInfo.MemberName)
call oRGMembers.AddProperty("$MPElement[Name='DFSRLib!Microsoft.Windows.FileServer.DFSR.ReplicationGroupMember']/ReplicationGroupGUID$", ReplicationGroupInfo.ReplicationGroupGuid)
call oRGMembers.AddProperty("$MPElement[Name='DFSRLib!Microsoft.Windows.FileServer.DFSR.ReplicationGroupMember']/RGName$", sReplicationGroupName)
call oRGMembers.AddProperty("$MPElement[Name='DFSRLib!Microsoft.Windows.FileServer.DFSR.ReplicationGroupMember']/IsClustered$", "False")
call oRGMembers.AddProperty("$MPElement[Name='DFSRLib!Microsoft.Windows.FileServer.DFSR.ReplicationGroupMember']/ClusterGroupName$", "N/A")
call oRGMembers.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$", ReplicationGroupInfo.MemberName & " (Replication Group: " & sReplicationGroupName & ")")
Call oDiscData.AddInstance(oRGMembers)
Set oRel = oDiscData.CreateRelationshipInstance("$MPElement[Name='DFSRLib!Microsoft.Windows.FileServer.DFSR.Service.Contains.ReplicationGroupMembers']$")
oRel.Source = oDfsrServerRole
oRel.Target = oRGMembers
Call oDiscData.AddInstance(oRel)
queryRFConfig = "Select ReplicatedFolderGuid, ReplicatedFolderName, MemberGuid, ReplicationGroupGuid, RootPath, "
queryRFConfig = queryRFConfig & "StagingPath, StagingSizeInMb, ConflictPath, ConflictSizeInMb, Enabled, VolumeGuid from DfsrReplicatedFolderConfig Where MemberGuid ='" & ReplicationGroupInfo.MemberGuid & "'"
Set oRFConfigCollection = objWMIService.ExecQuery(queryRFConfig)
if Err.Number <> 0 then
strErr = "Unable to query DfsrReplicatedFolderConfig from local WMI provider. Error: 0x" & Hex(Err.Number) & " " & Err.Description
WScript.Echo strErr
Err.Clear
oDiscData.IsSnapshot=false
Else
For Each oRFConfig in oRFConfigCollection
stateStr = "UNINITIALIZED"
set oReplicatedFolder = oDiscData.CreateClassInstance("$MPElement[Name='DFSRLib!Microsoft.Windows.FileServer.DFSR.ReplicatedFolder']$")
call oReplicatedFolder.AddProperty("$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", sDfsrServerName)
call oReplicatedFolder.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$", oRFConfig.ReplicatedFolderName & " (Member: " & ReplicationGroupInfo.MemberName &")")
call oReplicatedFolder.AddProperty("$MPElement[Name='DFSRLib!Microsoft.Windows.FileServer.DFSR.ReplicatedFolder']/ReplicatedFolderGUID$", oRFConfig.ReplicatedFolderGuid)
call oReplicatedFolder.AddProperty("$MPElement[Name='DFSRLib!Microsoft.Windows.FileServer.DFSR.ReplicatedFolder']/ReplicationGroupGUID$", oRFConfig.ReplicationGroupGuid)
call oReplicatedFolder.AddProperty("$MPElement[Name='DFSRLib!Microsoft.Windows.FileServer.DFSR.ReplicatedFolder']/VolumeGUID$", oRFConfig.VolumeGuid)
call oReplicatedFolder.AddProperty("$MPElement[Name='DFSRLib!Microsoft.Windows.FileServer.DFSR.ReplicatedFolder']/RGName$", sReplicationGroupName)
call oReplicatedFolder.AddProperty("$MPElement[Name='DFSRLib!Microsoft.Windows.FileServer.DFSR.ReplicatedFolder']/MemberName$", ReplicationGroupInfo.MemberName)
call oReplicatedFolder.AddProperty("$MPElement[Name='DFSRLib!Microsoft.Windows.FileServer.DFSR.ReplicatedFolder']/RootPath$", oRFConfig.RootPath)
call oReplicatedFolder.AddProperty("$MPElement[Name='DFSRLib!Microsoft.Windows.FileServer.DFSR.ReplicatedFolder']/IsClustered$", "N/A")
call oReplicatedFolder.AddProperty("$MPElement[Name='DFSRLib!Microsoft.Windows.FileServer.DFSR.ReplicatedFolder']/IsReadOnly$", "N/A")
call oReplicatedFolder.AddProperty("$MPElement[Name='DFSRLib!Microsoft.Windows.FileServer.DFSR.ReplicatedFolder']/ClusterResourceName$", "N/A")
call oReplicatedFolder.AddProperty("$MPElement[Name='DFSRLib!Microsoft.Windows.FileServer.DFSR.ReplicatedFolder']/ClusterResourceState$", "N/A")
call oReplicatedFolder.AddProperty("$MPElement[Name='DFSRLib!Microsoft.Windows.FileServer.DFSR.ReplicatedFolder']/ClusterGroupName$", "N/A")
call oReplicatedFolder.AddProperty("$MPElement[Name='DFSRLib!Microsoft.Windows.FileServer.DFSR.ReplicatedFolder']/StagingPath$", oRFConfig.StagingPath)
call oReplicatedFolder.AddProperty("$MPElement[Name='DFSRLib!Microsoft.Windows.FileServer.DFSR.ReplicatedFolder']/StagingSize$", oRFConfig.StagingSizeInMb)
call oReplicatedFolder.AddProperty("$MPElement[Name='DFSRLib!Microsoft.Windows.FileServer.DFSR.ReplicatedFolder']/ConflictPath$", oRFConfig.ConflictPath)
call oReplicatedFolder.AddProperty("$MPElement[Name='DFSRLib!Microsoft.Windows.FileServer.DFSR.ReplicatedFolder']/ConflictSize$", oRFConfig.ConflictSizeInMb)
call oReplicatedFolder.AddProperty("$MPElement[Name='DFSRLib!Microsoft.Windows.FileServer.DFSR.ReplicatedFolder']/Enabled$", oRFConfig.Enabled)
Set ListOfReplicatedFolders = objWMIService.ExecQuery ("Select State from DfsrReplicatedFolderInfo Where ReplicatedFolderGuid ='" & oRFConfig.ReplicatedFolderGuid & "'")
if Err.Number <> 0 then
strErr = "Unable to query DfsrReplicatedFolderInfo from local WMI provider. Error: 0x" & Hex(Err.Number) & " " & Err.Description
WScript.Echo strErr
stateStr = "UNAVAILABLE"
Err.Clear
oDiscData.IsSnapshot=false
Else
For Each ReplicatedFolderInfo in ListOfReplicatedFolders
Select Case ReplicatedFolderInfo.State
Case 0
stateStr = "UNINITIALIZED"
Case 1
stateStr = "INITIALIZED"
Case 2
stateStr = "INITIAL SYNC"
Case 3
stateStr = "AUTO RECOVERY"
Case 4
stateStr = "NORMAL"
Case 5
stateStr = "IN ERROR"
Case else
stateStr = "INVALID STATE"
End Select
Next
End if
call oReplicatedFolder.AddProperty("$MPElement[Name='DFSRLib!Microsoft.Windows.FileServer.DFSR.ReplicatedFolder']/State$", stateStr)
Call oDiscData.AddInstance(oReplicatedFolder)
Set oRel = oDiscData.CreateRelationshipInstance("$MPElement[Name='DFSRLib!Microsoft.Windows.FileServer.DFSR.ReplicationGroupMembers.Contains.ReplicatedFolders']$")
oRel.Source = oRGMembers
oRel.Target = oReplicatedFolder
Call oDiscData.AddInstance(oRel)
set oRFVolume = oDiscData.CreateClassInstance("$MPElement[Name='DFSRLib!Microsoft.Windows.FileServer.DFSR.Volume']$")
call oRFVolume.AddProperty("$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", sDfsrServerName)
call oRFVolume.AddProperty("$MPElement[Name='DFSRLib!Microsoft.Windows.FileServer.DFSR.Volume']/VolumeGUID$", oRFConfig.VolumeGuid)
Call oDiscData.AddInstance(oRFVolume)
Set oRelVol = oDiscData.CreateRelationshipInstance("$MPElement[Name='DFSRLib!Microsoft.Windows.FileServer.DFSR.Volume.Contains.ReplicatedFolder']$")
oRelVol.Source = oRFVolume
oRelVol.Target = oReplicatedFolder
Call oDiscData.AddInstance(oRelVol)
Next
End if
End if
Next
Call oAPI.Return(oDiscData) </ScriptBody>
<TimeoutSeconds>900</TimeoutSeconds>
</DataSource>
</Discovery>