记录
前面使用 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 的订阅” 就可以了,即便是真的过期了没有续上也是可以从仪表盘申诉的。