Показаны сообщения с ярлыком экспорт. Показать все сообщения
Показаны сообщения с ярлыком экспорт. Показать все сообщения

пятница, 14 декабря 2012 г.

Скрип для добавления пользователей в AD c excel

Сам скрипт:
_______________________________________
_______________________________________

' UserSpreadsheet .vbs
' Sample VBScript to create User accounts from a spreadsheet
' ------------------------------------------------------'
Option Explicit
Dim objRootLDAP, objContainer, objUser, objShell
Dim objExcel, objSpread, intRow
Dim strUser, strOU, strSheet
Dim strCN, strSam, strFirst, strLast, strPWD, strDN, srtCompany, strEma, strPhone, strUPN, strL, strST, strAddress, strTitle, stripPhone, strOffice, strDep, strmobile

' -----------------------------------------------'
' Important change OU= and strSheet to reflect your domain
' -----------------------------------------------'

strOU = "OU=Accounts ," ' Note the comma
strSheet = "D:\work\scripts\AD\Users\CR.xls"

' Bind to Active Directory, Users container.
Set objRootLDAP = GetObject("LDAP://rootDSE")
'Set objRootLDAP = GetObject("LDAP://dc=ent, dc=com")
Set objContainer = GetObject("LDAP://" & strOU & _
objRootLDAP.Get("defaultNamingContext"))

' Open the Excel spreadsheet
Set objExcel = CreateObject("Excel.Application")
Set objSpread = objExcel.Workbooks.Open(strSheet)
intRow = 3 'Row 1 often contains headings

' Here is the 'DO...Loop' that cycles through the cells
' Note intRow, x must correspond to the column in strSheet
Do Until objExcel.Cells(intRow,1).Value = ""
   strSam = Trim(objExcel.Cells(intRow, 1).Value)
   strCN = Trim(objExcel.Cells(intRow, 2).Value)
   strFirst = Trim(objExcel.Cells(intRow, 3).Value)
   strLast = Trim(objExcel.Cells(intRow, 4).Value)
   strPWD = Trim(objExcel.Cells(intRow, 5).Value)
   ' Additional Info
   strDN = Trim(objExcel.Cells(intRow, 6).Value)
   srtCompany = Trim(objExcel.Cells(intRow, 7).Value)
   strEma = Trim(objExcel.Cells(intRow, 8).Value)
   strPhone = Trim(objExcel.Cells(intRow, 9).Value)
   strUPN = Trim(objExcel.Cells(intRow, 10).Value)
   strL = Trim(objExcel.Cells(intRow, 11).Value)
   strST = Trim(objExcel.Cells(intRow, 12).Value)
   strAddress = Trim(objExcel.Cells(intRow, 13).Value)
   strTitle = Trim(objExcel.Cells(intRow, 14).Value)
   strdep = Trim(objExcel.Cells(intRow, 15).Value)
   'strmobile = Trim(objExcel.Cells(intRow, 16).Value)
   strOffice = Trim(objExcel.Cells(intRow, 16).Value)
   ' Build the actual User from data in strSheet.
   Set objUser = objContainer.Create("User", "cn=" & strCN)
   objUser.sAMAccountName = strSam
   objUser.givenName = strFirst
   objUser.sn = strLast
   ' Additional Info
   objUser.displayName = strDN
   objUser.userPrincipalName = strUPN
   objUser.Company = srtCompany
   objUser.mail = strEma
   objUser.telephoneNumber = strPhone
   objUser.l = strL
   objUser.st = strST
   objUser.streetAddress = strAddress
   objUser.title = strTitle
   objUser.Department = strdep
   objUser.physicalDeliveryOfficeName = strOffice
   'objUser.mobile = strmobile
   'objUser.Department = strDep
   objUser.SetInfo

   ' Separate section to enable account with its password
   objUser.userAccountControl = 512
   objUser.pwdLastSet = 0
   objUser.SetPassword strPWD
   objUser.SetInfo

intRow = intRow + 1
Loop
objExcel.Quit

WScript.Quit

' End of free example UserSpreadsheet VBScript.
_________________________________________________
В excel-файле столбики должны соответствовать номеру! (то есть если атрибут не заполнен, то он исключается со скрипта , если столбик удален с файла, то номирация должна сдвинуться... не может идти атрибут 5 потом 10... и т.д.)

Пример файла.


в данной картинке есть ошибка... там где номер телефона, колонка номер 7, должно быть 7... дальше 8
в скрипте соответственно необходимо исправить тоже нумерацию в этих строках.


   strPhone = Trim(objExcel.Cells(intRow, 9).Value)
   strUPN = Trim(objExcel.Cells(intRow, 10).Value)

должно быть 7 и 8...
и так далее. или не смещать колонки.

четверг, 2 июня 2011 г.

Экспорт и импорт почтовых ящиков в Exchange Server 2010


В этой статье описывается, как экспортировать и импортировать почтовые ящики в Exchange 2010; материал основан на Exchange 2010 версии Release Candidate. И хотя версия RC уже близка к окончательной, в финальной версии Exchange 2010 все-таки могут быть некоторые изменения.
В ближайшем будущем мы рассмотрим глубже, как вам подготовиться и что нужно знать, чтобы решать ваши задачи с помощью нового релиза Exchange.

Почему экспорт и импорт

Для начала нам нужно определиться, ставится ли задача экспорта или импорта. В целом, это довольно просто. Вот что вам может понадобиться сделать:
  • Мигрировать с почтовых ящиков полностью за пределы среды вашего сервера Exchange; при этом вы можете действовать через PST-файл, полученный от пользователя
  • Решать проблемы с существующими почтовыми ящиков, возникающие из-за ошибок баз данных или иных сложностей
  • Создавать резервные копии всех почтовых данных вручную без участия специального агента

Выполнение предварительных условий

Перед началом работы с задачей вам необходимо подготовить клиентскую систему, выполнив следующие требования:
  • Установка 64-битной операционной системы Windows
  • Установка Powershell 2.0
  • Установка .NET Framework 3.51
  • Установка Outlook Office 2010 64 Bit (который сейчас есть в версии CTP release)
  • Установка средств управления Exchange Server 2010
  • Создать членство в домене для этого клиента
  • Войти в администраторский аккаунт со всеми администраторскими правами
В Exchange Server 2010 есть возможность ролевого администрирования; и для начала вам нужно будет выполнить следующую команду:
New-ManagementRoleAssignment 'Role 'Mailbox Import Export' 'User '<имя пользователя>'
Эта команда дает пользователю право импортировать и экспортировать почтовые ящики. Другой способ добиться того же – создать группу в Active Directory и добавить разрешения этой группе с помощью следующей команды:
New-ManagementRoleAssignment 'Role 'Mailbox Import Export' 'Group '<пользовательская группа>'
После этого вам нужно будет всего лишь добавлять пользователей в эту группу, чтобы разрешить им экспортировать и импортировать почтовые ящики.
Если вы посмотрите, как импортировать почтовый ящик, вы увидите, что команда в powershell для этого очень проста:
Рисунок 1: Импорт почтового ящикаРисунок 1: Импорт почтового ящика
Если вы посмотрите, как экспортировать почтовый ящик, вы поймете, что и это очень просто! Вот, что вам нужно сделать, чтобы выполнить эту задачу.
Рисунок 2: Начало экспорта почтового ящикаРисунок 2: Начало экспорта почтового ящика
Эта процедура может занять некоторое время в зависимости от размера личной папки. Не переживайте, если при этом придется подождать.
Рисунок 3: Завершение экспорта почтового ящикаРисунок 3: Завершение экспорта почтового ящика
Как вы понимаете, все эти действия представлены командами в Powershell. В версии Release Candidate Exchange Server 2010 не существует способа добиться такого результата с помощью графического интерфейса. А вот в Exchange Server 2010 Beta Release такой способ есть.
Надеюсь, такую возможность вернут в окончательной версии Exchange Server 2010, поэтому я покажу вам, как это делается.
После установки Outlook 2010 на компьютер, где будет производиться экспорт или импорт, у вас появится две новых команды (если посмотреть в контекстное меню каждого почтового ящика). Это 'Export Mailbox' и 'Import Mailbox'.
Рисунок 4: Экспорт почтового ящика в консоли управления Exchange Administrative ConsoleРисунок 4: Экспорт почтового ящика в консоли управления Exchange Administrative Console
После этого нам нужно указать местоположение целевого почтового ящика и сервера, либо местоположение личной папки (PST).
Рисунок 5: Подробная информация об экспорте почтового ящикаРисунок 5: Подробная информация об экспорте почтового ящика
Импорт почтового ящика легок и прост. Какую опцию выбрать, вы можете увидеть на Рисунке ниже.
Рисунок 6: Импорт почтового ящика с помощью консоли Exchange Management ConsoleРисунок 6: Импорт почтового ящика с помощью консоли Exchange Management Console
Причина, по которой в Microsoft отключили эту функцию, может заключаться в том, что (отвлекаясь от возможности возвращения этой функции в окончательном релизе или в первом Service Pack) эта задача предназначается специально для администраторов сервера почты, а не для общих администраторов.

Заключение

Как вы видели выше, импорт или экспорт почтового ящика в Exchange Server 2010 совершенно аналогичен тому, что было в Exchange Server 2007, если вы выполнили предварительные условия и установили Outlook 2010 64 Bit на соответствующий компьютер. Установка Outlook на сам сервер Exchange Server раньше не поддерживалась, но в будущем она появится.
Еще нужно упомянуть, что импорт и экспорт почтовых ящиков в личную папку приводит к тому, что сервер Exchange не имеет теперь единственного хранилища. Это означает, что сначала, если некий элемент был отправлен нескольким пользователям в пределах сервера Exchange, сообщение сохранялось лишь один раз. Если вы запускаете импорт или экспорт, такая особенность теряется, и размер вашей почтовой базы данных будет значительно расти. Поэтому лучшим решением для перемещения почтовых ящиков с одного сервера на другой или с одной базы данных на другую будет просто переместить почтовый ящик и не экспортировать или импортировать его после.
Если вы переходите из среды почтового сервера, отличного от Exchange, к среде Exchange – это может быть единственной причиной, по которой вы можете перемещать старые почтовые записи на новую среду. Кроме того, возможно, если вы еще работаете с Exchange Server 5.x и миграция перемещением невозможна, такая возможность тоже может решить вашу проблему.