Click to Rate and Give Feedback

  Switch on low bandwidth view
Community Content
In this section
Statistics Annotations (0)
SPFarm Class (Microsoft.SharePoint.Administration)
Represents a Windows SharePoint Services farm.

Namespace: Microsoft.SharePoint.Administration
Assembly: Microsoft.SharePoint (in microsoft.sharepoint.dll)
Visual Basic (Declaration)
<UpgradableAttribute> _
<SharePointPermissionAttribute(SecurityAction.InheritanceDemand, ObjectModel:=True)> _
<SharePointPermissionAttribute(SecurityAction.LinkDemand, ObjectModel:=True)> _
Public Class SPFarm
    Inherits SPPersistedUpgradableObject
    Implements IBackupRestore, IMigratable
Visual Basic (Usage)
Dim instance As SPFarm
C#
[UpgradableAttribute] 
[SharePointPermissionAttribute(SecurityAction.InheritanceDemand, ObjectModel=true)] 
[SharePointPermissionAttribute(SecurityAction.LinkDemand, ObjectModel=true)] 
public class SPFarm : SPPersistedUpgradableObject, IBackupRestore, IMigratable

The SPFarm object is the top node in the extensible configuration object model, which is designed to interact with the configuration data store. It contains global settings for all the servers, services, and solutions that are installed in a server farm. Use the Servers, Services, or Solutions property to retrieve these collections.

To access the current server farm object, you can use members on SPFarm.Local. For example, to return an SPServiceCollection object that represents the collection of services in the current server farm, use SPFarm.Local.Services. In addition, you can use the Farm property of classes that derive from the SPPersistedObject class, or you can use the Farm property of the SPSolution class, to get the server farm of the current object or solution.

The following example registers a custom job definition on each Web application within the current server farm.

Visual Basic
Dim farm As SPFarm = SPFarm.Local
Dim service As SPWebService = farm.Services.GetValue < SPWebService > ""

Dim webApp As SPWebApplication

For Each webApp In  service.WebApplications
    Dim job As SPJobDefinition

    For Each job In  webApp.JobDefinitions

        If job.Name = "MyCustomJobDefinitionName" Then
            j.Delete()
        End If
    Next job

    Dim newJob As New MyCustomJobDefinition("MyCustomJobDefinitionName", webApp)
    Dim schedule As SPSchedule = SPSchedule.FromString("every 5 minutes between 0 and 59")
    newJob.Schedule = schedule

    newJob.Update()
Next webApp
C#
SPFarm farm = SPFarm.Local;
SPWebService service = farm.Services.GetValue<SPWebService>("");

foreach (SPWebApplication webApp in service.WebApplications)
{
    foreach (SPJobDefinition job in webApp.JobDefinitions)
    {
        if (job.Name == "MyCustomJobDefinitionName")
        {
            j.Delete();
        }
    }

    MyCustomJobDefinition newJob = new 
        MyCustomJobDefinition("MyCustomJobDefinitionName", webApp);
    SPSchedule schedule = SPSchedule.FromString("every 5 minutes between 0 and 59");
    newJob.Schedule = schedule;

    newJob.Update();
}
Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
Tags What's this?: Add a tag
Community Content   What is Community Content?
Add new content RSS  Annotations
Processing
© 2009 Microsoft Corporation. All rights reserved. Terms of Use  |  Trademarks  |  Privacy Statement
Page view tracker