VBS/WSH/JS - Скрипт для добавление пользователя в группу AD

Ответить
Аватара пользователя
HuppeR

VBS/WSH/JS - Скрипт для добавление пользователя в группу AD

Сообщение HuppeR »

Ребят есть код, в него нужно добавить кусок который бы добавлял пользователя в переменную группу AD. Ищу сам тоже, но как всегда нужно быстро, может кто раньше меня найдет. Буду очень признателен, спасибо.



Код: Выделить всё

<JOB id="ADNewUser">
                <script language="JScript">
                               var sLastName, sFirstName, sMiddleName, sComment, sLogin, sPassword, sDomain;
                               var oADUsers, oItem, oEnum, bIsExist, i;
                               // Сверяем аргументы запуска скрипта. Если кол-во аргументов меньше 7, то выводим помошь
                               if((WScript.Arguments.length < 7) || ((WScript.Arguments.length == 1) && (WScript.Arguments(0) == "/?")))
                               {
                                               printHelp();
                               }
                               else
                               {
                                               // Фамилия нового пользователя
                                               sLastName = WScript.Arguments(0);
                                               // Имя нового пользователя
                                               sFirstName = WScript.Arguments(1);
                                               // Первая буква отчества нового пользователя
                                               sMiddleName = WScript.Arguments(2);
                                               // Коментарий. Подразделение нового пользователя
                                               sComment = WScript.Arguments(3);
                                               // Логин нового пользователя
                                               sLogin = WScript.Arguments(4);
                                               // Пароль нового пользователя
                                               sPassword = WScript.Arguments(5);
                                               // Домен нового пользователя
                                               sDomain = WScript.Arguments(6);
                                               // Если данные нового пользователя корректны, и он не зарегистрирован в домене, то запускается процесс создания пользователя
                                               if(checkUserInfo())
                                               {
                                                               if(sDomain == "domain.ru")
                                                               {
                                                                              oADUsers = GetObject("LDAP://OU=AutoCreation,DC=domain,,DC=ru");
                                                               }
                                                               else
                                                               {
                                                                              oADUsers = GetObject("LDAP://OU=AutoCreation,DC=ctx,DC=domain,DC=ru");
                                                               }
                                                               oEnum = new Enumerator(oADUsers);
                                                               if(!isUserExist())
                                                               {
                                                                              // Создаём пользователя
                                                                              createUser();
                                                               }
                                               }
                               }
                               WScript.Quit();
                               // Вывод помощи
                               function printHelp()
                               {
                                               WScript.Echo("СИНТАКСИС:\n");
                                               WScript.Echo("C:\\cscript ADNewUser.wsf Фамилия Имя Отчество комментарий логин пароль домен\n\n");
                                               WScript.Echo("Домен:\n");
                                               WScript.Echo("1 - domain.ru\n");
                                               WScript.Echo("2 - ctx.domain.ru\n\n");
                                               WScript.Echo("ПРИМЕР:\n");
                                               WScript.Echo("C:\\cscript ADNewUser.wsf \"Иванов\" \"Иван\" \"И\" \"УРП\" \"newuser\" \"q1239\" \"1\"\n\n");
                               }
                               // Проверка корректности данных пользователя
                               function checkUserInfo()
                               {
                                               bIsOk = false;
                                               if((sLastName != null) && (sFirstName != null) && (sMiddleName != null) && (sComment != null) && (sLogin != null) && (sPassword != null) && (sDomain != null))
                                               {
                                                               if((sLastName.length >= 2) && (sFirstName.length >= 2) && (sMiddleName.length == 1) && ((sComment.length >= 2) && (sComment.length <= 1000)) && (sLogin.length >= 3) && (sPassword.length >= 4) )
                                                               {
                                                                              bIsOk = true;
                                                               }
                                                               else
                                                               {
                                                                              WScript.Echo("Неверная информация о пользователе!\n\n");
                                                                              printHelp();
                                                               }
                                               }
                                               else
                                               {
                                                               WScript.Echo("Неполная информация о пользователе!\n\n");
                                                               printHelp();
                                               }
                                               return bIsOk;
                               }
                               // Проверка на наличие пользователя в домене
                               function isUserExist()
                               {
                                               bIsExist = false;
                                               while(!oEnum.atEnd())
                                               {
                                                               oItem = oEnum.item();
                                                               if(oItem.SamAccountName.toUpperCase() == sLogin.toUpperCase())
                                                               {
                                                                              bIsExist = true;
                                                                              WScript.Echo("Пользователь \"" + oItem.SamAccountName + "\" уже зарегистрирован в домене!\n\n");
                                                                              break;
                                                               }
                                                               oEnum.moveNext();
                                               }
                                               return bIsExist;
                               }
                               // Создание нового пользователя
                               function createUser()
                               {
                                               var oNewUser = oADUsers.Create("user", "cn=" + sFirstName + " " + sMiddleName + ". " + sLastName);
                                               // Записываем атрибуты нового пользователя
                                               oNewUser.Put("samAccountName", sLogin);
                                               if(sDomain == "domain.ru")
                                               {
                                                               oNewUser.Put("userPrincipalName", sLogin + "@domain.ru");
                                               }
                                               else
                                               {
                                                               oNewUser.Put("userPrincipalName", sLogin + "@ctx.domain.ru");
                                               }
                                               oNewUser.Put("initials", sMiddleName + ".");
                                               oNewUser.Put("givenName", sFirstName);
                                               oNewUser.Put("sn", sLastName);
                                               oNewUser.Put("displayName", sFirstName + " " + sMiddleName + ". " + sLastName);
                                               oNewUser.Put("description", sComment);
                                               oNewUser.setInfo();
                                               // Записываем спец. атрибуты нового пользователя (0x00000002 - включить пользователя, 0x00010000 - пароль пользователя не ограничен по сроку действия)
                                               var sVars = oNewUser.Get("userAccountControl");
                                               sVars = sVars ^= 0x00000002;
                                               sVars = sVars ^= 0x00010000;
                                               oNewUser.Put("userAccountControl", sVars);
                                               oNewUser.setInfo();
                                               // Записываем пароль нового пользователя
                                               oNewUser.SetPassword(sPassword);
                                               oNewUser.setInfo();
                               }
                </SCRIPT>
</JOB>
Ответить

Вернуться в «Скриптовые языки администрирования Windows»