[Из песочницы] Ещё один пример автоматизации или PowerShell + Google Apps Script
Лень — двигатель прогресса…
Вот и я, найдя немного свободного времени, решил автоматизировать достаточно рутинную для каждого админа задачу — создание и отключение пользователей.
1. PowerShell
Началось все с создания скрипта на PowerShell, где с консоли предлагалось ввести данные пользователя. В результате создавался пользователь AD в соответствующем OU, с заполненными полями.
2. Google Apps Script
Далее создаем почтовый ящик, который в моем случае хостится на Gmail. Благодаря этому можно использовать замечательный сервис Apps Script. В его основе лежит JavaScript. Обилие документации и небольшой опыт программирования помог разобраться с этим делом. Здесь аналогично передаем данные функции — аккаунт создан.
Этим же инструментом переделываем шаблон Welcome-письма, заменяя %username% и т.д. на реальные данные и отправляем pdf HR-ам, боссу, новому пользователю и конечно себе.
function createUser(name, lastName, gender, groups, password, title, department) {
var userMail = email((name + "." + lastName).toLowerCase());
var admin = email("admin");
var recipients = admin + "," + email("hr") + "," + email("boss");
var subject = "Welcome! " + name + " " + lastName + " - " + title;
var body = "Welcome to the jungle";
var attachment = makeWelcome(name, lastName, password);
var resource = {
"name": {
"familyName": lastName,
"givenName": name
},
"password": password,
"primaryEmail": userMail,
"changePasswordAtNextLogin": true,
"organizations": [{
"title": title,
"department": department
}],
"gender": {
"type": gender
}
}
AdminDirectory.Users.insert(resource);
Logger.log(userMail + "'S BEEN CREATED");
for (var i = 0; i < groups.length; i++) {
addMember(groups[i], userMail);
}
var options = {
"attachments": [attachment],
"name": "Sysadmin"
}
MailApp.sendEmail(recipients, subject, body, options);
MailApp.sendEmail(userMail, "Welcome!", body, options);
}
3. UI, автоматизация
Конечно, ввод данных с двух консолей — не тот результат, который хотелось бы получить. По-этому была создана гугл-форма для данных. Скрипты добавлены в планировщик на повтор каждые 5 мин.
После отработки гугл-скрипта, через Backup and Sync (GDrive) данные ввиде текстового файла передаются в локальную сеть. Здесь за дело берется PowerShell — парсит файл и создает пользователя AD. Вот теперь красиво!