Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Ветеран


Contributor


Сообщения: 2735
Благодарности: 1699

Профиль | Отправить PM | Цитировать


SLAVUNCHIK,
Сто лет тому назад я управлялся с подобной сетью. Вот .js (сохранить в Windows-1251 кодировке).
Код: Выделить весь код
/********************************************************************/
/* Имя: Add_Groups_Users.js                                         */
/* Язык: JScript                                                    */
/* Описание: Создание групп на компьютере                           */
/*           Создание пользователей на компьютере                   */
/*           Помещение пользователей в группы на компьютере         */
/********************************************************************/

var NetWork=WScript.CreateObject("WScript.Network");
var NameComp=NetWork.ComputerName;     // Имя текущего компьютера
//var NameComp="Afonchenko";              // Имя произвольного компьютера

var WshShell=WScript.CreateObject("WScript.Shell"),
    ComputerObj=GetObject("WinNT://"+NameComp),       //Экземпляр объекта Computer
    Mess="";                                           //Текст сообщения

// Делаю группы

Make_Group("Hunter_Dog","Охотники за собаками");
Make_Group("Hunter_Cat","Охотники за кошками");
Make_Group("Hunter_Ghost","Охотники за привидениями");
Make_Group("Hanter_Boss","Руководители живодёрской организации");
WScript.Echo(Mess);

// Делаю юзеров: Группа, Сетевое Имя, Полное имя, Должность, Пароль

///---------------------------------------------------------------------------------------------------------
Make_User("Hunter_Dog","Ivanov_I_I","Иванов Иван Иванович","Главный убийца собак","123K456563"); 
Make_User("Hunter_Dog","Petrov_I_I","Петров Иван Иванович","Ведущий убийца собак","444@666456"); 
Make_User("Hunter_Dog","Poletaeva_R_V","Полетова Розалинда Вадимовна","Статист отдела собак","");

///---------------------------------------------------------------------------------------------------------
Make_User("Hunter_Сat","Tramp_I_I","Трамп Иван Иванович","Главный убийца кошек","123K456563"); 
Make_User("Hunter_Сat","Obama_I_I","Обама Иван Иванович","Ведущий убийца кошек","444@666456"); 
Make_User("Hunter_Сat","Nuland_R_V","Нуланд Розалинда Вадимовна","Статист отдела кошек","");

///---------------------------------------------------------------------------------------------------------
Make_User("Hunter_Boss","Noroads_I_I","Бездорожный Иван Иванович","Начальник всех живодёров","123K456563"); 
Make_User("Hunter_Boss","Slavunchik_I_I","Славунчик Иван Иванович","Зам по информационным технологиям","444@666456"); 

///---------------------------------------------------------------------------------------------------------

// Помещаю юзеров в группы, отличные от первоначальных

UserInGroup(NameComp,"Администраторы","Slavunchik_I_I");
//UserInGroup(NameComp,"Administrators","Slavunchik_I_I");

/*************  Конец *********************************************/
// Функции

// Создаю группу с именем ng, описанием dg
function Make_Group(ng,dg)
{
  var i_err=true;
  var GroupObj=ComputerObj.Create("group",ng);  //Создаем объект класса Group
  GroupObj.Description=dg;                      //Меняем описание
  try {GroupObj.SetInfo()};                     //Сохраняем информацию на компьютере
  catch (e)
   {
     i_err=false;
     Mess+="\n Группа "+ng+" "+e.description;
   }
  if (i_err)
   {
     Mess+="\n Группа "+ng+" создана";
   }
}

// Создаю пользователя в группе ng 
//               с именем входа nu
//                   полное имя fu
//                     описание du
//             начальный пароль pu
//
function Make_User(ng,nu,fu,du,pu)
{
  var i_err=true;
  var Mess;
  var UserObj=ComputerObj.Create("user",nu);       //Экземпляр объекта User

  UserObj.FullName=fu;                             //Добавляем полное имя
  UserObj.Description=du;                          //Добавляем описание созданного пользователя
  UserObj.SetPassword(pu);                         //Добавляем пароль

  try {UserObj.SetInfo()};                         //Сохраняем информацию на компьютере
  catch (e)
   {
     i_err=false;
     Mess="\n Безуспешно пользователь "+nu+" "+e.description;
   }
  if (i_err)
   {
     Mess="\n Пользователь "+nu+" создан";
   }

   i_err=YesNever(nu);

  
   if (ng != "")  {UserInGroup(NameComp,ng,nu)};

   WshShell.Popup(Mess,1,"Создаем пользователей",64);

}

// В компьютере nc в группу ng помещаю пользователя nu
function UserInGroup(nc,ng,nu)
{
var GroupObj= GetObject("WinNT://"+nc+"/"+ng),     //Связываемся с компьютером
    UserObj,                                       //Экземпляр объекта User
    Mess;

  try {GroupObj.Add("WinNT://"+nc+"/"+nu)};       //Сохраняем информацию на компьютере
  catch (e)
   {
      Mess="\n Безуспешно в группу "+nu+" "+e.description;
      WshShell.Popup(Mess,1,"Ошибка при группировке",64);
   }
}

//// ставим юзеру птичку пароль никогда не меняется
function YesNever(NUser)
{
  var OUser,ltry=true;
  try     // Пытаемся найти имя в текущем компьютере
  {
    OUser=GetObject("WinNT://"+NameComp+"/"+NUser+",user");
  }

  catch (e)
  {
    ltry=e==0;
  }

  if (ltry)
  {
    var Never=OUser.Get("UserFlags");
    OUser.Put("UserFlags",0x10000);
    OUser.SetInfo();
  }
  return true;
}
Работало в XP, Server 2003, кажется в Win 7. На остальном не пробовал. Скрипт вытащил из древнего архива
Надо подготовить скрипт с актуальными названиями групп и описанием пользователей. Можно запустить на каждом компьютере локально, если есть права на создание пользователей. При наличии прав можно запустить и удалённо, указав имя произвольного имеющегося компьютера.
На компе создаются нужные группы. В созданных группах создаются пользователи. Созданных пользователей можно прописать также и в других группах, если они есть на компьютере, например, добавить в группу Администраторы локального или указанного компьютера.

Примечание: Любое совпадение имён или названий случайно

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 20-07-2018 в 17:06.


Отправлено: 11:48, 20-07-2018 | #4