首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Exchange Web服务在会议上花费的时间

使用Exchange Web服务在会议上花费的时间
EN

Stack Overflow用户
提问于 2018-08-07 00:10:10
回答 1查看 536关注 0票数 1

我正在尝试找出我们作为一个部门(大约100人)在会议上花费了多少时间。为了简单起见,我们可以将所有繁忙的时间视为会议中的时间。然而,我不知道该怎么做,我希望有人能有个主意

EN

回答 1

Stack Overflow用户

发布于 2018-08-07 06:37:26

在web上有很多使用EWS API来做这类事情的例子。例如,您要使用的想法:

使用EWS托管API获取约会。下面的代码示例显示如何使用EWS托管API检索介于指定开始时间和结束时间之间的用户约会。

代码语言:javascript
运行
复制
// Initialize values for the start and end times, and the number of appointments to retrieve.
            DateTime startDate = DateTime.Now;
            DateTime endDate = startDate.AddDays(30);
            const int NUM_APPTS = 5;
            // Initialize the calendar folder object with only the folder ID. 
            CalendarFolder calendar = CalendarFolder.Bind(service, WellKnownFolderName.Calendar, new PropertySet());
            // Set the start and end time and number of appointments to retrieve.
            CalendarView cView = new CalendarView(startDate, endDate, NUM_APPTS);
            // Limit the properties returned to the appointment's subject, start time, and end time.
            cView.PropertySet = new PropertySet(AppointmentSchema.Subject, AppointmentSchema.Start, AppointmentSchema.End);
            // Retrieve a collection of appointments by using the calendar view.
            FindItemsResults<Appointment> appointments = calendar.FindAppointments(cView);
            Console.WriteLine("\nThe first " + NUM_APPTS + " appointments on your calendar from " + startDate.Date.ToShortDateString() + 
                              " to " + endDate.Date.ToShortDateString() + " are: \n");
        
            foreach (Appointment a in appointments)
            {
                Console.Write("Subject: " + a.Subject.ToString() + " ");
                Console.Write("Start: " + a.Start.ToString() + " ");
                Console.Write("End: " + a.End.ToString());
                Console.WriteLine();
            }

https://docs.microsoft.com/en-us/exchange/client-developer/exchange-web-services/how-to-get-appointments-and-meetings-by-using-ews-in-exchange

使用EWS Managed API显示日历中约会的基本Powershell脚本

代码语言:javascript
运行
复制
$MailboxName = 'SomeUserEmailALias'

$StartDate = Get-Date
$EndDate = (Get-Date).AddDays(7)

$DllPath = 'C:\Program Files\Microsoft\Exchange\Web Services\1.2\Microsoft.Exchange.WebServices.dll'
[void][Reflection.Assembly]::LoadFile($DllPath)
$Service = New-Object Microsoft.Exchange.WebServices.Data.ExchangeService([Microsoft.Exchange.WebServices.Data.ExchangeVersion]::Exchange2010)
$Service.AutodiscoverUrl($MailboxName)

$FolderID = New-Object Microsoft.Exchange.WebServices.Data.FolderId([Microsoft.Exchange.WebServices.Data.WellKnownFolderName]::Calendar,$MailboxName)

$CalendarFolder = [Microsoft.Exchange.WebServices.Data.CalendarFolder]::Bind($Service,$FolderID)
$Calendarview.PropertySet = New-Object Microsoft.Exchange.WebServices.Data.PropertySet([Microsoft.Exchange.WebServices.Data.BasePropertySet]::FirstClassProperties)
$CalendarResult = $CalendarFolder.FindAppointments($CalendarView)

foreach ($Appointment in $CalendarResult.Items)
{
    $Propset = New-Object Microsoft.Exchange.WebServices.Data.PropertySet([Microsoft.Exchange.WebServices.Data.BasePropertySet]::FirstClassProperties)

    $Appointment.load($Propset)

    New-Object -TypeName PSObject -Property @{
            Appointment = $Appointment.Subject.ToString()
            Start = $Appointment.Start.ToString()
            End = $Appointment.End.ToString()
            Organizer = $Appointment.Organizer.ToString()
        }
}

https://gsexdev.blogspot.com/2009/11/basic-powershell-script-to-show.html

Powershell脚本EWS使用EWS托管API处理日历项

代码语言:javascript
运行
复制
$Folderid= new-object Microsoft.Exchange.WebServices.Data.FolderId `

([Microsoft.Exchange.WebServices.Data.WellKnownFolderName]::Calendar,$MailboxToImpersonate) 
$cal=[Microsoft.Exchange.WebServices.Data.Folder]::Bind($service,$Folderid)

$StartDate =(Get-Date)

$EndDate =(get-date).AddDays(7)
$CalendarView = New-Object Microsoft.Exchange.WebServices.Data.CalendarView `
($StartDate,$EndDate,$itemsView)
$findCalItems = $service.FindAppointments($Cal.Id,$CalendarView)

param
(
    $mailbox="SomeUserEmailALias",
    $itemsView=1000,
    $userName=$cred.UserName,
    $password=$cred.GetNetworkCredential().password,
    $StartDate =(Get-Date),
    $EndDate =(get-date).AddDays(7) # find meeting upto next 7 days.
)
#set EWS URL and Web Service DLL file location path below.
$uri=[system.URI] "https://outlook.office365.com/ews/exchange.asmx"
$dllpath = "C:\Program Files\Microsoft\Exchange\Web Services\2.2\Microsoft.Exchange.WebServices.dll"
Import-Module $dllpath

#Set Exchange Version
$ExchangeVersion = [Microsoft.Exchange.WebServices.Data.ExchangeVersion]::Exchange2010_SP2
$service = New-Object Microsoft.Exchange.WebServices.Data.ExchangeService($ExchangeVersion)
$service.Credentials = New-Object Microsoft.Exchange.WebServices.Data.WebCredentials -ArgumentList $userName, $password
$service.url = $uri

$service.ImpersonatedUserId = New-Object Microsoft.Exchange.WebServices.Data.ImpersonatedUserId `
([Microsoft.Exchange.WebServices.Data.ConnectingIdType]::SMTPAddress,$mailbox);

$Folderid= new-object Microsoft.Exchange.WebServices.Data.FolderId `
([Microsoft.Exchange.WebServices.Data.WellKnownFolderName]::Calendar,$mailbox)
$cal=[Microsoft.Exchange.WebServices.Data.Folder]::Bind($service,$Folderid)

#Define the calendar view
$CalendarView = New-Object Microsoft.Exchange.WebServices.Data.CalendarView($StartDate,$EndDate,$itemsView)    
$findCalItems = $service.FindAppointments($Cal.Id,$CalendarView)

$report = $findCalItems | Select Start,End,Duration,AppointmentType,Subject,Location,
Organizer,DisplayTo,DisplayCC,HasAttachments,IsReminderSet,ReminderDueBy

$report | Export-Csv $($mailbox + "-Meetings.csv") -NoTypeInformation

https://www.linkedin.com/pulse/powershell-script-ews-working-calendar-items-using-managed-chauhan

用于将日历信息导出到CSV文件的EWS脚本。

代码语言:javascript
运行
复制
.Synopsis:

Script which creates a function "Export-CalendarInformation" which can be used to export details of each calendar items to a CSV file.



. Description:

Using EWS API and authorized credentials (can use an account with application impersonation permission) this script exports below details of each calendar item in a mailbox calendar to CSV file. This script will return



StartTime, EndTime, Duration, Type, Subject, Location, Organizer, Attendees, AppointmentState, Notes, HasAttachments, IsReminderSet

https://gallery.technet.microsoft.com/EWS-Script-to-Export-c76a0ad4

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51711714

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档