Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Создать нового пользователя и ... (http://forum.oszone.net/showthread.php?t=338194)

DarckSol 12-12-2018 12:25 2845503

Создать нового пользователя и ...
 
Добрый день. Нужна реализация на VBS / PS1 .
Создать нового пользователя и добавление его в локальную группу админов....
Спасибо......

megaloman 12-12-2018 15:04 2845541

DarckSol,
Лет 10 назад делал на JS
Код:

/********************************************************************/
/* Имя: Add_and_Del_1_User.js                                      */
/* Язык: JScript                                                    */
/*          Создание пользователя на компьютере в имеющейся группе */
/*          Удаление другого пользователя                          */
/********************************************************************/

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

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

// Делаю юзера
LastErr=Make_User("Администраторы","Putin_VV","Путин Владимир Владимирович","Президент РФ","PaRoLe-PaRole");

var DelUser="Medvedev";  // Имя удаляемого юзера

if (LastErr) {LastErr=Dele_User(DelUser)};                // Удаляю юзера, если юзер сделан успешно
if (LastErr) {Mess=Mess+"\n Пользователь "+DelUser+" удален"} else {Mess=Mess+"\n !!! Пользователь "+DelUser+" не удален"}

WshShell.Popup(Mess,10,"Пересоздаем пользователя",64);

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

// Удаляю пользователя с именем входа nu
//
function Dele_User(nu)
{
  var i_err=true;
  var Mess;

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

//  WshShell.Popup(Mess,10,"Удаляем пользователей",64);

  return i_err;

}


// Создаю пользователя в группе ng
//              с именем входа nu
//                  полное имя fu
//                    описание du
//            начальный пароль pu
//
// Сообщение о результате работы Mess должно быть описано и определено до вызова
//
function Make_User(ng,nu,fu,du,pu)
{
  var i_err=true;
  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 != "" & i_err) 
  {
    i_err=UserInGroup(NameComp,ng,nu);
    if (i_err) {Mess=Mess+" в группе "+ng} else {Mess=Mess+", но в группу "+ng+" не помещен!!!"}
  }

  return i_err;

}

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

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


//// ставим юзеру птичку пароль никогда не меняется
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;
}


Iska 12-12-2018 15:44 2845549

Сценарий Create a local user account and add it to administrators group

DJ Mogarych 12-12-2018 15:52 2845553

Вот как я делал батником:
Код:

net user chuvak1 P@ssw0rd! /add
net localgroup Администраторы chuvak1 /add
net localgroup Administrators chuvak1 /add

Полагаю, под PS1 переделать элементарно.


Время: 08:50.

Время: 08:50.
© OSzone.net 2001-