You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

执行许可证批量修改脚本提示userID is not defined报错

报错原因

你遇到的userID is not defined是JavaScript大小写敏感规则导致的变量引用错误:

  • 循环内声明的用户ID变量名为userId(末尾字母d为小写)
  • 但API请求体传参时写的是从未声明的userID(末尾字母D为大写),引擎找不到对应变量就会抛出未定义报错。
修复后可运行代码
function updateLicenses() {
  var updateSheet = SpreadsheetApp.getActive().getSheetByName("Update Licenses");
  var data = updateSheet.getRange(2, 1, updateSheet.getLastRow() - 1, 3).getValues();
  var fileArray = [
    ["License Update Status"]
  ];

  // 遍历表格行数据调用许可证修改接口
  data.forEach(function(item) {
    var status = "License Assigned Successfully";
    try {
      var userId = item[0];
      var apiCall = AdminLicenseManager.LicenseAssignments.patch(
        {
          // 填写要切换的新许可证信息
          "productId": "Google-Apps",
          "skuId": "1010020027",
          "userId": userId
        },
        "Google-Apps",
        "1010020028", // 填写用户当前已分配的旧许可证SKU ID
        userId
      );
    } catch (e) {
      status = e.message;
    }
    fileArray.push([status]);
  });

  updateSheet.getRange(1, 2, fileArray.length, fileArray[0].length).setValues(fileArray);
}
额外注意事项
  • 运行脚本前需要先在Apps Script编辑器左侧「服务」菜单中添加Admin SDK服务,否则会报AdminLicenseManager is not defined错误
  • 执行脚本使用的账号必须拥有Google Workspace超级管理员或对应许可证管理权限,否则接口会返回权限不足报错
  • 请确认代码中填写的新旧SKU ID和你租户实际的许可证SKU完全匹配,避免出现参数错误
  • 表格第一列需要填写对应用户的完整邮箱地址作为userId,不要填别名或者其他格式的用户标识

内容的提问来源于stack exchange,提问作者Ju Ale

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 01:54:32