Войти

Показать полную графическую версию : Создать нового пользователя и ...


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

megaloman
12-12-2018, 15:04
DarckSol, /********************************************************************/
/* Имя: 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
Сценарий Create a local user account and add it to administrators group (https://gallery.technet.microsoft.com/scriptcenter/Create-a-local-user-241756c7)

DJ Mogarych
12-12-2018, 15:52
Вот как я делал батником:
net user chuvak1 P@ssw0rd! /add
net localgroup Администраторы chuvak1 /add
net localgroup Administrators chuvak1 /add

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




© OSzone.net 2001-2012