locked
AD Replication Monitoring - Time skew detected RRS feed

  • Question

  • I constantly get errors on a DC in India.

    AD Replication Monitoring : The following DCs have clocks which are set in the future. This can cause replication errors in Active Directory and prevents the 'AD Replication Monitoring' script from detecting replication errors.

    When I enter the command w32tm /monitor I can see no time issues.

     

     

    Tuesday, July 13, 2010 2:25 PM

Answers

  • The problem seem to have been solved after adding a time server as an overide on the rule..
    • Marked as answer by Dan Rogers Monday, July 19, 2010 8:13 PM
    Thursday, July 15, 2010 8:35 AM

All replies

  • When you simply look at those dc's, is the time and timezone correct? (GMT should be the same on all DC's in the forest).

     

     


    Rob Korving
    http://jama00.wordpress.com/
    Tuesday, July 13, 2010 4:12 PM
  • We have three sites Canada, EU and India and all of them have different time zones.. time is set correctly on all machines... I have read that this script changes the admindescription record in the OpsMgrLatencyMonitors container in AD.

    What I was thinking the script running on domain controllers to check that record do they check that in their local site or in the remote site. Else perhaps the script is wrong because replication might screw up the records. With other words: When the remote DC changes the admindescription value in their AD database it is not immidiatly replicated.

    I know the MP documentation explains to create the OpsMgrLatencyMonitors in the configuration container in AD wich is replicated differently what might solve the issue... but then again the scripts comming with the MP try to create the OpsMgrLatencyMonitors  in the domain partition not in the configuration partition..

    This is the link to the online page that explains how to create the OpsMgrLatencyMonitors container http://technet.microsoft.com/en-us/library/dd262066.aspx.

    I am not a script guru but so far as I can see this script does not create the OpsMgrLatencyMonitors in the configuration partition.

    I talk about the AD_Replication_Monitoring.vbs script.

    ====================================================================

    ' Attempt to get the container object on the search master.  If it does not exist,
              ' create it.  If it does exist then just wait for it to be replicated to us.
              '
              Set oCont = GetObject(strLDAPSearchMaster & "CN=OpsMgrLatencyMonitors," & strRoot)
              '
              ' If we encountered an error, assume it was an 'object did not exist' type
              ' of error and try to make the object.  If it was an access error then
              ' we'll create an event when we try to create the object.
              '
              If Err <> 0 Then
                Err.Clear
                Dim oRoot
                Set oRoot = GetObject(strLDAPSearchMaster & strRoot)
                If 0 <> Err Then
                  ScriptError "GetObject('" & strLDAPSearchMaster & strRoot & "')" & GetErrorString(Err)
                Else
                  Set oCont = oRoot.Create("container", "CN=" & MONITORING_CONTAINER_NAME)
                  If 0 <> Err Then
                    ScriptError "Create('container', 'CN=" & MONITORING_CONTAINER_NAME & "')." & GetErrorString(Err)
                  Else
                    oCont.SetInfo
                    If &H80070005 = Err Then
                      AccessError "create the " & MONITORING_CONTAINER_NAME & " container", strRoot
                      oCont = 0
                    ElseIf 0 <> Err Then
                      ScriptError "create the container 'CN=" & MONITORING_CONTAINER_NAME & "," & strRoot & "'." & _
                                  GetErrorString(Err) & vbCrLf & vbCrLf & "Check the access permissions for this object."
                      oCont = 0
                    End If
                  End If
                End If
              Else
                Set oCont = 0
              End If
            End If
          End If

          Err.Clear

          If IsObject(oCont) Then
            ' Look for the local DCs object in the container
            Set oObj = oCont.GetObject("container", "CN=" & strLocalDCShortName)

            If 0 <> Err Then
              Err.Clear

              ' Try to create the object
              Set oObj = oCont.Create("container", "CN=" & strLocalDCShortName)
              If 0 <> Err Then
                ScriptError "create the object named '" & strLocalDCShortName & "' in the container " & _
                            "'CN=" & MONITORING_CONTAINER_NAME & "," & strRoot & "'." & GetErrorString(Err)
                oObj = 0
              End If
            End If
          End If
        End If

        If IsObject(oObj) Then
          ' Update the adminDescription attribute
          Dim strAdminDesc
          strAdminDesc = Date2AdminDesc(Now, bLocalPerfData)
      
          oObj.adminDescription = strAdminDesc
          If 0 <> Err Then
            ScriptError "write '" & strAdminDesc & "' to the adminDescription attribute of 'CN=" & _
                        strLocalDCShortName & ",CN=" & MONITORING_CONTAINER_NAME & "," & strRoot & "'." & GetErrorString(Err)
          Else
            oObj.SetInfo   
            If &H80070005 = Err Then
              AccessError "update this DCs monitoring object", strRoot
              oCont = 0
            ElseIf 0 <> Err Then
              ScriptError "write the adminDescription attribute of 'CN=" & strLocalDCShortName & ",CN=" & MONITORING_CONTAINER_NAME & "," & _
                          strRoot & "' to Active Directory." & GetErrorString(Err) & vbCrLf & "Check the access " & _
                          "permissions for this object."
            Else
              lUpdateCount = 1
              UpdateMonitor = True
            End If
          End If
        End If
      Else
        lUpdateCount = lUpdateCount + 1
       
        ' Only say we succeeded if the container object exists.  If it does not exist then
        ' ReplCheck will create an error which will be misleading.
        Set oCont = GetObject(strLDAPSearchComputer & "CN=" & MONITORING_CONTAINER_NAME & "," & strRoot)
        If Err = 0 Then
          UpdateMonitor = True
          Set oCont = Nothing
        End If
      End If

      SetData "ExecutionsSinceLastUpdate" & strRoot, lUpdateCount
    End Function

     

    Wednesday, July 14, 2010 7:05 AM
  • The problem seem to have been solved after adding a time server as an overide on the rule..
    • Marked as answer by Dan Rogers Monday, July 19, 2010 8:13 PM
    Thursday, July 15, 2010 8:35 AM