Хорошо получить значение для одного поставщика общих служб легко:
ServerContext serverCtx = ServerContext.Default;
SearchContext searchCtx = SearchContext.GetContext(serverCtx);
Content content = new Content(searchCtx);
Console.WriteLine(content.DefaultGatheringAccount);
Хитрость в том, чтобы получить его для всех поставщиков общих служб. Насколько я могу судить, нет общедоступного API для перечисления всех поставщиков общих служб для фермы. Там явно есть личный, так как:
stsadm -o enumssp -all
возвращает список всех поставщиков общих служб. Итак, ваш выбор:
- Разобрать результаты команды stsadm, чтобы получить имена SSP
- Просмотрите все объекты SPWebApplication в системе и используйте их, чтобы найти, к каким SSP они принадлежат
- Используйте рефлексию для вызова закрытого частного API MOSS, чтобы узнать имена поставщиков общих служб на ферме.