Итак, если у кого-то есть список из 200 имен, и он хочет быстро добавить пользователей ActiveDirectory и почтовые ящики Exchange для каждого из них, есть ли какие-либо инструменты / методы, которые могут с этим помочь?
Подробности:
Если вы не хотите использовать VBScript, вы также можете использовать dsadd. У меня есть однострочный командный файл, который импортирует всех моих новых пользователей каждый год:
(Может быть, есть лучший способ показать это, но я еще не пил кофе.)
for /F "tokens=1,2,3,4 delims=," %%i in (freshmen09.csv) do dsadd user "cn=%%j %%i,ou=2013,ou=students,dc=[domain],dc=org" -samid %%k -pwd "%%l" -upn %%k@[domain].org -fn "%%j" -ln "%%i" -display "%%j %%i" -memberof "cn=GL 2013,ou=2013,ou=students,dc=[domain],dc=org" -disabled no -mustchpwd yes -hmdrv U: -hmdir "\\[network home directory]\2013\%%k"
Это займет 4 столбца из файла CSV: фамилия, имя, имя пользователя, пароль.
Я пытался получить это для автоматического создания адресов электронной почты, но у меня были противоречивые результаты. Обычно мне приходится делать то, что предлагает mh, просто выделять все в ADU & C и настраивать почтовый ящик Exchange оттуда. Очень просто и намного проще, чем разобраться в этом с помощью DSADD.
DSADD также имеет много других параметров. По сути, вы можете установить любые пользовательские свойства, которые захотите. Просто, легко и быстро.
Одна ошибка: конфликты имен пользователей необходимо обрабатывать вручную. Иногда у нас есть студенты с такими именами, как Джеймс Смит и Джонатон Смит. Если у вас есть система предотвращения столкновений заранее - отлично. Если нет, я рекомендую перенаправить вывод bat-файла в текстовый файл и просто искать в результатах поиск «Fail».
freshmen09.bat > freshmen09_output.txt
(Вероятно, есть гораздо лучший способ сделать эту часть ...)
VBScript и ADSI для создания учетных записей пользователей. Для начала используйте что-то вроде этого:
Set objRootDSE = GetObject("LDAP://rootDSE")
Set objContainer = GetObject("LDAP://cn=Users," & objRootDSE.Get("defaultNamingContext"))
For i = 1 To 1000
Set objLeaf = objContainer.Create("User", "cn=UserNo" & i)
objLeaf.Put "sAMAccountName", "UserNo" & i
objLeaf.SetInfo
Next
WScript.Echo "1000 Users created."
В Центр сценариев Microsoft Technet также есть множество примеров сценариев для всего, что вы можете захотеть сделать, и это отличный ресурс.
Для почтовых ящиков я бы не стал писать сценарии; просто создайте всех пользователей в одном подразделении, затем заблокируйте их (в ADU & C), щелкните правой кнопкой мыши и выполните команду «Задачи обмена» - гораздо быстрее и менее подвержено ошибкам.
VBScript - это способ.
Используя VBScript и ADSI, вы можете автоматизировать большинство этих задач.
Пара ссылок для начала:
создание пользователя в AD и многое другое
Радоваться, веселиться!