如何从Microsoft Exchange导出所有约会数据?

时间:2014-01-09 17:24:55

标签: c# sql-server powershell console exchangewebservices

我想在去年内为每位员工导出所有约会的列表。我需要的字段是约会名称,开始时间,结束时间,地点和与会者电子邮件。

我已经开始探索EWS了。看起来这只允许您一次获得一个特定用户的任命。我的公司拥有超过14,000名员工,每人约有500人,最终将超过700万次网络电话。假设每次通话1秒钟,出口需要不到3个月。喵!

我没有排除EWS,但看起来可能无法满足我的需求。我想每天将这些数据导出到sql数据库。也许是第一次传球后的增量争夺。有没有人知道获取这些数据的其他方法?

我在Windows服务器环境中,拥有C#,Powershell和SQL Server。任何建议都需要。

1 个答案:

答案 0 :(得分:1)

我最终住在EWS。我发现在初次调用FindItems之后,我可以使用LoadPropertiesForItems进行另一次调用,该调用将返回一次调用中所有项目所需的属性。所以我可以获得一个项目列表,然后加载所有与会者,总共有两个网络电话。

var propertySet = new PropertySet(BasePropertySet.IdOnly, ItemSchema.Subject,
    AppointmentSchema.Start, AppointmentSchema.End, AppointmentSchema.Location,
    AppointmentSchema.RequiredAttendees, AppointmentSchema.OptionalAttendees);
var results = service.FindItems(id, searchFilter, view); // first call
service.LoadPropertiesForItems(results, propertySet); // second call