Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - Добавление пользователя в доменную группу в процессе создания учетной записи.

Ответить
Настройки темы
VBS/WSH/JS - Добавление пользователя в доменную группу в процессе создания учетной записи.

Пользователь


Сообщения: 63
Благодарности: 2

Профиль | Отправить PM | Цитировать


Изменения
Автор: smol84
Дата: 03-09-2014
Всем здравствуйте!
Есть скрипт который создает учетную запись пользователя...

'Option Explicit

Dim sFirstName1, sFirstName2, sLastName, sFullName, sFirstNameFull, sLastNameLat, sFirstNameLat, sLogin, strUserName, dtStart
sFirstName1 = InputBox("Введите Имя")
sFirstName2 = InputBox("Введите Отчество")
sLastName = InputBox("Введите Фамилию")
sFullName = sLastName & " " & sFirstName1 & " " & sFirstName2
sFirstNameFull = sFirstName1 & " " & sFirstName2
sFirstNameLat = Rus2Lat(sFirstName1)
sLastNameLat = Rus2Lat(sLastName)
sLogin = sFirstNameLat & "." & sLastNameLat
'Проверка длины логина
if Len(sLogin) > 20 Then
sFirstNameLat = Mid(sFirstNameLat,1,1)
sLogin = sFirstNameLat & "." & sLastNameLat
End if
strUserName = sLogin
dtStart = TimeValue(Now())
Set objConnection = CreateObject("ADODB.Connection")
objConnection.Open "Provider=ADsDSOObject;"

Set objCommand = CreateObject("ADODB.Command")
objCommand.ActiveConnection = objConnection

objCommand.CommandText = _
"<LDAP://ou=users,dc=corp,dc=int>;(&(objectCategory=User)" & _
"(samAccountName=" & strUserName & "));samAccountName;subtree"

Set objRecordSet = objCommand.Execute

If objRecordset.RecordCount = 0 Then
Set objOU = GetObject("LDAP://OU=Users,DC=corp,DC=int")
Set objUser = objOU.Create _
("User", "cn=" & sFullName)
objUser.displayName = sFullName
objUser.sAMAccountName = sLogin
objUser.GivenName = sFirstName1
objUser.SN = sLastName
objUser.SetInfo
objUser.userPrincipalName = sLogin & "@corp.int"
objUser.mail = sLogin & "@corp.int"
objUser.AccountDisabled = FALSE
objUser.SetPassword "xxx"
objUser.Put "PwdLastSet", 0
objUser.SetInfo
Else
WScript.Echo "Учетная запись " & Chr(34) & sLogin & Chr(34) & " уже существует."
WScript.Quit
End If

Wscript.Echo "Учетная запись создана успешно"

Function Rus2Lat(strRus)
Dim i
Dim strTemp
Dim strLat
For i = 1 To Len(strRus)
strTemp = Mid(strRus, i, 1)
Select Case strTemp
Case "а"
strLat = strLat & "a"
Case "А"
strLat = strLat & "A"
Case "б"
strLat = strLat & "b"
Case "Б"
strLat = strLat & "B"
Case "в"
strLat = strLat & "v"
Case "В"
strLat = strLat & "V"
Case "г"
strLat = strLat & "g"
Case "Г"
strLat = strLat & "G"
Case "д"
strLat = strLat & "d"
Case "Д"
strLat = strLat & "D"
Case "е"
strLat = strLat & "e"
Case "Е"
strLat = strLat & "E"
Case "ё"
strLat = strLat & "e"
Case "Ё"
strLat = strLat & "E"
Case "ж"
strLat = strLat & "zh"
Case "Ж"
strLat = strLat & "Zh"
Case "з"
strLat = strLat & "z"
Case "З"
strLat = strLat & "Z"
Case "и"
strLat = strLat & "i"
Case "И"
strLat = strLat & "I"
Case "й"
strLat = strLat & "i"
Case "Й"
strLat = strLat & "I"
Case "к"
strLat = strLat & "k"
Case "К"
strLat = strLat & "K"
Case "л"
strLat = strLat & "l"
Case "Л"
strLat = strLat & "L"
Case "м"
strLat = strLat & "m"
Case "М"
strLat = strLat & "M"
Case "н"
strLat = strLat & "n"
Case "Н"
strLat = strLat & "N"
Case "о"
strLat = strLat & "o"
Case "О"
strLat = strLat & "O"
Case "п"
strLat = strLat & "p"
Case "П"
strLat = strLat & "P"
Case "р"
strLat = strLat & "r"
Case "Р"
strLat = strLat & "R"
Case "с"
strLat = strLat & "s"
Case "С"
strLat = strLat & "S"
Case "т"
strLat = strLat & "t"
Case "Т"
strLat = strLat & "T"
Case "у"
strLat = strLat & "u"
Case "У"
strLat = strLat & "U"
Case "ф"
strLat = strLat & "f"
Case "Ф"
strLat = strLat & "F"
Case "х"
strLat = strLat & "kh"
Case "Х"
strLat = strLat & "Kh"
Case "ц"
strLat = strLat & "tc"
Case "Ц"
strLat = strLat & "Tc"
Case "ч"
strLat = strLat & "ch"
Case "Ч"
strLat = strLat & "Ch"
Case "ш"
strLat = strLat & "sh"
Case "Ш"
strLat = strLat & "Sh"
Case "щ"
strLat = strLat & "shch"
Case "Щ"
strLat = strLat & "Shch"
Case "ъ"
strLat = strLat & ""
Case "Ъ"
strLat = strLat & ""
Case "ы"
strLat = strLat & "y"
Case "Ы"
strLat = strLat & "Y"
Case "ь"
strLat = strLat & ""
Case "Ь"
strLat = strLat & ""
Case "э"
strLat = strLat & "e"
Case "Э"
strLat = strLat & "E"
Case "ю"
strLat = strLat & "iu"
Case "Ю"
strLat = strLat & "Iu"
Case "я"
strLat = strLat & "ia"
Case "Я"
strLat = strLat & "Ia"
Case Else
'unknown symbol
strLat = strLat & strTemp
End Select

Next
Rus2Lat = strLat
End Function

Есть ряд групп
"cn=группа1,ou=Groups,dc=corp,dc=int
"cn=группа2,ou=Groups,dc=corp,dc=int
которые должны быть у пользователя по умолчанию...подскажите как можно добавить свежесозданную учетную запись в эти или к этим группам?

Отправлено: 15:31, 03-09-2014

 

Пользователь


Сообщения: 63
Благодарности: 2

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
Dim sFirstName1, sFirstName2, sLastName, sFullName, sLogin
sFirstName1 = "Alexandr"
sLastName = "Elizarov"
sFullName = sLastName & "." & sFirstName1 
sLogin = sLastName & " " & sFirstName1 
		Set objOU = GetObject("LDAP://OU=Users,OU=ViaMonstra,DC=corp,DC=viamonstra,DC=com")
		Set objUser = objOU.Create _
			("User", "cn=" & sFullName)
		objUser.displayName = sFullName
		objUser.sAMAccountName = sLogin
		objUser.GivenName = sFirstName1
		objUser.SN = sLastName
		objUser.SetInfo
		objUser.userPrincipalName = sLogin & "@corp.viamonstra.com"
		objUser.AccountDisabled = FALSE
		objUser.SetPassword "123456Qw"
		objUser.Put "PwdLastSet", 0
		objUser.SetInfo
Set objGroup = GetObject _
    ("LDAP://cn=test1,OU=Groups,OU=ViaMonstra,DC=corp,DC=viamonstra,DC=com")
objGroup.Put sLogin, test1
objGroup.SetInfo 
  objGroup.Add objUser.ADSPath

Отправлено: 12:06, 19-09-2014 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


smol84, в Вашем коде двадцать три строки. Стало быть он отличается от того кода, который вызывал приведённую Вами ошибку на двадцать шестой строке.

Отправлено: 12:26, 19-09-2014 | #12


Пользователь


Сообщения: 63
Благодарности: 2

Профиль | Отправить PM | Цитировать


в 22 строке теперь ошибка Unspecified error
это строка objGroup.Put sLogin, test1

Последний раз редактировалось smol84, 19-09-2014 в 12:36. Причина: исправления


Отправлено: 12:35, 19-09-2014 | #13


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата smol84:
это строка objGroup.Put sLogin, test1 »
Простите, а что Вы хотите ей получить?

Отправлено: 13:20, 19-09-2014 | #14


Пользователь


Сообщения: 63
Благодарности: 2

Профиль | Отправить PM | Цитировать


Есть ряд групп
"cn=группа1,ou=Groups,dc=corp,dc=int
"cn=группа2,ou=Groups,dc=corp,dc=int
которые должны быть у пользователя по умолчанию...подскажите как можно добавить свежесозданную учетную запись в эти или к этим группам?

Отправлено: 15:42, 19-09-2014 | #15


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


В примере сие делалось строкой:
Код: Выделить весь код
objGroup.Add objUser.ADSPath
Эти группы уже существуют? Подключаетесь к объекту:
Код: Выделить весь код
Set objIADsGroup = GetObject("LDAP://cn=группа1,ou=Groups,dc=corp,dc=int")
затем добавляете свежесозданную учётную запись в группу:
Код: Выделить весь код
objIADsGroup.Add objUser.ADSPath
Аналогично со второй группой.
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:51, 19-09-2014 | #16


Пользователь


Сообщения: 63
Благодарности: 2

Профиль | Отправить PM | Цитировать


Спасибо!

Отправлено: 17:21, 19-09-2014 | #17


Аватара для Devils0411

Ветеран


Сообщения: 902
Благодарности: 51

Профиль | Отправить PM | Цитировать


Похожая ситуация. Выдает ошибку


Код: Выделить весь код
Option Explicit

Dim sFirstName1, sLastName, sFullName, sLogin, strUserName
Dim dtStart, sPassword, objConnection, objCommand
Dim objRecordSet, objOU, objUser
sLastName = InputBox("Введите Фамилию")
sFirstName1 = InputBox("Введите Имя")
sLogin = InputBox ("Введите логин")
sPassword = InputBox ("Введите пароль")
sFullName = sLastName & " " & sFirstName1
'Проверка длины логина
if Len(sLogin) > 20 Then
sFirstName1 = Mid(sFirstName1,1,1)
sLogin = sFirstName1 & "." & sLastName
End if
strUserName = sLogin
dtStart = TimeValue(Now())
Set objConnection = CreateObject("ADODB.Connection")
objConnection.Open "Provider=ADsDSOObject;"
Set objCommand = CreateObject("ADODB.Command")
objCommand.ActiveConnection = objConnection

objCommand.CommandText = _
"<LDAP://OU=Users,OU=Warehouse 8114,OU=Central region,OU=Areas,DC=RETAIL,DC=LENTA,DC=SPB,DC=RUS>;(&(objectCategory=User)" & _
"(samAccountName=" & strUserName & "));samAccountName;subtree"

Set objRecordSet = objCommand.Execute

If objRecordset.RecordCount = 0 Then
Set objOU = GetObject("LDAP://OU=Users,OU=Warehouse 8114,OU=Central region,OU=Areas,DC=RETAIL,DC=LENTA,DC=SPB,DC=RUS")
Set objUser = objOU.Create _
("User", "cn=" & sFullName)
objUser.displayName = sFullName
objUser.sAMAccountName = sLogin
objUser.GivenName = sFirstName1
objUser.SN = sLastName
objUser.SetInfo
objUser.userPrincipalName = sLogin & "@RETAIL.LENTA.SPB.RUS"
objUser.AccountDisabled = TRUE
objUser.SetPassword sPassword
objUser.Put "PwdLastSet", 1
objUser.SetInfo
Else	
WScript.Echo "Учетная запись " & Chr(34) & sLogin & Chr(34) & " уже существует."
WScript.Quit
End If

Wscript.Echo "Учетная запись для" & Chr(34) & sFullName & Chr(34) & "создана успешно"
Куда копать?

-------
Скрипт автоустановки WINDOWSXP; Скрипт мультиустановки ОС


Отправлено: 18:02, 23-12-2014 | #18


Аватара для Devils0411

Ветеран


Сообщения: 902
Благодарности: 51

Профиль | Отправить PM | Цитировать


Проблему решил

-------
Скрипт автоустановки WINDOWSXP; Скрипт мультиустановки ОС


Отправлено: 06:54, 25-12-2014 | #19



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - Добавление пользователя в доменную группу в процессе создания учетной записи.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
PowerShell - Добавление пользователя в группу AD rastadmb Скриптовые языки администрирования Windows 13 29-10-2013 07:28
2008 R2 - [решено] Добавление локального профиля в доменную группу lxa85 Windows Server 2008/2008 R2 3 20-02-2013 09:01
AD Добавление пользователя в группу в терминале проблема Arthes Microsoft Windows NT/2000/2003 0 16-03-2011 16:38
VBS/WSH/JS - Скрипт для добавление пользователя в группу AD HuppeR Скриптовые языки администрирования Windows 0 20-10-2010 17:44
Дата создания учетной записи Igorek Сетевые технологии 2 31-03-2004 14:00




 
Переход