SPFarm Class
Represents a Microsoft SharePoint Foundation farm.
Inheritance Hierarchy
System.Object
Microsoft.SharePoint.Administration.SPAutoSerializingObject
Microsoft.SharePoint.Administration.SPPersistedObject
Microsoft.SharePoint.Administration.SPPersistedUpgradableObject
Microsoft.SharePoint.Administration.SPFarm
Namespace: Microsoft.SharePoint.Administration
Assembly: Microsoft.SharePoint (in Microsoft.SharePoint.dll)
Available in Sandboxed Solutions: No
Syntax
'Declaration
<UpgradableAttribute> _
<GuidAttribute("674DA553-EA77-44a3-B9F8-3F70D786DE6A")> _
<SharePointPermissionAttribute(SecurityAction.LinkDemand, ObjectModel := True)> _
<SharePointPermissionAttribute(SecurityAction.InheritanceDemand, ObjectModel := True)> _
Public Class SPFarm _
Inherits SPPersistedUpgradableObject _
Implements IBackupRestoreConfiguration, IBackupRestore, IMigratable
'Usage
Dim instance As SPFarm
[UpgradableAttribute]
[GuidAttribute("674DA553-EA77-44a3-B9F8-3F70D786DE6A")]
[SharePointPermissionAttribute(SecurityAction.LinkDemand, ObjectModel = true)]
[SharePointPermissionAttribute(SecurityAction.InheritanceDemand, ObjectModel = true)]
public class SPFarm : SPPersistedUpgradableObject, IBackupRestoreConfiguration,
IBackupRestore, IMigratable
Remarks
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.
Examples
The following example registers a custom job definition on each Web application within the current server farm.
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
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();
}
Thread Safety
Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.