Google Workspace用户状态报表自动化脚本报错:AdminDirectory未定义
解决Google Apps Script中AdminDirectory未定义的错误
错误根源
AdminDirectory是Google Apps Script的高级服务,不会默认加载,必须手动启用才能调用,这就是触发ReferenceError: AdminDirectory is not defined的原因。
修复步骤
- 打开Google Apps Script编辑器
- 点击左侧栏的「服务」图标(⚡样式)
- 在服务列表里找到「Admin Directory」,点击右侧的「添加」按钮
- 返回编辑器重新运行脚本
额外注意事项
- 运行脚本的账号必须是Google Workspace超级管理员,否则会因权限不足无法获取用户数据
- 首次运行脚本会触发授权流程,需按提示完成权限授予
- 脚本中
jsonToSheet_函数未定义,需补充实现才能完成报表写入,示例代码如下:
function jsonToSheet_(dataArray, sheetName) { const spreadsheet = SpreadsheetApp.getActive(); let sheet = spreadsheet.getSheetByName(sheetName); if (!sheet) { sheet = spreadsheet.insertSheet(sheetName); } else { sheet.clearContents(); } // 写入表头 const headers = Object.keys(dataArray[0]); sheet.getRange(1, 1, 1, headers.length).setValues([headers]); // 写入用户数据 const rows = dataArray.map(item => headers.map(header => item[header])); sheet.getRange(2, 1, rows.length, headers.length).setValues(rows); }
- 若需要启用邮件通知和表格共享功能,取消
generateUserReport函数中shareSpreadsheet(spreadsheet, shareWithEmails);和notifyUsers(spreadsheet, shareWithEmails);两行的注释即可
内容的提问来源于stack exchange,提问作者Abayomi
相关产品推荐
相关产品推荐

