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

如何在Google Apps Script中访问及编辑用户的employeeType字段?

如何在Google Apps Script中访问和编辑Admin SDK用户的employeeType字段

访问employeeType字段

根据Google Admin Directory的用户数据结构,employeeType属于用户的organizations(组织信息)数组中的属性。你需要从该数组中读取对应值,修改你代码中的问题行即可:

function getAllUsers() {
    var users = [];
    var pageToken = null;

    do {
        var response = AdminDirectory.Users.list({
            domain: 'myDomain.com',
            maxResults: 500,
            pageToken: pageToken
        });

        if (response.users) {
            users = users.concat(response.users);
            response.users.forEach(function(user) {
                var firstName = user.name.givenName || "Unbekannt";
                var lastName = user.name.familyName || "Unbekannt";
                // 修正后的字段访问方式
                var employeeType = "未指定";
                if (user.organizations && user.organizations.length > 0) {
                    employeeType = user.organizations[0].employeeType || "未指定";
                }
                Logger.log("Vorname: " + firstName + ", Nachname: " + lastName + ", Mitarbeitertyp: " + employeeType);
            });
        }

        pageToken = response.nextPageToken;
    } while (pageToken);

    Logger.log("Gesamte Benutzeranzahl: " + users.length);
}

如果你的脚本运行环境支持ES6+的可选链语法,可以简化为:

var employeeType = user.organizations?.[0]?.employeeType || "未指定";

编辑employeeType字段

以下是更新用户employeeType的脚本示例,支持已有组织信息的更新或新增组织条目:

function updateEmployeeType(userId, newEmployeeType) {
    try {
        // 获取目标用户的当前信息
        var user = AdminDirectory.Users.get(userId);
        // 初始化组织信息数组(避免空值报错)
        var organizations = user.organizations || [];

        if (organizations.length > 0) {
            // 若已有组织条目,更新第一个条目的employeeType
            organizations[0].employeeType = newEmployeeType;
        } else {
            // 若无组织条目,创建新条目并设置employeeType
            organizations.push({
                employeeType: newEmployeeType,
                // 可按需补充其他组织字段(如部门、职位)
                department: "",
                title: ""
            });
        }

        // 提交更新请求
        AdminDirectory.Users.update({organizations: organizations}, userId);
        Logger.log(`用户 ${userId} 的Mitarbeitertyp已更新为: ${newEmployeeType}`);
    } catch (error) {
        Logger.log(`更新失败: ${error.message}`);
    }
}

// 调用示例(替换为实际用户邮箱和目标值)
// updateEmployeeType("user@myDomain.com", "Vollzeitmitarbeiter");

注意事项

  • 确认已在脚本编辑器中启用Admin SDK服务(你已提及添加,可忽略此步)
  • 操作用户数据需要Google Workspace管理员权限
  • 若用户存在多个组织条目,需根据实际业务逻辑选择要更新的条目,而非默认第一个

内容的提问来源于stack exchange,提问作者J. Doe

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 09:22:09