' Часть 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."