alex19451
05-03-2015, 22:37
Set objArgs = WScript.Arguments
if objArgs.Count = 0 then
WScript.Echo "Добавляет пользователей в домен."
WScript.Echo "create_users.vbs [имя файла]"
WScript.Echo " user.txt[имя файла] — файл со списком пользователей"
WScript.Echo " формат файла: Логин; Пароль; Имя-Отчество; Фамилия; Должность; Отдел; OU(Организация); Адрес папки профиля;"
WScript.Quit
end if
path = objArgs(0)
Set fso = CreateObject("Scripting.FileSystemObject")
Set objFile = fso.OpenTextFile(path, 1)
Do Until objFile.AtEndOfStream
str = objFile.ReadLine
for i = 1 to Len(str) step 1
strCh = Mid (str, i, 1)
if strCh = ";" then
select case Z
case 0
UserName = strRez ' *** Логин
case 1
UserPassword = strRez ' *** Пароль
case 2
FirstName = strRez ' *** Имя-Отчество
case 3
LastName = strRez ' *** Фамилия
case 4
Title = strRez ' *** Должность
case 5
Department = strRez ' *** Отдел
case 6
Company = strRez ' *** (OU)Организация
case 7
sScPath = strRez' *** Адрес папки профиля
end select
strRez = ""
strCh = ""
Z = Z + 1
else
strRez = strRez + strCh
end if
next
strRez = ""
strCh = ""
Z = 0
Set objRoot = GetObject("LDAP://RootDSE")
Set objADSystemInfo = CreateObject("ADSystemInfo")
DomainDNSName = objADSystemInfo.DomainDNSName
DomainDN = objRoot.Get("DefaultNamingContext")
ContainerDN = "ou=" & Company & "," & DomainDN
pName = UserName & "@" & DomainDNSName '"@snb.local"
'!!! ВАЖНО !!!***Указываем ЗАРАНЕЕ СОЗДАННУЮ OU в которую кидаются новые пользователи *******
Set objOU = GetObject("LDAP://" & ContainerDN)
'*************************** Создаем аккаунт пользователя домена ***********************
Set objUser = objOU.Create("User", "cn=" + UserName)
' **** Login *****
objUser.Put "sAMAccountName", UserName
objUser.SetInfo
' ****** пароль *******
Set objUser = GetObject ("LDAP://cn=" + UserName + "," + ContainerDN)
objUser.SetPassword UserPassword
' ******* UPN **********
objUser.Put "userPrincipalName", pName
'****** выключение аккаунта *******
objUser.AccountDisabled = FALSE
' ******** Имя *********
objUser.Put "givenName", FirstName
' ***** Фамилия *********
objUser.Put "sn", LastName
' ***** Выводимое имя ******
objUser.Put "displayName", LastName & " " & FirstName
' Инициалы
objUser.Put "initials", left(FirstName,1) & "." '& left(LastName,1)
' ***** Должность ******
objUser.Put "title", Title
' ***** Отдел ******
objUser.Put "department", Department
' Организация
objUser.Put "Company", Company
' ***** Уст. Требовать смену пароля при следующем входе в систему ***
objUser.Put "pwdLastSet", CLng(0)
' Адрес папки перемещаемого профиля пользователя
objUser.Put "ProfilePath", sScPath
objUser.SetInfo
' WScript.Echo "Пользователь — " + UserName + " добавлен в AD"
Loop
WScript.Echo "Пользователи добавлены в AD"
objFile.Close
тхт файл выглядит так
manager4; 1qaz2WSX; Ivan Ivanovich; Ivanov; manager; management; ASOIU; \\WINSERVER\Profiles\manager4;
security3; 1qaz2WSX; Petr Petrovich; Petrov; security; security; SIB; \\WINSERVER\Profiles\security3;
if objArgs.Count = 0 then
WScript.Echo "Добавляет пользователей в домен."
WScript.Echo "create_users.vbs [имя файла]"
WScript.Echo " user.txt[имя файла] — файл со списком пользователей"
WScript.Echo " формат файла: Логин; Пароль; Имя-Отчество; Фамилия; Должность; Отдел; OU(Организация); Адрес папки профиля;"
WScript.Quit
end if
path = objArgs(0)
Set fso = CreateObject("Scripting.FileSystemObject")
Set objFile = fso.OpenTextFile(path, 1)
Do Until objFile.AtEndOfStream
str = objFile.ReadLine
for i = 1 to Len(str) step 1
strCh = Mid (str, i, 1)
if strCh = ";" then
select case Z
case 0
UserName = strRez ' *** Логин
case 1
UserPassword = strRez ' *** Пароль
case 2
FirstName = strRez ' *** Имя-Отчество
case 3
LastName = strRez ' *** Фамилия
case 4
Title = strRez ' *** Должность
case 5
Department = strRez ' *** Отдел
case 6
Company = strRez ' *** (OU)Организация
case 7
sScPath = strRez' *** Адрес папки профиля
end select
strRez = ""
strCh = ""
Z = Z + 1
else
strRez = strRez + strCh
end if
next
strRez = ""
strCh = ""
Z = 0
Set objRoot = GetObject("LDAP://RootDSE")
Set objADSystemInfo = CreateObject("ADSystemInfo")
DomainDNSName = objADSystemInfo.DomainDNSName
DomainDN = objRoot.Get("DefaultNamingContext")
ContainerDN = "ou=" & Company & "," & DomainDN
pName = UserName & "@" & DomainDNSName '"@snb.local"
'!!! ВАЖНО !!!***Указываем ЗАРАНЕЕ СОЗДАННУЮ OU в которую кидаются новые пользователи *******
Set objOU = GetObject("LDAP://" & ContainerDN)
'*************************** Создаем аккаунт пользователя домена ***********************
Set objUser = objOU.Create("User", "cn=" + UserName)
' **** Login *****
objUser.Put "sAMAccountName", UserName
objUser.SetInfo
' ****** пароль *******
Set objUser = GetObject ("LDAP://cn=" + UserName + "," + ContainerDN)
objUser.SetPassword UserPassword
' ******* UPN **********
objUser.Put "userPrincipalName", pName
'****** выключение аккаунта *******
objUser.AccountDisabled = FALSE
' ******** Имя *********
objUser.Put "givenName", FirstName
' ***** Фамилия *********
objUser.Put "sn", LastName
' ***** Выводимое имя ******
objUser.Put "displayName", LastName & " " & FirstName
' Инициалы
objUser.Put "initials", left(FirstName,1) & "." '& left(LastName,1)
' ***** Должность ******
objUser.Put "title", Title
' ***** Отдел ******
objUser.Put "department", Department
' Организация
objUser.Put "Company", Company
' ***** Уст. Требовать смену пароля при следующем входе в систему ***
objUser.Put "pwdLastSet", CLng(0)
' Адрес папки перемещаемого профиля пользователя
objUser.Put "ProfilePath", sScPath
objUser.SetInfo
' WScript.Echo "Пользователь — " + UserName + " добавлен в AD"
Loop
WScript.Echo "Пользователи добавлены в AD"
objFile.Close
тхт файл выглядит так
manager4; 1qaz2WSX; Ivan Ivanovich; Ivanov; manager; management; ASOIU; \\WINSERVER\Profiles\manager4;
security3; 1qaz2WSX; Petr Petrovich; Petrov; security; security; SIB; \\WINSERVER\Profiles\security3;