以下是一个示例脚本,用于获取指定用户的会议信息:

# 指定Exchange服务器信息
$exchangeServer = 'mail.example.com'
$exchangeVersion = [Microsoft.Exchange.WebServices.Data.ExchangeVersion]::Exchange2016_SP1

# 指定要获取会议信息的用户邮箱
$userEmail = 'user@example.com'

# 创建Exchange服务对象
$exchangeService = New-Object Microsoft.Exchange.WebServices.Data.ExchangeService($exchangeVersion)
$exchangeService.Url = 'https://$exchangeServer/EWS/Exchange.asmx'

# 指定用于身份验证的凭据(可以是用户名/密码或OAuth令牌)
$credential = Get-Credential
$exchangeService.Credentials = New-Object Microsoft.Exchange.WebServices.Data.WebCredentials($credential.UserName, $credential.Password)

# 使用FindAppointments方法获取用户的会议信息
$calendar = [Microsoft.Exchange.WebServices.Data.Folder]::Bind($exchangeService,[Microsoft.Exchange.WebServices.Data.WellKnownFolderName]::Calendar)
$view = New-Object Microsoft.Exchange.WebServices.Data.ItemView(1000)
$startDate = [DateTime]::Now.AddDays(-7)
$endDate = [DateTime]::Now.AddDays(7)
$filter = New-Object Microsoft.Exchange.WebServices.Data.SearchFilter+IsGreaterThanOrEqualTo([Microsoft.Exchange.WebServices.Data.AppointmentSchema]::Start, $startDate)
$filter = New-Object Microsoft.Exchange.WebServices.Data.SearchFilter+And($filter, New-Object Microsoft.Exchange.WebServices.Data.SearchFilter+IsLessThanOrEqualTo([Microsoft.Exchange.WebServices.Data.AppointmentSchema]::End, $endDate))
$filter = New-Object Microsoft.Exchange.WebServices.Data.SearchFilter+And($filter, New-Object Microsoft.Exchange.WebServices.Data.SearchFilter+IsEqualTo([Microsoft.Exchange.WebServices.Data.ItemSchema]::HasAttachments, $true))
$filter = New-Object Microsoft.Exchange.WebServices.Data.SearchFilter+And($filter, New-Object Microsoft.Exchange.WebServices.Data.SearchFilter+IsEqualTo([Microsoft.Exchange.WebServices.Data.AppointmentSchema]::IsMeeting, $true))
$filter = New-Object Microsoft.Exchange.WebServices.Data.SearchFilter+And($filter, New-Object Microsoft.Exchange.WebServices.Data.SearchFilter+IsEqualTo([Microsoft.Exchange.WebServices.Data.AppointmentSchema]::IsCancelled, $false))
$searchResults = $calendar.FindAppointments($filter, $view)

# 打印会议信息
foreach ($appointment in $searchResults.Items) {
    Write-Host 'Subject: $($appointment.Subject)'
    Write-Host 'Start: $($appointment.Start)'
    Write-Host 'End: $($appointment.End)'
    Write-Host 'Location: $($appointment.Location)'
    Write-Host 'Organizer: $($appointment.Organizer.Name)'
    Write-Host ''
}

请注意,此脚本需要在安装了Exchange管理工具和Microsoft.Exchange.WebServices.dll的计算机上运行。或者,您可以将Microsoft.Exchange.WebServices.dll添加到脚本中,并在脚本中加载它。

Powershell 获取 Exchange Server 2016 用户会议信息脚本

原文地址: https://www.cveoy.top/t/topic/oMXc 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录