参考文章:如何绕过Cursor的机器绑定限制
前言
在前面这篇文章无限使用Cursor指南中,我提到使用 无限邮箱 或者 删除账号并重新注册 的方法,来无限使用Cursor免费版。但是当在本机登录过3个账号后,就会报这个“Too many free trial accounts used on this machine.”提示,就算有免费体验额度也无法继续体验。
问题原因
Cursor 会通过机器码(machineId)来限制每台机器只能绑定 3 次账号,超出次数后,删除账号、使用新邮箱、重装cursor等方法都无法恢复免费试用期,原因在于这个机器ID依然存在,导致我们无法使用。
其实这就很简单了,我们只要把这个机器ID改掉,从而来“欺骗”Cursor,让他认为我们是一个全新的设备,就可以解决了!!!
解决方法
1. 找到storage.json配置文件
C:\Users\Administrator\AppData\Roaming\Cursor\User\globalStorage
注意:这里的Administrator为管理员用户目录,可能不一样,需要改成你自己的
2. 关闭Cursor程序
这一点很重要,一定要关掉 Cursor !!!
3. 运行Pythone脚本
这里我们可以写一个python脚本 change_machine_id.py 来给我们自动生成一个新的machineId,并写入storage.json
import os
import json
import uuid
from datetime import datetime
import shutil# 配置文件路径,适配 Windows 的路径格式
# storage_file = os.path.expanduser(r"~\AppData\Local\Cursor\User\globalStorage\storage.json")
# win11 专用
storage_file = os.path.expanduser(r"C:\Users\Administrator\AppData\Roaming\Cursor\User\globalStorage\storage.json")# 生成随机 ID
def generate_random_id():return uuid.uuid4().hex# 获取新的 ID(从命令行参数或自动生成)
def get_new_id():import sysreturn sys.argv[1] if len(sys.argv) > 1 else generate_random_id()# 创建备份
def backup_file(file_path):if os.path.exists(file_path):backup_path = f"{file_path}.backup_{datetime.now().strftime('%Y%m%d_%H%M%S')}"shutil.copy(file_path, backup_path)print(f"已创建备份文件: {backup_path}")else:print("未找到需要备份的文件,跳过备份步骤。")# 更新或创建 JSON 文件
def update_machine_id(file_path, new_id):# 确保目录存在os.makedirs(os.path.dirname(file_path), exist_ok=True)# 如果文件不存在,创建一个空的 JSON 文件if not os.path.exists(file_path):with open(file_path, "w", encoding="utf-8") as f:json.dump({}, f)# 读取 JSON 数据with open(file_path, "r", encoding="utf-8") as f:try:data = json.load(f)except json.JSONDecodeError:data = {}# 更新或添加 machineIddata["telemetry.machineId"] = new_id# 写回更新后的 JSON 文件with open(file_path, "w", encoding="utf-8") as f:json.dump(data, f, indent=4, ensure_ascii=False)print(f"已成功修改 machineId 为: {new_id}")# 主函数
if __name__ == "__main__":new_id = get_new_id()# 创建备份backup_file(storage_file)# 更新 JSON 文件update_machine_id(storage_file, new_id)
右键 Run
我们再次打开Cursor,重新开一个会话,可以看到已经可以再次使用了!