Option Explicit ' based on http://www.microsoft.com/technet/scriptcenter/guide/sas_ads_scsw.mspx Const ForReading = 1, ForWriting = 2, ForAppending = 8 Const ADS_UF_DONT_EXPIRE_PASSWD = &H10000 Dim objRootDSE, objDomain, objContainer, objOU, objGroup, objLeaf Dim i, j, xC, objArgs, objFSO, objFile, sParamFN Dim strName, Flag, newFlag Dim AP, sNames Sub CreateCourseOU(iCourse) ' Создать новый OU ' Set objDomain = GetObject("LDAP://ou=Students,ou=EDU_users,dc=edu,dc=ntiustu,dc=local") Set objDomain = GetObject("LDAP://ou=Students,dc=edu,dc=ntiustu,dc=local") Set objOU = objDomain.Create("organizationalUnit", "ou=Course"+CStr(iCourse)) objOU.SetInfo End Sub ' Создать новую группу "students2005" в OU="EDU_users" ' Sub CreateGroup ' Set objOU = GetObject("LDAP://ou=EDU_users,dc=edu,dc=ntiustu,dc=local") ' Set objGroup = objOU.Create("group", "cn=students2005") ' objGroup.Put "sAMAccountName", "students2005" ' objGroup.SetInfo 'End Sub ' процедура создания юзера Sub CreatAD_User(sParam) ' WScript.Echo sParam AP = Split(sParam, ",", -1, 1) xC = UBound(AP) For j=0 To xC ' WScript.Echo AP(j) Next WScript.Echo AP(2) sNames = Split(AP(3), " ", -1, 1) Set objContainer = GetObject("LDAP://ou=Course"+CStr(AP(6))+",ou=Students,dc=edu,dc=ntiustu,dc=local") Set objLeaf = objContainer.Create("User", "cn=" & AP(2) ) objLeaf.Put "sAMAccountName", AP(0) objLeaf.Put "description", "Студент 2006 " & AP(5) objLeaf.FullName = AP(3) objLeaf.FirstName = sNames(0) objLeaf.LastName = sNames(1)&" "& sNames(2) objLeaf.userPrincipalName = AP(0)& "@" & "edu.ntiustu.local" objLeaf.SetInfo ' Записываем objLeaf.SetPassword AP(4) ' ПАРОЛЬ. После того как юзер создан objLeaf.Put "Title", AP(1) ' Было так "Студент "+AP(5) Теперь тут будет храниться код objLeaf.Put "Division", AP(5) objLeaf.Put "Department", "Факультет "& AP(7) Flag = objLeaf.Get("UserAccountControl") newFlag = Flag or ADS_UF_DONT_EXPIRE_PASSWD objLeaf.Put "userAccountControl", newFlag objLeaf.AccountDisabled = False objLeaf.SetInfo Set objGroup = GetObject("LDAP://cn=Students,ou=Students,dc=edu,dc=ntiustu,dc=local") objGroup.Add(objLeaf.ADsPath) End Sub ' 0 1 2 3 4 5 6 7 ' пример Abashev-DG, Abashev Dmitrij Gennadevich,Абашев Дмитрий Геннадьевич,20040235,224-ИСТ,2,Экономики и менеджмента ' Abashev-DG,11287,Abashev Dmitrij Gennadevich,Абашев Дмитрий Геннадьевич,20040235,224-ИСТ,2,Экономики и менеджмента ' ' ======================================================== ' ================== Начало скрипта =================== Set objArgs = WScript.Arguments If objArgs.Count = 1 Then sParamFN = objArgs(0) Else sParamFN = "test.ADSI.txt" For i=1 To 6 ' CreateCourseOU(i) Next WScript.Echo "Загружается файл" Set objFSO = CreateObject("Scripting.FileSystemObject") If (objFSO.FileExists(sParamFN)) Then Set objFile = objFSO.OpenTextFile (sParamFN, ForReading) i = 0 Do Until objFile.AtEndOfStream i = i + 1 strName = objFile.ReadLine If Left(strName,1) <> "*" Then CreatAD_User(strName) ' WScript.Echo strName Loop objFile.Close End If WScript.Echo "Well done. "+CStr(i)+" items processed" |