Я работаю в школе, которая выпускает 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);
}