' Часть 1: открыть электронную таблицу Excel ? с помощью ADO. Dim oCN Set oCN = CreateObject("ADODB.Connection") oCN.Open "Excel" Dim oRS Set oRS = oCN.Execute("SELECT * FROM [Sheet1$]") ' Часть 2: получить ссылку на домен NT ? с помощью ADSI. Dim oDomain Dim sPDC sPDC = "NT4PDC" Set oDomain = GetObject("WinNT://" & sPDC) ' Часть 3: открыть выходной текстовый файл. ' для хранения начальных паролей пользователей. Dim oFSO, oTS Set oFSO = CreateObject("Scripting.FileSystemObject") Set oTS = oFSO.CreateTextFile("C:passwords.txt",True) ' Часть 4: для каждой записи в наборе. ' добавить пользователя, установить соответствующие ' свойства пользователя и занести пользователей в ' соответствующие группы. ' Определить необходимые переменные. Dim sUserID, sFullName, sDescription Dim sHomeDir, sGroups, sDialIn Dim sPassword, oUserAcct, oFolder Dim sGroupList, iTemp, oGroup ' Определить базовый путь для создания ' личных каталогов. Dim sHomePath, sMsg sHomePath = "iridis1c$users" ' Поочередно обработать строки набора записей Do Until oRS.EOF ' Получить информацию о пользователе из данной ? строки. sUserID = oRS("UserID") sFullName = oRS("FullName") sDescription = oRS("Description") sHomeDir = oRS("HomeDirectory") sGroups = oRS("Groups") sDialIn = oRS("DialIn") ' Составить новый пароль. sPassword = Left(sUserID,2) _ & DatePart("n",Time) & DatePart("y",Date) _ & DatePart("s",Time) ' Создать учетную запись пользователя. On Error Resume Next Set oUserAcct = oDomain.Create("user",sUserID) If Err <> 0 Then sMsg = "Ошибка при попытке создать пользователя " _ & sUserID & vbCrLf & vbCrLf sMsg = sMsg & "Описание ошибки: " _ & Err.Description MsgBox sMsg End If On Error Goto 0 ' Назначить свойства учетной записи. oUserAcct.SetPassword sPassword oUserAcct.FullName = sFullName oUserAcct.Description = sDescription oUserAcct.HomeDirectory = sHomeDir ' Назначить полномочия RAS. If sDialIn = "Y" Then oUserAcct.RasPermissions = 9 Else oUserAcct.RasPermissions = 1 End If ' Сохранить учетную запись. oUserAcct.SetInfo ' Получить ссылку на новую учетную запись. ' Данный шаг дает действительный SID и ' другую информацию. Set oUserAcct = GetObject("WinNT://" _ & sPDC & "/" & sUserID & ",user") ' Записать пароль в файл. oTS.Write sUserID & "," & sPassword _ & vbCrLf ' Часть 4A: занести учетные записи пользователей в ? группы. ' Преобразовать разделенный запятыми список в ' массив с помощью функции Split. sGroupList = Split(sGroups, ",") ' Пройти по массиву и добавить ' пользователя в каждую группу. For iTemp = 0 To uBound(sGroupList) ' Получить группу. Set oGroup = GetObject("WinNT://" & _ sPDC & "/" & sGroupList(iTemp) _ & ",group") ' Добавить учетную запись пользователя. oGroup.Add oUserAcct.ADsPath ' Release the group. Set oGroup = Nothing Next ' Часть 4B: создать личный каталог пользователя. ' (Присоединить UserID к переменной Home Path). Set oFolder = oFSO.CreateFolder(sHomePath _ & sUserID) ' Часть 5: освободить учетную запись пользователя. Set oUserAcct = Nothing ' Перейти к следующей строке набора записей. oRS.MoveNext Loop ? Часть 6: завершающая очистка и закрытие файлов. oRS.Close oTS.Close WScript.Echo "Пароли сохранены в файле " _ & " C:passwords.txt."