This object monitors the creation of reparse points for DFS folders and creates an alert if the creation process fails.
This object monitors the creation of reparse points for DFS folders and creates an alert if the creation process fails. It does so by looking for the presence of DFS Namespaces event 14503. When the folder is created successfully and DFS Namespaces event 14646 is logged, this monitor transitions to the Healthy state.
When a namespace administrator creates a new DFS folder, the DFS Namespace service can fail to create the corresponding reparse point or directory for the following reasons:
The volume hosting the namespace root (the system volume by default) does not have any free disk space.
The local System account does not have Full Control permissions to the parent directory of the namespace root (often C:\DFSRoots).
The namespace root folder contains a drive assigned to a mount-point folder path (rather than a drive letter), and the mount-point folder path is the same path as the DFS folder that the administrator tried to create. For example, if C:\DFSRoots\Namespace is the namespace root folder, and it contains a drive that has the C:\DFSRoots\Namespace\Tool mount-point folder path assigned to it, an attempt to create a DFS folder named Tools in that namespace would fail because that folder already exists.
Check available disk space
To resolve this issue, check if the affected volume is low on available disk space. To do so, open a command prompt window and type WMIC /node: "[servername]" /user: [domain\user] volume list status where [servername] is the name of the server hosting the affected namespace and [domain\user] is your user name.
If the volume is low on disk space, increase available disk space on the volume, or increase the size of the volume.
Verification
The monitor in the Operations console should automatically reset to the Healthy state.
To verify that the folder (link) and folder targets are functioning properly, use the following procedure:
1. Open a command prompt window and then use the Dfsutil link\\[namespace]\[folder] command, where [namespace] is the namespace root, and [folder] is the DFS folder whose folder targets you would like to verify are online.
2. Confirm that the state of the folder is OK and that the states of the appropriate targets are Online, and then reset the monitor in the Operations console.
DFS Namespaces Event 14503 (http://go.microsoft.com/fwlink/?LinkId=186539).
Target | Microsoft.Windows.FileServer.DFSN.10.0.RootTarget | ||
Parent Monitor | System.Health.AvailabilityState | ||
Category | AvailabilityHealth | ||
Enabled | True | ||
Alert Generate | True | ||
Alert Severity | Error | ||
Alert Priority | Normal | ||
Alert Auto Resolve | True | ||
Monitor Type | Microsoft.Windows.2SingleEventLog2StateMonitorType | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Default |
<UnitMonitor ID="Microsoft.Windows.FileServer.DFSN.10.0.RootTarget.ReparsePointFailure" Accessibility="Public" Enabled="true" Target="Microsoft.Windows.FileServer.DFSN.10.0.RootTarget" 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.RootTarget.ReparsePointFailure_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">14503</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<RegExExpression>
<ValueExpression>
<XPathQuery Type="String">PublisherName</XPathQuery>
</ValueExpression>
<Operator>ContainsSubstring</Operator>
<Pattern>DfsSvc</Pattern>
</RegExExpression>
</Expression>
<Expression>
<RegExExpression>
<ValueExpression>
<XPathQuery Type="String">Params/Param[2]</XPathQuery>
</ValueExpression>
<Operator>ContainsSubstring</Operator>
<Pattern>$Target/Property[Type="DFSNLib!Microsoft.Windows.FileServer.DFSN.RootTarget"]/RootDirectory$</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">14546</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<RegExExpression>
<ValueExpression>
<XPathQuery Type="String">PublisherName</XPathQuery>
</ValueExpression>
<Operator>ContainsSubstring</Operator>
<Pattern>DfsSvc</Pattern>
</RegExExpression>
</Expression>
<Expression>
<RegExExpression>
<ValueExpression>
<XPathQuery Type="String">Params/Param[2]</XPathQuery>
</ValueExpression>
<Operator>ContainsSubstring</Operator>
<Pattern>$Target/Property[Type="DFSNLib!Microsoft.Windows.FileServer.DFSN.RootTarget"]/RootDirectory$</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>