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

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

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


Сообщения: 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