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

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

Ветеран


Contributor


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

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


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;
}

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


Отправлено: 15:04, 12-12-2018 | #2