DFS-N: Active Directory Domain Services Availability

Microsoft.Windows.FileServer.DFSN.10.0.ADPerspective.ADAvailability (UnitMonitor)

This object monitors the ability of DFS Namespaces to communicate with Active Directory Domain Services (AD DS) domain controllers.

Knowledge Base article:

Summary

This object monitors the ability of DFS Namespaces to communicate with Active Directory domain controllers by looking for the presence of DfsSvc event 14523 in the System log.

Causes

The DFS Namespace service failed to contact a domain controller. This can occur for many reasons including:

Resolutions

Test network connectivity

To test network connectivity with the affected server, use the following procedure:

1. Open a command prompt window and then use the ping command to check basic network connectivity. If the ping command fails, it is likely that the server is not running, or has network problems that require local access to resolve. If Ping is blocked in your network environment, skip this step.

2. If the ping command is successful, test the server's registration in DNS by using the nslookup command. If the nslookup command fails, there is a problem with DNS. Check the DNS server health or contact the DNS server administrator.

3. If the nslookup command succeeds, it is likely that the shared folder is offline (possibly for maintenance) or there are problems with the permissions on the shared folder.

If communication with a domain controller fails, or DFS metadata is inconsistent, restart the DFS Namespace service.

Restart the DFS Namespace service

To restart the service, use the Services snap-in, the Windows PowerShell Start-Service and Stop-Service cmdlets, or command-line tools such as net stop and net start. To restart the service remotely by using the sc command, open a command prompt window and then do the following:

1.To stop the service, type the following command, where [servername] is the Universal Naming Convention (UNC) path to the remote server:

sc [servername] stop dfs

2.To confirm that the service is in the STOPPED state, type the following command:

sc [servername] query dfs

3.To restart the service, type the following command:

sc [servername] start dfs

Note: To restart a service, you must be a member of the local Administrators group on the affected server.

If restarting the service doesn't resolve the issue, you might need to restart the affected domain controller.

Verification

After detecting DfsSvc event 14508, this monitor resets to the Healthy state.

Additional

DFS Namespaces Event 14523 (http://go.microsoft.com/fwlink/?LinkId=186543).

Element properties:

TargetMicrosoft.Windows.FileServer.DFSN.10.0.ADPerspective
Parent MonitorSystem.Health.AvailabilityState
CategoryAvailabilityHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.Windows.2SingleEventLog2StateMonitorType
RemotableTrue
AccessibilityPublic
Alert Message
DFS-N: Active Directory Domain Services is not accessible
{0}
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.Windows.FileServer.DFSN.10.0.ADPerspective.ADAvailability" Accessibility="Public" Enabled="true" Target="Microsoft.Windows.FileServer.DFSN.10.0.ADPerspective" ParentMonitorID="Health!System.Health.AvailabilityState" Remotable="true" Priority="Normal" TypeID="Windows!Microsoft.Windows.2SingleEventLog2StateMonitorType" ConfirmDelivery="true">
<Category>AvailabilityHealth</Category>
<AlertSettings AlertMessage="Microsoft.Windows.FileServer.DFSN.10.0.ADPerspective.ADAvailability_AlertMessageResourceID">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data/Context/EventDescription$</AlertParameter1>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="FirstEventRaised" MonitorTypeStateID="FirstEventRaised" HealthState="Error"/>
<OperationalState ID="SecondEventRaised" MonitorTypeStateID="SecondEventRaised" HealthState="Success"/>
</OperationalStates>
<Configuration>
<FirstComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</FirstComputerName>
<FirstLogName>System</FirstLogName>
<FirstExpression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">14523</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<RegExExpression>
<ValueExpression>
<XPathQuery Type="String">PublisherName</XPathQuery>
</ValueExpression>
<Operator>ContainsSubstring</Operator>
<Pattern>DfsSvc</Pattern>
</RegExExpression>
</Expression>
</And>
</FirstExpression>
<SecondComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</SecondComputerName>
<SecondLogName>System</SecondLogName>
<SecondExpression>
<Or>
<Expression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">14508</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<RegExExpression>
<ValueExpression>
<XPathQuery Type="String">PublisherName</XPathQuery>
</ValueExpression>
<Operator>ContainsSubstring</Operator>
<Pattern>DfsSvc</Pattern>
</RegExExpression>
</Expression>
</And>
</Expression>
<Expression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">7036</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">Params/Param[1]</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">DFS Namespace</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">Params/Param[2]</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">stopped</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</Expression>
</Or>
</SecondExpression>
</Configuration>
</UnitMonitor>