用途:在 Windows 桌面版 Microsoft Teams 中准备并核对聊天草稿。当 Teams Web、Playwright 或 CDP 不可用,只能使用已登录的桌面应用,并希望在发送前由用户本人确认时使用。不适用于加入会议、通话、频道发帖、文件共享,以及发送后的编辑或删除。
主要能力:提供 Open、Inspect、Draft 三种模式。Open 打开目标聊天(可能将 Teams 置前,执行前需告知用户);Inspect 检查窗口标题、输入框、已有草稿与发送按钮;Draft 输入正文,并在存在不同内容的已有草稿时停止。可配合 -ScreenshotPath 保存当前画面。
安全约束:不执行发送;不调用 SendKeys,也不对发送按钮做 click / InvokePattern 或坐标点击。收件人不能仅凭显示名确定,需与经组织目录等核实的邮箱地址比对;通过窗口标题核对收件人与期望账号,候选为 0 个或多个时停止。已有草稿内容不同则不覆盖,内容相同则视为成功且不重复输入。需要认证、MFA 或切换账号时交回用户处理。
使用方式:在 PowerShell 7(pwsh)中运行脚本。
$script = '<skill-dir>/scripts/Set-TeamsDesktopDraft.ps1'
& $script -Mode Open -RecipientDisplayName '<display-name>'
-RecipientEmail 'user@example.com' -ExpectedAccount '<signed-in-account@example.com>' & $script -Mode Inspect
-RecipientDisplayName '<display-name>' -RecipientEmail '<user@example.com>'
-ExpectedAccount 'signed-in-account@example.com'
& $script -Mode Draft -RecipientDisplayName '<display-name>'
-RecipientEmail 'user@example.com' -ExpectedAccount '<signed-in-account@example.com>'
-Message '<message>' `
-ScreenshotPath 'output/teams-draft.png'
完成后确认 ready-for-user-send、DraftMatches=true、SendEnabled=true、SendActionPerformed=false,并提示用户按下发送按钮。
失败处理与验证:Open 后目标标题未出现时,不要重复执行 Draft,改为执行一次 Inspect;UIA 未暴露输入框时按未确认停止,不做 Web 版自动绕过或重启应用;Draft 结果不明确时不要重复输入,改用 Inspect 读取当前值确认是否同一正文。可运行 & <skill-dir>/scripts/Test-TeamsDesktopDraft.ps1 验证;实机测试先执行 Inspect,Draft 仅在正文已最终确定时使用。
完成标准:窗口标题中目标显示名与期望账号一致;输入框草稿与要求正文完全一致;发送按钮存在且可用;以 SendActionPerformed=false 结束,并明确请用户点击发送。其他平台支持、价格与更多错误场景资料暂未提供。