Share via


SPHealthRulesList.Local property

Gets an SPHealthRulesList object that represents the SharePoint Health Analyzer Rules list for the farm.

Namespace:  Microsoft.SharePoint.Administration.Health
Assembly:  Microsoft.SharePoint (in Microsoft.SharePoint.dll)

Syntax

'Declaration
Public Shared ReadOnly Property Local As SPHealthRulesList
    Get
'Usage
Dim value As SPHealthRulesList

value = SPHealthRulesList.Local
public static SPHealthRulesList Local { get; }

Property value

Type: Microsoft.SharePoint.Administration.Health.SPHealthRulesList
An SPHealthRulesList object that represents the SharePoint Health Analyzer Rules list for the farm.

Exceptions

Exception Condition
InvalidOperationException

The local server is not joined to the farm.

Remarks

The SPHealthRulesList object returned by the Local property uses unmanaged resources. You are responsible for releasing those resources. One way to do that is to call the Dispose() method when you no longer need the SPHealthRulesList object.

Examples

The following example is a console application that queries the Health Rules list for rules that are capable of automatically repairing the problem that the rule is designed to detect. The example enumerates the result set, printing the display text and schedule for each rule to the console.

using System;
using Microsoft.SharePoint;
using Microsoft.SharePoint.Administration.Health;

namespace Test
{
    class Program
    {
        static void Main(string[] args)
        {
            using (SPHealthRulesList definitions = SPHealthRulesList.Local)
            {
                if (definitions != null)
                {
                    // Write a query to find auto-repair rules.
                    SPQuery query = new SPQuery();
                    query.Query =  "<Where><Eq>";
                    query.Query += "<FieldRef Name=\"HealthRuleAutoRepairEnabled\" />";
                    query.Query += "<Value Type=\"Boolean\">1</Value>";
                    query.Query += "</Eq></Where>";

                    // Retrieve list items that satisfy the query.
                    SPListItemCollection rules = definitions.GetItems(query);

                    // Print the title and schedule for each item.
                    foreach (SPListItem rule in rules)
                    {
                        Console.WriteLine("{0,-70} {1}", 
                            rule[SPBuiltInFieldId.LinkTitleNoMenu].ToString(),
                            rule[SPBuiltInFieldId.HealthRuleSchedule].ToString());
                    }
                }
            }
            Console.Write("\nPress ENTER to continue...");
            Console.Read();
        }
    }
}
Imports System
Imports Microsoft.SharePoint
Imports Microsoft.SharePoint.Administration.Health

Module Test

    Sub Main()

        Using definitions As SPHealthRulesList = SPHealthRulesList.Local
            If Not definitions Is Nothing Then

                ' Write a query to find auto-repair rules.
                Dim query As SPQuery = New SPQuery()
                query.Query = "<Where><Eq>"
                query.Query += "<FieldRef Name='HealthRuleAutoRepairEnabled' />"
                query.Query += "<Value Type='Boolean'>1</Value>"
                query.Query += "</Eq></Where>"

                ' Retrieve list items that satisfy the query.
                Dim rules As SPListItemCollection = definitions.GetItems(query)

                ' Print the title and schedule for each item.
                Dim rule As SPListItem
                For Each rule In rules
                    Console.WriteLine("{0,-70} {1}", _
                        rule(SPBuiltInFieldId.LinkTitleNoMenu).ToString(), _
                        rule(SPBuiltInFieldId.HealthRuleSchedule).ToString())
                Next

            End If
        End Using
        Console.Write(vbCrLf + "Press ENTER to continue...")
        Console.Read()
    End Sub

End Module

See also

Reference

SPHealthRulesList class

SPHealthRulesList members

Microsoft.SharePoint.Administration.Health namespace