In this article we can explore the following code:
- Retrieve Name & Type of all Servers in the Farm
Farm
A SharePoint Farm consists of multiple servers with roles associated with each. For example a typical 500 user Farm can contain:
- Web Front End Server
- Application Server
- Database Server
- Email Server
- Searcy Index Server
The following is a typical output from a Server Farm.
Code
Here we are using the Server Object Model code to retrieve the farm information.
For getting a Farm instance, we can use the SPFarm.Local property.
using Microsoft.SharePoint.Administration;
SPFarm farm = SPFarm.Local;
For iterating through the servers, we can use the Servers property of the Farm object.
foreach (SPServer server in farm.Servers)
{
}
For retrieving the Name, Role and Type we can use the instance properties of SPServer.
-
server.Name
-
server.Role
-
server.TypeName
The following is the console application code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.SharePoint;
using Microsoft.SharePoint.Administration;
namespace EnumFarmServers
{
class Program
{
static void Main(string[] args)
{
SPSecurity.RunWithElevatedPrivileges(delegate()
{
SPFarm farm = SPFarm.Local;
foreach (SPServer server in farm.Servers)
{
Console.WriteLine(server.Name);
Console.WriteLine(server.Role);
Console.WriteLine(server.TypeName);
Console.WriteLine();
}
});
Console.ReadKey(false);
}
}
}
Central Administration
We can always retrieve this information from Central Administration as well.
![Farm-Servers-in-SharePoint-2.jpg]()
Note
The console application source code is attached.
Squadron
Please note that the code above is integrated with Squadron (free administration tool for SharePoint).
![Farm-Servers-in-SharePoint-3.jpg]()
You can download the tool from:
http://www.sharepointcto.com/Squadron/Default.aspx
References
Summary
In this article we have explored the C# Server Object Model code to retrieve Farm Server Information. In the real world scenarios we can use this information to quickly understand the server topology.