Get-CalendarDiagnosticLog
尽管此 cmdlet 在本地 Exchange 和基于云的服务中可用,但它仅适用于本地 Exchange。 在基于云的服务中,请改用 Get-CalendarDiagnosticObjects cmdlet。
使用 Get-CalendarDiagnosticLog cmdlet 可以收集一系列日历日志。 日历诊断日志跟踪邮箱中的所有日历项目和会议请求。 可以使用此信息排查邮箱中出现的日历问题。
有关以下语法部分的参数设置的详细信息,请参阅 Exchange cmdlet 语法。
语法
Get-CalendarDiagnosticLog
[-Identity] <MailboxIdParameter>
-MeetingID <String>
[-Credential <PSCredential>]
[-DomainController <Fqdn>]
[-LogLocation <String>]
[-ReadFromDomainController]
[-ResultSize <Unlimited>]
[<CommonParameters>]
Get-CalendarDiagnosticLog
[-Identity] <MailboxIdParameter>
-Subject <String>
[-Credential <PSCredential>]
[-DomainController <Fqdn>]
[-LogLocation <String>]
[-ReadFromDomainController]
[-ResultSize <Unlimited>]
[<CommonParameters>]
Get-CalendarDiagnosticLog
[-Identity] <MailboxIdParameter>
-LogLocation <String>
[-Credential <PSCredential>]
[-DomainController <Fqdn>]
[-EndDate <ExDateTime>]
[-EntryId <String>]
[-ExactMatch <Boolean>]
[-ItemClass <String[]>]
[-ItemIds <String[]>]
[-Latest]
[-MeetingID <String>]
[-ReadFromDomainController]
[-ResultSize <Unlimited>]
[-StartDate <ExDateTime>]
[-Subject <String>]
[<CommonParameters>]
说明
此 cmdlet 的输出包含以下信息:
- IsFileLink:指示是否已使用 LogLocation 参数将日历项导出到 .msg 文件。 值为 True 或 False。
- 标识:标识保存日历项的邮箱。 示例值为:excallog://laura@contoso.com/?id=RgAAAACF/h/dHTTkQbdPrk7z+G4SBwCoatc7EmnEQq1iF35p17stAAAAFEAACoatc7EmnEQq1iF35p17stAAAAABEIAAAP。
- LogDate:记录日历项的日期时间。
- NormalizedSubject:日历项的“主题”字段。
- CleanGlobalObjectId:在日历项的整个生存期内保持不变的标识符。 例如,040000008200E00074C5B7101A82E008000000B0225ABF0710C80 10000000000000000100000005B27C05AA7C4646B0835D5EB4E41C55。
运行 Get-CalendarDiagnosticLog cmdlet 之后,您可以使用 Get-CalendarDiagnosticAnalysis cmdlet 分析日历数据。 有关详细信息,请参阅 Get-CalendarDiagnosticAnalysis。
您必须先获得权限,然后才能运行此 cmdlet。 虽然本主题中列出了此 cmdlet 的所有参数,但如果这些参数并未包含在分配给您的权限中,那么您将无法使用这些参数。 若要查找在贵组织中运行任何 cmdlet 或参数所需的权限,请参阅 Find the permissions required to run any Exchange cmdlet。
示例
示例 1
Get-CalendarDiagnosticLog -Identity "Shannon Steele" -Subject "Weekly development meeting" -ExactMatch $true
此示例使用主题每周开发会议检索 Shannon Steele 邮箱的日历诊断日志条目。
示例 2
Get-CalendarDiagnosticLog -Identity oevans -StartDate "6/1/2018 6:00:00 AM" -EndDate "6/30/2018 5:00:00 PM"
本示例从 2018 年 6 月 1 日到 2018 年 6 月 30 日检索 Oscar Evans 邮箱的日历诊断日志条目。
示例 3
Get-CalendarDiagnosticLog -Identity jkozma@contoso.com -Subject "Weekly development meeting" -Latest
此示例仅检索 Jasen Kozma 邮箱中邮件主题为“每周开发会议”的最新日历项目的日历诊断日志数据。
示例 4
Get-CalendarDiagnosticLog -Identity "Jasen Kozma" -Subject "Budget Meeting" -ExactMatch $true -LogLocation "C:\My Documents\Calendar Diagnostic Export"
在 Exchange 2013 中,本示例将 Jasen Kozma 邮箱的日历诊断日志中具有主题中任意位置的“预算会议”的所有日历项目导出到指定文件夹。
注意:
- 在此示例中,邮件文件将写入 C:\My Documents\Calendar Diagnostic Export\jkozma@contoso.com。
- 在本地 Exchange 组织中,可以使用 Get-CalendarDiagnosticAnalysis cmdlet 分析导出的 .msg 文件。
- 此示例在 Exchange 2016 或 Exchange 2019 中不起作用,因为 LogLocation 参数不可用。
参数
-Credential
此参数只在本地 Exchange 中可用。
Credential 参数指定用于运行此命令的用户名和密码。 通常情况下,您可以在脚本中或在需要提供具有所需权限的不同凭据时使用此参数。
此参数的值需要 Get-Credential cmdlet。 要暂停此命令并接收凭据提示,请使用值 (Get-Credential)
。 或者,在运行此命令之前,请将凭据存储在变量(例如,$cred = Get-Credential
)中,然后将变量名称 ($cred
) 用作此参数。 有关详细信息,请参阅 Get-Credential。
Type: | PSCredential |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Applies to: | Exchange Server 2010, Exchange Server 2013, Exchange Server 2016, Exchange Server 2019 |
-DomainController
此参数只在本地 Exchange 中可用。
DomainController 参数指定此 cmdlet 从 Active Directory 读取数据或向其写入数据时使用的域控制器。 可以使用完全限定的域名 (FQDN) 来标识域控制器。 例如,dc01.contoso.com。
Type: | Fqdn |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Applies to: | Exchange Server 2010, Exchange Server 2013, Exchange Server 2016, Exchange Server 2019 |
-EndDate
EndDate 参数指定日期范围的结束日期。
请使用短日期格式,该格式在运行命令的计算机上的“区域选项”设置中定义。 例如,如果将计算机配置为使用短日期格式 mm/dd/yyyy,请输入 09/01/2018 来指定 2018 年 9 月 1 日。 可以只输入日期,也可以输入当天的日期和时间。 如果输入当天的日期和时间,请将该值括在引号 (") 中,例如,"09/01/2018 5:00 PM"。
Type: | ExDateTime |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Applies to: | Exchange Server 2013, Exchange Server 2016, Exchange Server 2019, Exchange Online |
-EntryId
EntryId 参数按条目 ID 筛选结果。 可以指定用逗号分隔的多个值。
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Applies to: | Exchange Server 2016, Exchange Server 2019, Exchange Online |
-ExactMatch
ExactMatch 参数指定是为 Subject 参数指定的文本值是使用完全匹配还是部分匹配。 有效值包含:
- $true:主题搜索使用完全匹配并搜索邮箱中的所有日历项目。 例如,如果搜索“预算”,则搜索将查找主题中任意位置包含“预算”的项目,但不会查找“预算”。
- $false:主题搜索使用部分匹配,最多搜索邮箱中的 1000 个日历项目。 例如,如果搜索“预算”,则搜索将在主题的任意位置查找具有“预算”和“预算”的项目。 此值为默认值。
部分主题匹配搜索可能不会返回所有相关日历项。 尝试使用完全匹配的主题搜索来获得更准确的结果。
仅将此参数与 Subject 参数一起使用。
使用 MeetingId 参数时,将忽略此参数的值。
Type: | Boolean |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Applies to: | Exchange Server 2016, Exchange Server 2019, Exchange Online |
-Identity
Identity 参数指定包含日历项目的邮箱。 可以使用能够唯一标识邮箱的任意值。 例如:
- 名称
- 别名
- 可分辨名称 (DN)
- 可分辨名称 (DN)
- 域\用户名
- 电子邮件地址
- GUID
- LegacyExchangeDN
- SamAccountName
- 用户 ID 或用户主体名称 (UPN)
Type: | MailboxIdParameter |
Position: | 1 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
Applies to: | Exchange Server 2010, Exchange Server 2013, Exchange Server 2016, Exchange Server 2019, Exchange Online |
-ItemClass
ItemClass 参数按日历项的指定 MessageClass 属性值筛选结果, (例如 IPM。约会) 。 可以指定用逗号分隔的多个值。
只能将此参数与 MeetingID 参数一起使用。
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Applies to: | Exchange Server 2016, Exchange Server 2019, Exchange Online |
-ItemIds
ItemIds 参数按项 ID 筛选结果。 可以指定用逗号分隔的多个值。
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Applies to: | Exchange Server 2016, Exchange Server 2019, Exchange Online |
-Latest
Latest 开关指定是否仅为最近的日历项目返回日历日志数据。 不必为此开关指定值。
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Applies to: | Exchange Server 2013, Exchange Server 2016, Exchange Server 2019, Exchange Online |
-LogLocation
注意:此参数已被 2022 H1 累积汇报从 Exchange 2016 和 Exchange 2019 中删除,因为它接受 UNC 路径值。 此 cmdlet 的用法现在仅限于本地服务器。
此参数仅在 Exchange 2010 和 Exchange 2013 中有效。
LogLocation 参数指定将日历项目导出到 .msg 文件的位置。 可以指定本地路径或 UNC 路径, \\Server\Share
() 。 如果值中有空格,请使用双引号 (") 将此值括起来。
在指定的位置中,将自动为保存导出日历项目的指定邮箱创建子文件夹。 例如,如果指定值“C:\My Documents\Calendar Export”以从 Shannon Steele 的邮箱导出日历项目,则 .msg 文件实际上存储在 C:\My Documents\Calendar Export\ssteele@contoso.com中。
在本地 Exchange 组织中,可以使用 Get-CalendarDiagnosticAnalysis cmdlet 分析导出的 .msg 文件。
注意:如果日历项没有标题,则使用此参数的命令可能会失败。 如果使用此参数时收到错误,请再次运行 命令,并将此参数替换为重定向到文件 (|Set-Content -Path“C:\My Documents\Calendar Export”) 或替换 PowerShell 变量的输出。
Type: | String |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Applies to: | Exchange Server 2010, Exchange Server 2013, Exchange Online |
-MeetingID
MeetingID 参数按日历项的全局唯一标识符筛选结果。 该值是此 cmdlet 的输出中提供的日历项的 CleanGlobalObjectId 属性,或者通过使用其他 MAPI 检查工具。 示例值为 040000008200E00074C5B7101A82E0080000000B0225ABF0710C80100000000000000000100000005B27C05AA7C4646B0835D5EB4E41C55。 此值在日历项的整个生存期内保持不变。
若要查找此值,最简单的方法是首先使用 Subject、StartDate 和 EndDate 参数搜索日历项。 找到所需的日历项后,可以在将来的命令中将其 CleanGlobalObjectId 值用于 MeetingID 参数。
请勿将此参数与 Subject 参数一起使用,因为 MeetingID 参数的值优先。
Type: | String |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
Applies to: | Exchange Server 2010, Exchange Server 2013, Exchange Server 2016, Exchange Server 2019, Exchange Online |
-ReadFromDomainController
此参数只在本地 Exchange 中可用。
ReadFromDomainController 开关指定从用户域中的域控制器读取的信息。 不必为此开关指定值。
命令: Set-AdServerSettings -ViewEntireForest $true
若要包含林中的所有对象,需要 ReadFromDomainController 开关。 否则,该命令可能会使用包含过时信息的全局编录。 此外,可能需要使用 ReadFromDomainController 开关运行命令的多个迭代才能获取信息。
默认情况下,收件人范围设置为托管 Exchange 服务器的域。
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Applies to: | Exchange Server 2010, Exchange Server 2013, Exchange Server 2016, Exchange Server 2019 |
-ResultSize
此参数确定 cmdlet 返回的结果数。 最大值为 1000。
Type: | Unlimited |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Applies to: | Exchange Server 2010, Exchange Server 2013, Exchange Server 2016, Exchange Server 2019, Exchange Online |
-StartDate
StartDate 参数指定日期范围的起始日期。
请使用短日期格式,该格式在运行命令的计算机上的“区域选项”设置中定义。 例如,如果将计算机配置为使用短日期格式 mm/dd/yyyy,请输入 09/01/2018 来指定 2018 年 9 月 1 日。 可以只输入日期,也可以输入当天的日期和时间。 如果输入当天的日期和时间,请将该值括在引号 (") 中,例如,"09/01/2018 5:00 PM"。
Type: | ExDateTime |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Applies to: | Exchange Server 2013, Exchange Server 2016, Exchange Server 2019, Exchange Online |
-Subject
Subject 参数通过 Subject 字段中的指定文本标识日历项。 指定的文本值不区分大小写。 如果值中有空格,请使用双引号 (") 将此值括起来。 可以使用 ExactMatch 参数控制是否使用完全匹配。
不要将此参数与 MeetingID 参数一起使用,因为 MeetingID 参数的值优先。
Type: | String |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Applies to: | Exchange Server 2010, Exchange Server 2013, Exchange Server 2016, Exchange Server 2019, Exchange Online |
输入
Input types
若要了解此 cmdlet 接受的输入类型,请参阅 cmdlet 的输入和输出类型。 如果 cmdlet 的"输入类型"字段为空,则表明此 cmdlet 不接受输入数据。
输出
Output types
若要了解此 cmdlet 接受的返回类型(亦称为"输出类型"),请参阅 cmdlet 的输入和输出类型。 如果"输出类型"字段为空,则表明此 cmdlet 不返回任何数据。