Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - Скрипт для автоматического создание учетных записей пользователей Windows

Ответить
Настройки темы
Любой язык - Скрипт для автоматического создание учетных записей пользователей Windows

Новый участник


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

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


Здравствуйте форумчане! Необходим ваш совет и помощь

Имеется Windows Server 2016, Active Directory в сети не используется, сеть - простая рабочая группа с поднятием списка компьютеров сети мастер-браузером

Задача создать 50 учетных пользователей и разнести их по группам, хочется это делать автоматически, потому как будут и другие еще сервера , на которые нужно прописывать тех же пользователей, а времени на долгоиграющие настройки нет

как можно автоматизировать процесс, чтобы вручную не тыкать 50 раз "Новый пользователь" в оснастке "Локальные пользователи и группы" > "Пользователи" ?

В сети много написано по автоматическому созданию пользователей в AD, но мне это не подходит, нужно создать простые учетки сразу с паролем, описанием и разнесением по группам.

Если кто сможет дать хотя бы пример скрипта.

Првильно ли я думаю, что механизм создания учеток примерно одинаков для всех систем начиная от Windows XP, и можно ли на всех системах использовать однотипный скрипт?

Заранее благодарю за интерес к проблеме и любой дельный совет. AD создавать не предлагайте, в моих условиях это не возможно, только рабочая группа.

Отправлено: 10:55, 20-07-2018

 

Ветеран


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

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


PowerShell:

The new local user and group cmdlets in PowerShell 5.1 - https://4sysops.com/archives/the-new...owershell-5-1/

Код: Выделить весь код
PS > Get-Command -Module Microsoft.PowerShell.LocalAccounts

CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Cmdlet          Add-LocalGroupMember                               1.0.0.0    Microsoft.PowerShell.LocalAccounts
Cmdlet          Disable-LocalUser                                  1.0.0.0    Microsoft.PowerShell.LocalAccounts
Cmdlet          Enable-LocalUser                                   1.0.0.0    Microsoft.PowerShell.LocalAccounts
Cmdlet          Get-LocalGroup                                     1.0.0.0    Microsoft.PowerShell.LocalAccounts
Cmdlet          Get-LocalGroupMember                               1.0.0.0    Microsoft.PowerShell.LocalAccounts
Cmdlet          Get-LocalUser                                      1.0.0.0    Microsoft.PowerShell.LocalAccounts
Cmdlet          New-LocalGroup                                     1.0.0.0    Microsoft.PowerShell.LocalAccounts
Cmdlet          New-LocalUser                                      1.0.0.0    Microsoft.PowerShell.LocalAccounts
Cmdlet          Remove-LocalGroup                                  1.0.0.0    Microsoft.PowerShell.LocalAccounts
Cmdlet          Remove-LocalGroupMember                            1.0.0.0    Microsoft.PowerShell.LocalAccounts
Cmdlet          Remove-LocalUser                                   1.0.0.0    Microsoft.PowerShell.LocalAccounts
Cmdlet          Rename-LocalGroup                                  1.0.0.0    Microsoft.PowerShell.LocalAccounts
Cmdlet          Rename-LocalUser                                   1.0.0.0    Microsoft.PowerShell.LocalAccounts
Cmdlet          Set-LocalGroup                                     1.0.0.0    Microsoft.PowerShell.LocalAccounts
Cmdlet          Set-LocalUser                                      1.0.0.0    Microsoft.PowerShell.LocalAccounts
Потребуются New-LocalUser - https://docs.microsoft.com/en-us/pow...powershell-5.1

Код: Выделить весь код
PS C:\> $Password = Read-Host -AsSecureString
PS C:\> New-LocalUser "User03" -Password $Password -FullName "Third User" -Description "Description of this account."
Name    Enabled  Description
----    -------  -----------
User03  True     Description of this account.
Add-LocalGroupMember - https://docs.microsoft.com/en-us/pow...powershell-5.1
Код: Выделить весь код
PS C:\> Add-LocalGroupMember -Group "Administrators" -Member "Admin02", "MicrosoftAccount\username@Outlook.com", "AzureAD\DavidChew@contoso.com", "CONTOSO\Domain Admins"
Это сообщение посчитали полезным следующие участники:

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



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


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

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


Спасибо, буду пробовать

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


Ветеран


Contributor


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

Профиль | Отправить 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


Ветеран


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

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


Цитата megaloman:
Работало в XP, Server 2003, кажется в Win 7. На остальном не пробовал. »
Работать должно от NT4 и по сю пору.
Это сообщение посчитали полезным следующие участники:

Отправлено: 12:14, 20-07-2018 | #5


Новый участник


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

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


Kazun, здравствуйте! мне нужно задать имя компьютера, изменить рабочую группу, активировать встроенную учётку админа с вводом пароля + подтверждение пароля (символы должны скрываться, либо звёздочки) вот мой скрипт

@set /p comp_name= "name Computer= -->

echo comp_name - %comp_name%
wmic computersystem where name="%computername%" rename "%comp_name%"

дальше не могу разобраться как это реализовать

@set /p pass= "введите пароль= -->
@set /p pass2= "подтвердите пароль= -->
if "%pass%"=="%pass2%" do net user Администратор %pass2% /active
else #вернуться к строке @set /p pass= "введите пароль= -->
#помогите пожалуйста разобраться с этой задачей#

Отправлено: 09:08, 23-07-2018 | #6

it3 it3 вне форума

Пользователь


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

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


Не стал создавать новую тему, нашёл подобную.
Вопрос в следующем. У меня есть команда:
Код: Выделить весь код
New-ADUser -Name "Ivanov Ivan Ivanovich" -DisplayName "Ivanov Ivan Ivanovich" -GivenName "Ivan Ivanovich" -Surname "Ivanov" -SamAccountName "ivanov.ii" -UserPrincipalName "ivanov.ii@domain.ru" -Path "OU=Users,DC=domain,DC=ru" -CannotChangePassword $false -ChangePasswordAtLogon $true -AccountPassword (ConvertTo-SecureString -AsPlainText "SuperPassword" -Force) -Enabled $true
Можно ли сюда же "прикрутить" добавление в группу AD? Чтобы было всё в одной команде. Сейчас это делаю таким образом:
Код: Выделить весь код
Add-AdGroupMember -Identity namegroup -Members ivanov.ii

Последний раз редактировалось it3, 11-09-2019 в 10:37.


Отправлено: 06:37, 11-09-2019 | #7


Аватара для DJ Mogarych

fascinating rhythm


Moderator


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

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


Цитата it3:
Можно ли сюда же "прикрутить" добавление в группу AD? Чтобы было всё в одной команде. »
Нет, т. к. это разные функции.

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)


Отправлено: 15:48, 11-09-2019 | #8


Новый участник


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

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


Очень прошу поделиться рабочим скриптом для создания пользователя с правами администратора.
Нужно скрипт добавить в планировщик.

Отправлено: 09:18, 24-10-2021 | #9


Аватара для Elven

Ветеран


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

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


Создание пользователя в планировщик? Какая цель этим преследуется?
Ну и рабочий скрипт здесь в этой ветке уже есть и для создания пользователя и для добавления его в группу администраторов. см. #2
Это сообщение посчитали полезным следующие участники:

Отправлено: 13:50, 24-10-2021 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - Скрипт для автоматического создание учетных записей пользователей Windows

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Служебные - UserMake - создание учетных записей пользователей на Т-40/Т-13/Т-12/Т-0 Mr dUSHA Наборы обновлений для Windows XP/2003/Windows 7 141 25-11-2023 22:16
2016 - Автоматическое создание учетных записей пользователей SLAVUNCHIK Windows Server 2016/2019/2022 5 20-07-2018 20:03
[статья] Создание учетных записей и настройка автоматического входа в систему Vadikan Автоматическая установка Windows 11 / 10 / 8 / 7 / Vista 20 04-01-2013 14:07
Доступ - [решено] Создание учетных записей пользователей с определенным набором прав Mist1 Microsoft Windows 2000/XP 2 20-12-2010 19:04
Создание учетных записей пользователей sergelen Хочу все знать 6 06-10-2006 03:19




 
Переход