获取会议的 ID

会议 ID 是一个唯一标识符,可用于 获取特定会议的日历诊断日志 (CDL)。 虽然你可以使用会议的主题来获取 CDL,但该方法将为与主题匹配的所有会议生成不太详细的 CDL。 因此,建议使用会议 ID 来获取 CDL。

提示

会议 ID 是一个 GUID,以 040000008200开头,例如 040000008200E00074C5B7101A82E00800000000A0D1E89273EFDA010000000000000000100000002D9427567554FA4AA9162A58A8B968CB

可以使用 非管理员管理员方法 获取会议 ID。

非管理员方法

根据 Outlook 客户端选择以下方法之一:

经典 Outlook for Windows

  1. 在 Outlook 日历中查找会议,然后打开它。 如果会议是定期会议,并且你想要整个系列的会议 ID,请在系统提示时选择 整个系列 。 否则,如果希望系列中单个会议的会议 ID,请选择 “仅此 ID”。

  2. 在会议窗口中,选择“ 文件>另存为”,然后选择“ 保存 ”以将会议项另存为.ics文件。

  3. 在文本编辑器中打开.ics文件,然后搜索 UID:。 UID 值是会议 ID,如以下示例所示:

    UID:040000008200E00074C5B7101A82E00800000000A0D1E89273EFDA010000000000000000100000002D9427567554FA4AA9162A58A8B968CB

新的 Outlook for Windows

  1. 在“收件箱”或“已删除邮件”文件夹中找到以下会议通知之一:

    • 会议邀请
    • 与会者响应
    • 会议更新
    • 会议取消
  2. 右键单击会议项,选择“ 另存为”,然后选择“ 保存 ”,将会议项另存为计算机上的文件夹作为.eml文件。

  3. 在文本编辑器中打开.eml文件,然后搜索 UID=。 如果文本存在,则 UID 值为会议 ID。 如果文本不存在,请转到下一步。

  4. 搜索以 QkVHSU46VkNBTEVOREFS 文本块开头和结尾 =的 Base64 编码文本块,然后解码文本块。 可以使用以下任一方法对 Base64 编码的文本进行解码:

    • 运行以下 PowerShell 代码:

      $base64Text = "<Base64-encoded text>"
      $decodedText = [Text.Encoding]::Utf8.GetString([Convert]::FromBase64String($base64Text))
      $decodedText | findstr "UID:"
      

      注意:Base64 编码的文本块可以包含空格,因此请确保使用引号将文本块括起来。

    • 使用桌面应用。 例如,如果已安装 MFCMAPI,请选择“工具>十六进制编辑器”以打开“十六进制编辑器”窗口,然后将 Base64 编码的文本粘贴到十六进制编辑器窗口的 Base 64 部分。 解码的文本显示在十六进制编辑器窗口的“文本”(Ansi/Unicode)部分中。

    以下屏幕截图显示了 .eml 文件中 Base64 编码的文本块示例。

    Base64 编码的文本块的屏幕截图。

  5. 在解码的文本中,搜索 UID:。 UID 值是会议 ID,如以下示例所示:

    UID:040000008200E00074C5B7101A82E00800000000A0D1E89273EFDA010000000000000000100000002D9427567554FA4AA9162A58A8B968CB

Mac 版 Outlook

注意

此方法适用于新的 Outlook for Mac 和经典 Outlook for Mac。

  1. 在 Outlook 日历中查找会议,然后将会议从 Outlook 日历拖动到计算机上的文件夹。 此操作将会议项保存为文件夹中.ics文件。

  2. 在文本编辑器中打开.ics文件,然后搜索 UID:。 UID 值是会议 ID,如以下示例所示:

    UID:040000008200E00074C5B7101A82E00800000000A0D1E89273EFDA010000000000000000100000002D9427567554FA4AA9162A58A8B968CB

Web 上的 Outlook

使用以下任一方法。

提示

如果 Outlook 收件箱或已删除邮件文件夹包含会议通知,例如会议邀请、与会者响应、会议更新或会议取消,请选择“方法 A”。 否则,请选择“方法 B”。

  • 方法 A:使用为 新的 Outlook for Windows 提供的相同步骤。

  • 方法 B:使用 Microsoft Edge 中的网络工具 ,如以下步骤中所述:

    1. 在 Edge 浏览器中打开日历 ,但不选择会议。

    2. 在浏览器菜单中,选择“更多工具>开发人员工具打开开发人员工具窗格。

    3. “网络 ”选项卡上,选择“ 筛选器 ”图标,然后在筛选器框中输入 GetCalendarEvent ,如以下屏幕截图所示。

      Edge 浏览器中网络工具的屏幕截图。

    4. 选择日历中的任意一天(单击),然后选择会议。 网络请求条目应显示在“ 名称” 列中。

    5. 选择“ 名称 ”列中的条目,然后选择“ 响应 ”选项卡。 响应正文中的 UID 值是会议 ID。

    注意

    如果选择了错误的会议,必须重新开始,请刷新网页,然后重复步骤 4 和步骤 5。

管理方法

根据你是否知道会议的主题,选择以下方法之一:

主题可用

在 Exchange Online PowerShell运行以下命令,以获取与搜索条件匹配的会议的会议 ID。 搜索条件是会议的主题和会议参与者的用户 ID。 该代码使用 Get-CalendarDiagnosticObjects cmdlet 获取每个会议的开始时间和 ID。

$meetingSubject = "<subject of the meeting>"
$userId = "<ID of a user who has the meeting in their calendar>"
$cdls = Get-CalendarDiagnosticObjects -Identity $userId -Subject $meetingSubject -ExactMatch $true
$cdls | Sort -Unique CleanGlobalObjectId | FL SubjectProperty, CleanGlobalObjectId, StartTime

对于输出中列出的每个会议,CleanGlobalObjectId 参数的值是会议 ID,如以下屏幕截图所示。

Get-CalendarDiagnosticObjects cmdlet 输出的屏幕截图。

如果输出列出了多个会议,请要求用户确认会议时间。

主题不可用

选择以下任一方法:

使用 Exchange Online PowerShell

在 Exchange Online PowerShell运行以下命令,以获取与搜索条件匹配的会议的会议 ID。 搜索条件是会议参与者的会议时间和用户 ID。 该代码使用 Get-CalendarViewDiagnostics 和 Get-CalendarDiagnosticObjects cmdlet 获取每个会议的主题和 ID。

$meetingStartUtc = "MM/DD/YYYY HH:MM:SSZ"  # 'Z' means UTC time.
$userId = "<ID of a user who has the meeting in their calendar>"
$cvds = Get-CalendarViewDiagnostics $userId -WindowStartUtc $([DateTime]$meetingStartUtc).AddHours(-1) -WindowEndUtc $([DateTime]$meetingStartUtc).AddHours(1)
$cdls = $cvds | % {Get-CalendarDiagnosticObjects $userId -MeetingId $_.GlobalObjectId -ShouldBindToItem $true}
$cdls | Group-Object CleanGlobalObjectId, SubjectProperty, {$_.StartTime.ToString()} | %{$_.Group[0]} | FL SubjectProperty, CleanGlobalObjectId, StartTime

注意

Get-CalendarViewDiagnostics cmdlet 查找与 WindowStartUtc 和 WindowEndUtc 参数定义的任意时间范围的任何部分重叠的所有会议。 代码示例设置一个两小时的范围。

对于输出中列出的每个会议,CleanGlobalObjectId 参数的值是会议 ID,如以下屏幕截图所示。

Get-CalendarViewDiagnostics cmdlet 输出的屏幕截图。

如果输出列出了多个会议,请要求用户确认其会议的主题。

使用 Microsoft Graph PowerShell

在 Microsoft Graph PowerShell运行以下命令,以获取与搜索条件匹配的会议的会议 ID。 搜索条件是会议参与者的会议时间和用户 ID。 该代码使用 Get-MgUserCalendarView cmdlet 获取每个会议的主题和 ID。

$meetingStartTime = "<YYYY-MM-DDThh:mm:ssZ>" # ISO 8601 format. 'Z' means UTC time.
$userId = "<ID of a user who has the meeting in their calendar>"
Get-MgUserCalendarView -UserId $userId -StartDateTime $meetingStartTime -EndDateTime $meetingStartTime |  Select-Object -Property Subject, ICalUId -ExpandProperty Start | FL Subject, ICalUId, Datetime, Timezone

注意

Get-MgUserCalendarView cmdlet 查找与 StartDateTimeEndDateTime 参数定义的任意时间范围的任何部分重叠的所有会议。 对于最窄的范围,请将会议开始时间传递给这两个参数。

对于输出中列出的每个会议, ICalUId 参数值为会议 ID,如以下屏幕截图所示。

Get-MgUserCalendarView cmdlet 输出的屏幕截图。

如果输出列出了多个会议,请要求用户确认其会议的主题。