我在一所向所有学生发放Chromebook的学校工作。我想创建一个应用程序来帮助管理和清点GSuite中的设备,并自动化向学生发布新设备的过程。
我希望能够分发设备,让学生登录并运行Chrome应用或提交将运行脚本的Google表单。代码需要能够找到用户发布的设备的序列号。然后它可以执行诸如更新设备OU和设备管理器中的注释用户之类的操作,向学生发送一封收据,告知他们已经发出了具有特定序列号的设备等。
我能做的最好的事情是编写一个遍历所有设备的脚本,按照lastsync排序,并检查设备的最新用户是否是会话的活动用户。这假设他们最近使用的设备是他们发布的设备。
或者我想创建一个电子表格,其中可以为用户查找分配的序列号,但理想情况下这将是自动化的。
有没有办法找到学生登录或运行脚本的设备的序列号。有关如何自动化设备推出和库存的任何建议吗?
这是我的代码,用于查找用户最近使用过的设备的序列号:
function main() {
var username = Session.getActiveUser().getEmail();
var deviceInfo = getUserDevice(username);
Logger.log("Device serial number: %s", deviceInfo[0]);
Logger.log("Device model number: %s", deviceInfo[1]);
}
// return serial and model number of user's most recently used device
function getUserDevice(username) {
var pageToken, page;
do {
page = AdminDirectory.Chromeosdevices.list(
'my_customer',
{
orderBy: 'lastSync',
maxResults: 100,
pageToken: pageToken
}
);
var found = false;
var devices = page.chromeosdevices;
if (devices) {
for (i in devices) {
var device = devices[i];
if (device.recentUsers && !found) {
var users = device.recentUsers;
var email = users[0].email;
if (email == username) {
var serial = device.serialNumber;
var model = device.model;
return [serial, model];
}
}
}
} else {
Logger.log('end of pages/no devices found.');
}
pageToken = page.nextPageToken;
} while (pageToken);
}