记录
前面使用 GitHub actions 实现续订(详情看实现E5自动订阅),这次搞本地实现续订,根据情况来使用,这里就记录一下。
由来
早期脱胎于 Microsoft 365 E5 Renew ,是他的升级版,其功能性,易用性,美观程度上都要强于旧版本。
主要功能
- 支持开机自启动后台调用:使用简单方便,无需购买服务器部署,本地应用程序即开即用
- 两种可选的调用权限:用户未登录作为守护程序调用 (需要客户端密码)、程序以登录用户身份直接调用 (需要账户密码)
- 自动配置 API 权限:登录调用的 API 权限支持由程序自动配置
- API 种类齐全:43 个可选的 Microsoft Graph REST API Beta 中的 API (未来可能会继续添加)
- 完全随机的 API 选用模式:从已选定的 API 序列中随机抽取一个或几个进行调用(个数和 API 随机)
- 完全随机的 API 调用顺序:每轮 API 的调用先后顺序随机
- 完全随机的 API 内容 (仅部分 API 支持):POST 写类型的 API 的上传内容随机
- 完全随机的 API 调用时间间隔:随机区段 500s-86400s 自定义
- 每日工作时间自定义:在日常工作时间进行调用,适用于从不关机重启的服务器设备
- 每周工作日自定义:在每周的工作日进行调用,适用于从不关机重启的服务器设备
- 运行智能暂停:防止因持续在错误配置下运行而导致的账户封禁
- 运行配置自动保存:可保存运行配置,无需反复设置
- 无限制账号个数:理论上允许无限制个数账号后台自动调用
- 支持自定义客户端密钥:允许非登录调用使用自定义密钥
- 自定义美化界面:支持自定义背景图片,半透明度以及毛玻璃效果
预览
软件下载
版本 | 文件说明 | LanZou | OneDrive |
---|---|---|---|
包含框架(推荐) | 无需额外安装运行环境,可直接运行 | 下载 | 下载 |
普通版本 | 需要安装 .NET 6 Desktop Runtime x64 | 下载 | 下载 |
历史版本(弃用) | 更兼容Windows 7,已停止更新 | 下载 | 下载 |
使用
- 注册 Azure 应用程序。
- 点击登录 Azure 或 点击直接进入 Azure 应用注册,登录账号使用申请到的 Microsoft 365 E5 的管理员账户 (账户名类似 [email protected] 格式)
- 登录完成后点击右上角的 “门户” 按钮进入 Azure 管理中心,在搜索栏内输入 “应用注册”,点击进入(也可以点击此处直接进入)。
点击“新注册”按键,创建一个新的应用程序。
配置应用重定向URL(身份验证)。
这里也把应用程序(客户端)ID也复制下来,后面要用到。
点击 “添加平台”,再点击 “移动和桌面应用程序”。
继续勾选中第一个 URL,最后点击底部的 “配置”,该 URL 为 “https://login.microsoftonline.com/common/oauth2/nativeclient” 也可手动添加。
下拉找到“配置默认客户端类型将应用程序视为公共客户端”,点击切换按钮为 “是” ,最后点击 “保存” 按钮保存。
配置应用程序的 API 权限(重要)。
建议选择 “委托的权限 (用户登录)” 该权限类型,调用 API 较多,操作步骤较少简单粗暴,调用成功几率高
注册的应用程序 API 权限类型有两种,其主要区别如下表所示:
| 权限类型 | 委托的权限 (用户登录) | 应用程序权限 (非用户登录) |
| —————— | ————————————————————— | ——————————————————————————— |
| 官方释义 | 应用程序必须以登录用户身份访问 API | 应用程序在用户未登录的情况下作为后台服务或守护程序运行 |
| 需要的信息 | 账户名称 + 账户密码 + 应用程序 (客户端) ID | 账户名称 + 客户端机密 + 应用程序 (客户端) ID |
| 功能影响 | 程序中所有 API 均可调用 | 部分 API 权限受限无法调用 (官方限制) |
| API 权限配置 | 可由程序自动配置添加 API 权限 | 必须手动配置 API 权限 |
| 程序颜色标识 | 蓝色 | 深青色 |
选择 “委托的权限 (用户登录)” 类型的 API,并使用程序自动请求配置 API 权限。
点击 “添加账号”,API 调用方式选择 “登陆调用”,正确填写 “MS365 E5 账号” 和 “应用程序(客户端)ID” 后点击 “启动自动授权”。在弹出的登陆页面中输入你的管理员账户名和密码登录(该账户必须为全局管理员账户且拥有该客户端 ID 的控制权限),登录成功时弹出 “请求征得许可界面”,滚动到页面最底部勾选 “代表组织同意”,最后点击 “接受”。
判断是否添加 API 权限成功:首先程序提示授权成功,其次用管理员账户登录 Azure 查看应用的 API 权限(即前面复制的应用程序(客户端)ID),发现所有需求的权限全部添加或可以成功调用均视为已添加成功。
手动配置 API 权限,点击 “API 权限”-“添加权限”-“Microsoft Graph”,并择选择 “委托的权限”。
根据下方列出的 API 权限需求表来勾选所对应的 API 权限,全部选择完成后点击” 添加权限”。
BookingsAppointment.ReadWrite.All
;Calendars.Read
;Contacts.Read
;Directory.Read.All
;Files.Read.All
;Files.ReadWrite.All
;Group.Read.All
;Mail.Read
;Mail.Send
;MailboxSettings.Read
;Notes.Read.All
;People.Read.All
;Presence.Read.All
;Sites.Read.All
;Tasks.ReadWrite
;User.Read.All
;
最后点击代表 XXX 授予管理员同意,对话框选择 “是”(该图包含了当前程序 “委托的权限 (用户登录)” 全部 API 所需要的权限)。
创建客户端密码。
点击 “证书密码”-“新客户端密码”-“24 个月”-“添加”点击 “值” 该列中的 “复制”(不要复制”ID” 列中的值),并立即将该密码保存至电脑,保存的值即为 “客户端密码”, 注:该值必须立即保存,退出该页面后将永远无法查看。
使用程序进行 API 调用(可选)。
登入 E5 管理员账户进入管理员界面,创建一个新的子账户,使用这个子账户登录程序调用 API。
为什么建议这样做:Microsoft 365 E5 Renew Plus 中的部分 API 包含了写操作,例如 Onedrive 的 API,这些 API 在随机模式下会生成大量垃圾邮件和文件(虽然单独为此设立了一个文件夹),部分人可能会对此行为非常介意,而且程序频繁的读写可能会对您正常使用账户造成影响,因此不建议使用管理员账户登录。
- 添加一个账户。
点击 “开始运行”-“添加账号”。
- 开始运行。
扩展
关闭 E5 账户登录双重验证。
点击进入 Office 365 E5 账户多重身份验证管理,按照下图配置即可关闭 E5 账户登录的双重验证。
关闭 Azure 中 API 调用的双重验证
点击进入 Azure Active Directory 管理中心,按照下图配置即可关闭 Azure 中 API 调用的双重验证。
查询续订剩余天数
关于续订
E5 续订执行是微软统一的具有一定时间周期的续订,如果你的 E5 订阅剩余天数少于等于 30 天、并收到了未检测到开发活动的警告邮件且仪表盘显示标红文字 “此订阅处于非活动状态且即将过期”,请不要慌张。根据微软客服官方说法是:“订阅只有在剩余最后 1 天才给续期”,然而根据众多 E5 账号的续订情况来统计,大部分账号是在少于 30 天续期的,极少欧洲人是在大于 30 天的时候续期。
本人 E5 账户收到过两次未活跃警告,微软客服解释说:这种警告邮件属于系统自动发送的 (邮件会在剩余第 30 天的时候发送),无需理会它,至于出现文字标红文字 “此订阅处于非活动状态且即将过期”,也为系统自动提示,只要保证仪表盘上的文字标注为 “可续订 E5 的订阅” 就可以了,即便是真的过期了没有续上也是可以从仪表盘申诉的。