代理 365 CLI
管理CLI诊断日志。
logs 命令导出经过涂黑的 CLI 日志文件副本,这些文件安全可与Microsoft支持共享。 使用 logs export 该子命令来遮蔽和复制 CLI 日志文件。 导出的文件可以安全地附加到支持工单中,不会泄露邮件、GUID或令牌。
最低要求角色:无。 该命令仅读取和重写本地日志文件。
Syntax
a365 logs [command] [options]
logs export
导出一份经过涂黑的CLI诊断日志文件副本,安全地与Microsoft支持共享。 对JWT令牌、电子邮件地址、GUID和操作系统路径用户名进行涂改,并用一致的别名替换相同值,以保持日志关联性。
a365 logs export [<command>] [options]
CLI会为每个顶级命令写入诊断日志文件到本地日志目录(例如,%LOCALAPPDATA%\Microsoft.Agents.A365.DevTools.Cli\logs\ on Windows)。
logs export 读取其中一个或全部文件,删除敏感内容,并将被删减的副本写入你选择的输出目录。
哪些内容被涂黑
| Pattern | Replacement |
|---|---|
| JWT 承载令牌(header.payload.signature) | <JWT-TOKEN> |
| Email addresses |
<email-1>, <email-2>, ...(每封邮件中的别名保持一致) |
| GUIDs(8-4-4-4-12)——参见例外保留内容 |
<id-1>, <id-2>, ...(根据 GUID 保持一致的别名) |
OS-路径用户名 (C:\Users\<name>, /Users/<name>, /home/<name>) |
<username-1>,<username-2>,... |
相同的数值在文件中保持相同的别名,因此日志中的交叉引用仍有助于诊断问题。 被编辑的文件包含一个头部,记录源路径(同样的涂黑)以及每个被替换模式的计数。
What's preserved
编辑器有意逐字地
| Preserved | 为什么它是安全的 |
|---|---|
| 时间戳、日志级别、作用域名称、错误代码、文件路径(用户名替换)、HTTP 状态码、JSON 形状 | 这些都无法识别租户或用户。 |
TraceId: <guid> 以及 CorrelationId: <guid> 价值观 |
由CLI生成的会话本地随机标识符。 它们不敏感,是将日志与服务器端跟踪匹配的关键。 |
request-id 和 client-request-id 在Microsoft Graph误差体内的值 |
服务器每次通话生成。 Microsoft 支持会用这些数据在升级服务日志中查找具体请求。 |
| 公开且知名的 Microsoft 和 Agent 365 资源应用 ID: • Microsoft Graph ( 00000003-0000-0000-c000-000000000000)• Agent 365 消息机器人 API • Agent 365 可观测性 API • Power Platform API(连接性) • Agent 365 Tools(MCP受众,制作) |
这些都是公开记录的常态——它们并不能透露租户的任何信息。 保持这些行意味着像这样的行 Validated permission AgentIdentityBlueprint.ReadWrite.All against 00000003-0000-0000-c000-000000000000 保持可读,而不是变成 ... against <id-4>。 |
租户特定的服务主体对象ID以及任何与上述模式不符的其他GUID仍通过一致性别名机制 被涂黑 。
Important
遮蔽模式旨在去除最常见的敏感内容。 如果你的日志包含自定义秘密(例如,代码在该CLI外记录的秘密,或粘贴到栈轨迹中的值),格式为该编辑者不识别,请在分享前手动删除。
分享前如何核实
用文本编辑器打开已编辑的文件,扫描任何看起来是租户特定内容的:
# Spot-check what was preserved vs aliased
Select-String -Path .\a365.setup.redacted.log -Pattern "CorrelationId|TraceId|request-id" | Select-Object -First 10
Select-String -Path .\a365.setup.redacted.log -Pattern "<id-|<email-|<JWT-TOKEN>|<username-" | Measure-Object
导出文件的头部行总结了计数。 如果你看到的别名数量比预期多 <id-N> ,说明别名映射正在发挥作用——每个租户特定的GUID恰好得到一个别名。
export 选项
| Option | Description |
|---|---|
<command> |
你想导出日志的命令名称(比如 setup 或 cleanup)。 省略这个参数,一次性导出所有可用的日志文件。 |
-o、--output <output> |
用于写入已编辑日志文件或文件的目录。 默认使用当前目录。 |
-?、-h、--help |
显示帮助和使用情况信息。 |
Examples
将日志导出 setup 到当前目录:
a365 logs export setup
将所有可用日志导出到特定文件夹:
a365 logs export --output ./support-bundle
将日志导出 cleanup 到特定文件夹:
a365 logs export cleanup --output ./support-bundle
输出文件命名
导出的文件写为 a365.<command>.redacted.log。 当你省略 <command>时,CLI会将每个可用日志导出到其单独的涂黑文件中,且命名模式相同。
Important
在分享之前,请先查看已涂黑的文件。 遮蔽模式涵盖了JWT令牌、电子邮件、GUID和操作系统路径用户名,但它们并未涵盖所有可能的秘密。 如果你的日志包含自定义秘密或其他格式的敏感标识符,分享前请手动删除。
Note
logs export 不会删除或修改原始日志文件。 原始日志会保留在你的本地日志目录中。 该命令只写入经过涂黑的副本到输出目录。