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

Компьютерный форум OSzone.net » Серверные продукты Microsoft » Microsoft Windows NT/2000/2003 » Создание пользователей скриптом из Excel

Ответить
Настройки темы
Создание пользователей скриптом из Excel

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


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

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


Собираюсь создать очень много пользователей через Excel. Предварительно забив их туда (в ексель). Забивать буду:
- Фамилия (1 столбец);
- Имя (2 столбец);
- Отчество (3 столбец);
- Имя входа в домен - тобишь пользователь (4 столбец);
- Пароль (5 столбец);
- OU (6 столбец);
Как в екселе сделать, чтобы 4 столбец формировался автоматом, т.е. если 1,2,3: Сидоров Антон Борисович, то 4 будет состоять из полной фамилии + инициалы - СидоровАБ

P.S. может у кого-нибудь есть и скрипт для добавления в AD пользователей из Excel. Буду очень благодарен.

Отправлено: 19:09, 25-08-2006

 

Аватара для Fighter

Ветеран


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

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


а поиск?
fix! Импорт/экспорт пользователей Active Directory
ЗЫ. только формат сего файла есть штука не совсем произвольная.. Впрочем, чем труднее задача - тем интереснее решение

-------
жить!!!


Отправлено: 20:22, 25-08-2006 | #2



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

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


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


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

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


За скрипт спасиба, а как на счет 4 столбца, как в Экселе это сделать чтобы имя пользователя формировалось из фамилии и первых букв имени и отчества

Отправлено: 20:30, 25-08-2006 | #3


Аватара для Fighter

Ветеран


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

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


вряд ли данный вопрос отностится к компетенции раздела Windows2003
и гораздо эффективнее, в плане его разрешения, было бы вопрошать в разлеле програмирования
ибо, ИМХО, без помощи VB эту дилему не разрешить
ЗЫ. поправьте если ошибаюсь

-------
жить!!!


Отправлено: 22:31, 25-08-2006 | #4


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


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

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


Вот написал скрипт на основе примеров. Сделал с подробными комментариями. Вроде правильно? Пока не стал проверять на серваке, вдург косяк какой то
Вопрос - как можно добавить пользователю не в одну группу, а сразу несколько?

Код: Выделить весь код
'******************************************************************************************
Option Explicit 'директива - определение переменных в сценарии при помощи оператора Dim
Dim intRow 'определение переменной строки Excel
Dim objExcel, objWorkbook, objContainer, objOU, objUser 'определение указателей-переменных
Dim strContainer, strOU, strSheet 'определение переменных
Dim strSam, strCN, strFirst, strLast, strPWD, strGrp 'определение переменных атрибутов пользователя
'******************************************************************************************
strSheet = "C:\Users.xls" 'переменная, хранящая путь к файлу пользователей
'******************************************************************************************
Set objExcel = CreateObject("Excel.Application") 'создание объекта Excel
Set objWorkbook = objExcel.Workbooks.Open(strSheet) 'открытие файла пользователей
'******************************************************************************************
intRow = 3 'задание начальной строки Excel для считывания данных пользователя
Do Until objExcel.Cells(intRow,1).Value = "" 'начало цикла обработки строк Excel
	strSam = Trim(objExcel.Cells(intRow,1).Value) 'получение SAM пользователя
	strCN = Trim(objExcel.Cells(intRow,2).Value) 'получение общего имени пользователя
	strFirst = Trim(objExcel.Cells(intRow,3).Value) 'получение имени пользователя
	strLast = Trim(objExcel.Cells(intRow,4).Value) 'получение фамилии пользователя
	strOU = Trim(objExcel.Cells(intRow,5).Value) 'получение OU пользователя
	strPWD = Trim(objExcel.Cells(intRow,6).Value) 'получение пароля пользователя
	strGrp = Trim(objExcel.Cells(intRow,7).Value) 'получение группы пользователя
	'*********************************************************************************
	Set objContainer = GetObject("LDAP://ou=" & strOU & ",dc=school,dc=local")
	'привязка с объектом OU
	Set objUser = objContainer.Create("User", "cn=" & strCN) 'создание учетной записи CN
	objUser.sAMAccountName = strSam 'присвоение SAM пользователю
	objUser.givenName = strFirst 'присвоение имени пользователя
	objUser.sn = strLast 'присвоение фамилии пользователя
	objUser.UserAccountControl = 512 'параметр учетной записи Normal_Account
	objUser.pwdLastSet = 0 'не требовать смены пароля при следующем входе
	objUser.SetInfo 'записываем новый объект (пользователя) в каталог
	objUser.memberOf = ("CN=" & strGrp & ",OU=" & strOU & ",dc=school,dc=local")
	objUser.SetPassword strPWD 'установка пароля пользователю
	'objUser.SetInfo 'записываем новый объект (пользователя) в каталог
	'*********************************************************************************
	intRow = intRow + 1 'переход на следующую строку Excel
Loop 'конец цикла обработки строк Excel
'******************************************************************************************
objExcel.Quit 'закрытие Excel
WScript.Quit 'завершение выполнение скрипта
Скрипт берет данные из файла ексель. В нем 7 колонок: SAM-имя, общее имя (CN), имя, фамилия, подразделение (OU), пароль (PWD), группа (Grp). Организован цикл, пока первая ячейка текущей строки не станет равной пустому значению (Value = "").
В конце кажого цикла увеличиваем значение номера текущей строки (intRow = intRow +1). Оператор Trim() отсекает лишнии пробелы слева/справа в считанной ячейке.

P.S. и как всетаки в экселе сформировать SAM-имя на основе фамилии и инициалов?:

Последний раз редактировалось mikechaik, 26-08-2006 в 13:58.


Отправлено: 09:45, 26-08-2006 | #5

dww dww вне форума

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


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

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


используем текстовые функции Exell, примерно так :

=CONCATENATE(A1;LEFT(B1;1);LEFT(C1;1))

Отправлено: 10:23, 26-08-2006 | #6


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


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

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


Вроде разобрался с формулами. Вопрос по ходу работы возник - скрипт будет считывать из ячейки формулу или ее значение? Если формулу, то как сделать чтобы брал значение. Можно наверно скопировать и вставить через специальную вставку - вставить значение. Но так потеряем функцию Не хотелось бы

У меня стиль сылок R1C1 (Параметры -> Общие), т.е. столбцы в екселе обзываются не буквами А, B... а цифрами. Есть формула =R3C1&" "&R3C2&" "&ПСТР(R3C3;1;1)&"." Пытаюсь ее как раньше потянуть вниз чтобы формула распросранилась на нижележащии ячейки, но копируется формула как есть. А мне надо, чтобы значения строк менялись в зависимости от номера строки, т.е. R.

Все разобрался. Оказывается стиль сылок R1C1 по умолчанию имеет абсолютный путь, относительный нужно использовать в квадратных скобках

Последний раз редактировалось mikechaik, 27-08-2006 в 20:14.


Отправлено: 19:12, 27-08-2006 | #7



Компьютерный форум OSzone.net » Серверные продукты Microsoft » Microsoft Windows NT/2000/2003 » Создание пользователей скриптом из Excel

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
VBS/WSH/JS - Создание папки домашней пользователя логон-скриптом. Есть вопрос. AlexStud Скриптовые языки администрирования Windows 1 20-03-2009 16:38
Проблема с скриптом входа пользователей в систему Dmitriy_Demon Microsoft Windows NT/2000/2003 2 12-01-2008 13:26
excel | создание списков BRAT2 Хочу все знать 2 02-02-2006 11:33
Создание отчетов в Excel vunder Программирование и базы данных 2 10-01-2005 16:21
VBA - Создание файлов *.xls из VBA Excel.я Bob7 Программирование и базы данных 1 06-07-2004 14:17




 
Переход