Войти

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


dvassilyev
03-08-2009, 16:35
Задачка такая, нужно каждому юзеру прописать должность и департамент
Эти должности записаны в xls файле.
Полный формат файла:
Имя, Фамилия, Должность, Департамент.
Нужно - сопоставляя First Name/ Last Name из АД с Имя/Фамимлия в xls файле - вставлять в поля AD: Title, Department - должность и департамент.

amel27
04-08-2009, 08:45
1. считаем, что все объекты пользователей в одном контейнере (без субконтейнеров)
2. чтобы не заморачиваться с XLS, возьмем текстовый файл, разделенный запятыми (как указано)

strIN = "users.txt"
strOU = "ou=Department,dc=MyDomain,dc=com"

' Загрузка файла в массив
arrFile = LoadFile (strIN, 4, ",")
' Подключаемся к контейнеру AD
Set objOU = GetObject("LDAP://" & strOU)
' Фильтруем пользователей
objOU.Filter = Array("User")

' Перебираем пользователей в контейнере
For Each objUser In objOU
' Ищем пользователя в массиве
For intLine=0 To UBound(arrFile, 2) - 1
If StrComp(objUser.givenName, arrFile(0, intLine), 1) = 0 Then
If StrComp(objUser.sn, arrFile(1, intLine), 1) = 0 Then
' Задаем атрибуты
objUser.Put "title", arrFile(2, intLine)
objUser.Put "department", arrFile(3, intLine)
' Сохраняем изменения
objUser.SetInfo
End If
End If
Next
Next

Function LoadFile(strFile, intCols, chrDelim)
Dim strLine, arrLine, arrFile(), intLine, iCol
Dim objFSO, objFile, objReg

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile(strFile, 1)

Set objReg = CreateObject("VBScript.RegExp")
objReg.Pattern = "^([^" & chrDelim & "]*,){" & intCols-1 & "}"

Do While objFile.AtEndOfStream <> True
strLine = objFile.ReadLine
If objReg.Test(strLine) Then
arrLine = Split(strLine, chrDelim)

intLine = intLine + 1
ReDim Preserve arrFile(intCols, intLine)

For iCol=0 To intCols-1
arrFile(iCol,intLine-1) = arrLine(iCol)
Next
End If
Loop

objFile.Close
LoadFile = arrFile
End Function

dvassilyev
04-08-2009, 08:56
Спасибо большое, буду тестировать.




© OSzone.net 2001-2012