Сто лет тому назад я управлялся с подобной сетью. Вот .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. На остальном не пробовал. Скрипт вытащил из древнего архива
Надо подготовить скрипт с актуальными названиями групп и описанием пользователей. Можно запустить на каждом компьютере локально, если есть права на создание пользователей. При наличии прав можно запустить и удалённо, указав имя произвольного имеющегося компьютера.
На компе создаются нужные группы. В созданных группах создаются пользователи. Созданных пользователей можно прописать также и в других группах, если они есть на компьютере, например, добавить в группу Администраторы локального или указанного компьютера.
Примечание: Любое совпадение имён или названий случайно