以下是通过 EWS 查看指定用户会议信息的 PowerShell 脚本:

# 连接 Exchange 服务器
$ExchangeURI = 'https://<Exchange_Server_Name>/EWS/Exchange.asmx'
$ExchangeCredential = Get-Credential
$ExchangeSession = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri $ExchangeURI -Credential $ExchangeCredential -Authentication Basic -AllowRedirection
Import-PSSession $ExchangeSession -DisableNameChecking

# 指定用户邮箱地址和日期范围
$Mailbox = 'user@domain.com'
$StartDate = Get-Date '2021-10-01T00:00:00'
$EndDate = Get-Date '2021-10-31T23:59:59'

# 构建 EWS 请求
$Request = New-Object Microsoft.Exchange.WebServices.Data.FindItemType
$Request.Traversal = [Microsoft.Exchange.WebServices.Data.ItemTraversal]::Shallow
$Request.ItemShape = New-Object Microsoft.Exchange.WebServices.Data.ItemResponseShape( [Microsoft.Exchange.WebServices.Data.BasePropertySet]::FirstClassProperties )
$Request.CalendarView = New-Object Microsoft.Exchange.WebServices.Data.CalendarView($StartDate, $EndDate)

# 添加过滤条件,只显示会议信息
$IsMeeting = New-Object Microsoft.Exchange.WebServices.Data.SearchFilter+IsEqualTo([Microsoft.Exchange.WebServices.Data.ItemSchema]::ItemClass, 'IPM.Appointment')
$Request.ParentFolderIds = New-Object Microsoft.Exchange.WebServices.Data.DistinguishedFolderId([Microsoft.Exchange.WebServices.Data.WellKnownFolderName]::Calendar, $Mailbox)
$Request.Traversal = [Microsoft.Exchange.WebServices.Data.ItemTraversal]::Associated

# 执行 EWS 请求并获取会议信息
$MeetingItems = $null
$MeetingItems = $ExchangeService.FindItems($Request)

# 输出会议信息
$MeetingItems | ForEach-Object {
    Write-Output 'Subject: $($_.Subject)'
    Write-Output 'Organizer: $($_.Organizer.Name)'
    Write-Output 'Start Time: $($_.Start)'
    Write-Output 'End Time: $($_.End)'
}

请注意,此脚本需要在安装了 Exchange Web Services (EWS) 管理 API 的计算机上运行。此外,您需要使用正确的 Exchange 服务器名称替换 <Exchange_Server_Name> 和正确的用户邮箱地址替换 user@domain.com。您还可以根据需要更改日期范围和输出格式。

使用 PowerShell 脚本通过 EWS 查看指定用户会议信息 (Exchange Server 2016)

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

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