четверг, 1 декабря 2011 г.

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


Тони Редмонд

Ком­па­нии Microsoft все­гда было нече­го ска­зать, когда дело ка­са­лось внед­ре­ния или из­вле­че­ния дан­ных из Exchange Server. При­ло­же­ния, ко­то­рые со­дер­жат по­сто­ян­ныехра­ни­ли­ща данных, обыч­но снаб­же­ны ме­ха­низ­мом, поз­во­ля­ю­щим ад­ми­ни­стра­то­рам за­гру­жать дан­ные в хра­ни­ли­ще или из­вле­кать их из него, но эти ме­ха­низ­мы не под­хо­дят для Exchange Server. Ме­ха­низ­мы им­пор­та дан­ных ис­поль­зу­ют­ся для за­груз­ки дан­ных в поч­то­вый ящик, за­ча­стую путем пе­ре­ме­ще­ния их из дру­гой поч­то­вой си­сте­мы. А ме­ха­низ­мы экс­пор­та дан­ных слу­жат поль­зо­ва­те­лям для иной цели — обыч­но для из­вле­че­ния дан­ных для по­сле­ду­ю­ще­го про­смот­ра в сце­на­ри­ях, таких как вы­пол­не­ние за­про­сов от ре­гу­ли­ру­ю­щих ор­га­нов, когда ком­па­ни­ям нужно найти копии со­об­ще­ний и вло­же­ний для про­смот­ра при юри­ди­че­ском разбирательстве.

За по­след­ние 15 лет, с тех пор как Microsoft вы­пу­сти­ла Exchange, ад­ми­ни­стра­то­ры вы­нуж­де­ны были при­бе­гать к ис­поль­зо­ва­нию сто­рон­них ин­стру­мен­тов для за­груз­ки дан­ных в поч­то­вый ящик или для их экс­пор­та из него. В неко­то­рых слу­ча­ях эти ин­стру­мен­ты были мно­го­функ­ци­о­наль­ны. Хо­ро­ший при­мер — ути­ли­та ExMerge (msexchangeteam.​com/​archive/​2004/​07/​01/​171051.​aspx). Этот про­дукт был за­ду­ман как ре­ше­ние, пред­на­зна­чен­ное для того, чтобы по­мо­гать поль­зо­ва­те­лям пе­ре­ме­щать дан­ные поч­то­во­го ящика из дру­гих поч­то­вых си­стем в Exchange. Дан­ное ре­ше­ние было вклю­че­но в ар­се­нал ад­ми­ни­стра­то­ров Exchange в ка­че­стве необ­хо­ди­мой со­став­ля­ю­щей. Outlook яв­ля­ет­ся самым рас­про­стра­нен­ным ме­ха­низ­мом, ис­поль­зу­е­мым для по­лу­че­ния до­сту­па к дан­ным поч­то­во­го ящика. Outlook — это под­хо­дя­щее ре­ше­ние для быст­ро­го про­смот­ра поч­то­во­го ящика в целях из­вле­че­ния нуж­ной ин­фор­ма­ции в файл PST, но он не пред­на­зна­чен для им­пор­та ги­га­бай­тов дан­ных. Кроме того, Outlook не обес­пе­чи­ва­ет шиф­ро­ва­ние и сло­жен для про­грам­ми­ро­ва­ния обыч­ным ад­ми­ни­стра­то­ром, ко­то­рый хочет про­сто из­влечь поль­зо­ва­тель­ские дан­ные для от­ве­та на за­прос. Опыт­ные про­грам­ми­сты могут за­дей­ство­вать мо­дель Outlook Object Model (OOM) для из­вле­че­ния дан­ных, но нуж­ный код бы­ва­ет недо­сту­пен имен­но когда он тре­бу­ет­ся. Таким об­ра­зом, мно­гие ад­ми­ни­стра­то­ры часто при­бе­га­ют к про­грам­мам типа ExMerge.
Кли­ент­ские при­ло­же­ния за­ви­сят от биб­лио­тек MAPI, когда им нужно по­лу­чить до­ступ к со­дер­жи­мо­му баз дан­ных Exchange. Наи­бо­лее до­ступ­ны­ми биб­лио­те­ка­ми MAPI в тер­ми­нах за­до­ку­мен­ти­ро­ван­ных ин­тер­фей­сов API яв­ля­ют­ся те, ко­то­рые по­став­ля­ют­ся с Outlook. Имен­но по­это­му вам нужно уста­но­вить Outlook на сер­ве­ре Exchange, пре­жде чем вы за­пу­сти­те кли­ент, ко­то­рый за­ви­сит от биб­лио­тек MAPI. Эта за­ви­си­мость со­хра­ня­ет­ся и в слу­чае с ко­ман­да­ми Import-Mailbox и Export-Mailbox из по­став­ки Exchange Server 2010 и Exchange Server 2007. Когда в ок­тяб­ре 2009 года Microsoft вы­пу­сти­ла Exchange 2010, тре­бо­ва­лось уста­но­вить 64-раз­ряд­ную вер­сию Outlook на поч­то­вых сер­ве­рах Exchange 2010, пре­жде чем вы могли бы за­пу­стить ко­ман­ды для им­пор­та или экс­пор­та дан­ных. Од­на­ко 64-раз­ряд­ная вер­сия Outlook не была офи­ци­аль­но вы­пу­ще­на до ап­ре­ля 2010 года — до вы­пус­ка Outlook 2010. Это от­ра­жа­ет про­бле­мы, ко­то­рые про­яв­ля­ют­ся в слу­чае, когда один про­дукт за­ви­сит от дру­го­го, а про­грам­мы раз­вер­ты­ва­ния не от­ла­же­ны. На самом деле воз­мож­ность им­пор­та/экс­пор­та дан­ных в Exchange была тем­ным пят­ном в те­че­ние мно­гих лет. Те­перь на­ста­ло время на­ве­сти порядок.
Exchange 2010 SP1 от­ка­зы­ва­ет­ся от преды­ду­щих под­хо­дов к им­пор­ту/экс­пор­ту в поль­зу новой мо­де­ли, ос­но­ван­ной на за­про­сах на им­порт и экс­порт, управ­ля­е­мых служ­бой Microsoft Exchange Mailbox Replication Service (MRS). Дан­ные пе­ре­ме­ща­ют­ся внутрь и из­нут­ри Exchange через новый про­вай­дер дан­ных, ко­то­рый ин­те­гри­ро­ван в сер­вер­ную роль Client Access и не за­ви­сит от ка­ко­го-ли­бо дру­го­го про­дук­та. Ста­рые ко­ман­ды Import-Mailbox и Export-Mailbox уда­ле­ны из SP1, а это озна­ча­ет, что вам нужно пе­ре­пи­сы­вать любые сце­на­рии PowerShell для ав­то­ма­ти­че­ской за­груз­ки и из­вле­че­ния дан­ных. Эти сце­на­рии за­ви­сят от на­зван­ных ко­манд. В SP1 су­ще­ству­ет новый набор ко­манд для со­зда­ния за­про­сов на им­порт и экс­порт поч­то­вых дан­ных, опре­де­ле­ния их со­сто­я­ния, со­став­ле­ния от­че­тов об их вы­пол­не­нии и т. д. Этот новый под­ход к им­пор­ту и экс­пор­ту поч­то­вых дан­ных похож на мо­дель пе­ре­ме­ще­ния поч­то­вых ящи­ков Exchange 2010.

Под­го­тов­ка опе­ра­ций им­пор­та и экспорта

Пре­жде чем мы по­смот­рим на де­та­ли новых ко­манд и раз­бе­рем при­ме­ры, да­вай­те об­ра­тим­ся к про­цес­су пред­ва­ри­тель­ной под­го­тов­ки дан­ных опе­ра­ций. Во-пер­вых, ад­ми­ни­стра­то­ры не могут экс­пор­ти­ро­вать и им­пор­ти­ро­вать поч­то­вые дан­ные, пока у них нет яв­но­го раз­ре­ше­ния на это. Огра­ни­че­ние су­ще­ству­ет для того, чтобы за­щи­тить кон­фи­ден­ци­аль­ность поль­зо­ва­тель­ских поч­то­вых ящи­ков, по­сколь­ку вряд ли кто-то хочет, чтобы каж­дый ад­ми­ни­стра­тор ма­ни­пу­ли­ро­вал его дан­ны­ми. Иде­аль­ная си­ту­а­ция — это предо­ста­вить до­ступ толь­ко огра­ни­чен­но­му ко­ли­че­ству ад­ми­ни­стра­то­ров и ре­гу­ляр­но про­ве­рять его. До­ступ да­ет­ся на базе ме­ха­низ­ма ролей Role Based Access Control (RBAC) в виде член­ства в груп­пе Mailbox Import Export. Поль­зо­ва­те­ли, яв­ля­ю­щи­е­ся чле­на­ми этой груп­пы, могут за­пус­кать новые ко­ман­ды, тогда как поль­зо­ва­те­ли, ко­то­рые не при­над­ле­жат к ней, не могут вы­пол­нять за­про­сы на им­порт/экс­порт. Exchange не будет за­гру­жать со­от­вет­ству­ю­щие ко­ман­ды в сес­сии Exchange Management Shell (EMS) этих поль­зо­ва­те­лей, по­сколь­ку их учет­ные за­пи­си не яв­ля­ют­ся чле­на­ми ро­ле­вой груп­пы Mailbox Import Export.
Во-вто­рых, все дан­ные им­пор­ти­ру­ют­ся в раз­ные хра­ни­ли­ща PST и экс­пор­ти­ру­ют­ся из них. Ни­ка­кой дру­гой фор­мат дан­ных не под­дер­жи­ва­ет­ся, по­сколь­ку фор­мат PST по факту яв­ля­ет­ся стан­дар­том для пе­ре­ме­ще­ния дан­ных в и из Exchange. По­лу­ча­ю­щи­е­ся в ре­зуль­та­те PST, со­здан­ные Exchange, ис­поль­зу­ют самый по­след­ний фор­мат Unicode. Exchange может им­пор­ти­ро­вать дан­ные из раз­ных PST как в фор­ма­те Unicode, так и в более ста­ром фор­ма­те ANSI. Дан­ные могут быть им­пор­ти­ро­ва­ны из PST в несколь­ко раз­ных поч­то­вых ящи­ков, од­на­ко толь­ко один за­прос на им­порт почты может по­лу­чить до­ступ к кон­крет­но­му PST за раз. Ни­ка­кой дру­гой кли­ент не может по­лу­чить до­ступ к PST, пока Exchange ис­поль­зу­ет его.
В-тре­тьих, файлы PST, ко­то­рые со­дер­жат дан­ные для пе­ре­ме­ще­ния в поч­то­вые ящики, долж­ны быть по­ме­ще­ны в общий ре­сурс, до­ступ­ный для чте­ния/за­пи­си груп­пе Exchange Trusted Subsystem, как по­ка­за­но на экране 1. Exchange 2010 ис­поль­зу­ет груп­пу Exchange Trusted Subsystem для того, чтобы поз­во­лить сер­ве­рам Exchange по­лу­чить без­опас­ный до­ступ к дан­ным. Вам не нужно обес­пе­чи­вать до­ступ к ре­сур­су об­ще­го поль­зо­ва­ния ко­му-ли­бо дру­го­му. Ана­ло­гич­но, когда Exchange экс­пор­ти­ру­ет дан­ные в PST, он за­пи­сы­ва­ет PST в за­щи­щен­ный общий ре­сурс. При­чи­на того, что Exchange ис­поль­зу­ет общий ре­сурс, про­ста: все опе­ра­ции с поч­то­вым ящи­ком вы­пол­ня­ют­ся служ­бой MRS, за­пус­ка­е­мой на сер­ве­ре Client Access. Можно на­зна­чить об­ра­бот­ку за­про­са на им­порт или экс­порт поч­то­во­го ящика кон­крет­но­му эк­зем­пля­ру MRS, но если этого не де­лать, то любой эк­зем­пляр MRS, за­пус­ка­е­мый на сер­ве­ре Client Access, может об­ра­ба­ты­вать за­прос. Таким об­ра­зом, вы не мо­же­те знать, что копия MRS будет за­пу­ще­на на том же самом сер­ве­ре, на ко­то­ром рас­по­ло­же­ны дан­ные для им­пор­та. Хра­ни­ли­ще данных долж­но быть до­ступ­ным для лю­бо­го сер­ве­ра Client Access в сайте. От­сю­да и ре­ше­ние Microsoft: ис­поль­зо­вать общий ресурс.

Экран 1. Раз­ре­ше­ние чте­ния/за­пи­си для груп­пы Exchange Trusted Subsystem
Хотя Microsoft про­де­ла­ла боль­шую ра­бо­ту в про­дви­же­нии новой мо­де­ли им­пор­та/экс­пор­та в Exchange 2010 SP1, при­ро­да раз­вер­ты­ва­ния про­грамм­но­го обес­пе­че­ния та­ко­ва, что пер­вая вер­сия про­дук­та не может ре­шить все про­бле­мы. В этом слу­чае тре­бу­ет­ся за­пу­стить все про­це­ду­ры им­пор­та и экс­пор­та поч­то­вых ящи­ков через EMS, по­сколь­ку раз­ра­бот­чи­ки Microsoft не смог­ли мо­дер­ни­зи­ро­вать преды­ду­щий ма­стер на­строй­ки им­пор­та и экс­пор­та поч­то­вых ящи­ков, ко­то­рые до­ступ­ны в вер­сии Exchange 2010 в кон­со­ли Exchange Management Console (EMC). При­нуж­де­ние ад­ми­ни­стра­то­ров к ис­поль­зо­ва­нию EMS оправ­дан­но. Это удач­ный ком­про­мисс между ис­поль­зо­ва­ни­ем рас­ши­рен­ных функ­ций новой мо­де­ли и устра­не­ни­ем неле­по­го тре­бо­ва­ния уста­нов­ки Outlook на сер­ве­ре Exchange, пре­жде чем вы смо­же­те по­лу­чить до­ступ к дан­ным поч­то­во­го ящика.
В таб­ли­це пе­ре­чис­ле­ны новые ко­ман­ды, ко­то­рые предо­став­ля­ет Exchange 2010 SP1 для им­пор­та и экс­пор­та дан­ных поч­то­вых ящи­ков. Более ста­рые вер­сии ко­манд Import-Mailbox и Export-Mailbox более недо­ступ­ны в SP1.

Таб­ли­ца. Ко­ман­ды Import-Mailbox и Export-Mailbox в Exchange 2010 SP1
Файл Exchange 2010 SP1 Help со­дер­жит много по­лез­ных при­ме­ров того, как ис­поль­зо­вать новые ко­ман­ды, вклю­чая фор­мат, тре­бу­е­мый раз­лич­ны­ми па­ра­мет­ра­ми. Ши­ро­кий спектр функ­ций новых ко­манд предо­став­ля­ет раз­ра­бот­чи­кам и кон­суль­тан­там сто­рон­них ком­па­ний ши­ро­кие воз­мож­но­сти для со­зда­ния новых ин­стру­мен­тов для ав­то­ма­ти­че­ско­го им­пор­та поч­то­вых ящиков.

Им­порт дан­ных поч­то­во­го ящика

Да­вай­те рас­смот­рим, как ис­поль­зу­ют­ся ко­ман­ды для им­пор­та дан­ных поч­то­во­го ящика. Сна­ча­ла со­зда­дим новый за­прос на им­порт данных:
New-mailboxImportrequest -Mailbox
   'TRedmond' -FilePath '\\ExServer1\
   Imports\TRedmond.pst' -Name
   'Import-tr' -ConflictResolutionoption
   KeepLatestItem -BadItemLimit 5
Эта ко­ман­да со­зда­ет новый за­прос на им­порт для поч­то­во­го ящика с псев­до­ни­мом TRedmond и ука­зы­ва­ет, что ис­ход­ный файл PST раз­ме­щен на общем ре­сур­се, на­зван­ном Imports, на сер­ве­ре ExServer1. После того как ко­ман­да вы­да­на, за­прос на им­порт по­ме­ща­ет­ся в оче­редь Active Directory (AD). За­прос будет об­ра­ба­ты­вать­ся пер­вым эк­зем­пля­ром MRS на сайте, ко­то­рый от­ве­ча­ет за запрос.
По умол­ча­нию Exchange вы­пол­ня­ет про­вер­ку на на­ли­чие дуб­ли­ро­ван­ных эле­мен­тов, когда им­пор­ти­ру­ет дан­ные в поч­то­вый ящик. Exchange не со­зда­ет копию эле­мен­та, если она су­ще­ству­ет в це­ле­вом ящике (иден­ти­фи­ка­тор со­об­ще­ния слу­жит для об­на­ру­же­ния копий). В этом слу­чае па­ра­метр ConfictResolutionOption опре­де­ля­ет, что если во время про­цес­са им­пор­та су­ще­ству­ет копия эле­мен­та, то со­хра­ня­ет­ся по­след­няя вер­сия. Дру­ги­ми ва­ри­ан­та­ми яв­ля­ют­ся KeepAll (со­хра­нять все вер­сии) и KeepSourceItem (со­хра­нять ис­ход­ную вер­сию эле­мен­та из им­пор­ти­ро­ван­но­го PST).
В при­ме­ре кода для за­про­са на им­порт за­да­но уни­каль­ное имя Import-TR. Это необя­за­тель­ный па­ра­метр. Если вы не за­да­ди­те имя, Exchange по умол­ча­нию даст имя MailboxImport. Если вы со­зда­е­те несколь­ко за­про­сов на им­порт, Exchange будет ис­поль­зо­вать такие имена, как MailboxImport1, MailboxImport2, MailboxImport3 и т. д. для вы­де­ле­ния каж­дой опе­ра­ции им­пор­та. Имя поч­то­во­го ящика и имя за­про­са ском­би­ни­ро­ва­ны и ис­поль­зу­ют­ся для из­вле­че­ния ин­фор­ма­ции о за­про­се на импорт.
На­зна­че­ние осо­бо­го имени для за­про­са на им­порт ста­но­вит­ся важ­ным, если вы хо­ти­те за­пу­стить несколь­ко опе­ра­ций им­пор­та од­но­вре­мен­но в один и тот же ящик, каж­дая из ко­то­рых об­ра­ба­ты­ва­ет дан­ные из раз­лич­ных PST (вы не мо­же­те за­пус­кать несколь­ко опе­ра­ций им­пор­та од­но­вре­мен­но из од­но­го и того же PST). В таком сце­на­рии Exchange на­зна­чит имена по умол­ча­нию. Од­на­ко проще от­сле­дить ра­бо­ту каж­до­го про­цес­са и ошиб­ки, если вы на­зна­ча­е­те более по­нят­ные имена, такие как имя ис­ход­но­го PST.
Им­пор­ти­ро­вать все дан­ные в PST не нужно, по­сколь­ку па­ра­мет­ры ExcludeFolders и IncludeFolders поз­во­ля­ют вам кон­тро­ли­ро­вать прак­ти­че­ски каж­дую папку при опе­ра­ции им­пор­та Exchange. На­при­мер, чтобы им­пор­ти­ро­вать толь­ко несколь­ко по­име­но­ван­ных папок, мы можем пе­ре­дать их так:
-IncludeFolders "Project Bingo",
   "My Important Stuff", "Personal
   Information"
Если вы хо­ти­те вклю­чить все папки из кор­не­вой папки, сле­ду­ет ука­зать имя кор­не­вой папки так:
-IncludeFolders "Projects/*"
В этом при­ме­ре все дан­ные под­па­пок из папки Projects будут им­пор­ти­ро­ва­ны. Если вам нужно пе­рей­ти к папке где-то в глу­бине иерар­хии, вы мо­же­те ука­зать ее имя:
-IncludeFolders "Projects/2010/Great
   Wall of China"
Очень часто файл PST со­дер­жит ас­со­ци­и­ро­ван­ные эле­мен­ты, ко­то­рые яв­ля­ют­ся скры­ты­ми эле­мен­та­ми, ис­поль­зу­е­мы­ми Outlook для хра­не­ния дан­ных, таких как пра­ви­ла, формы и пред­став­ле­ния. Exchange не будет им­пор­ти­ро­вать ас­со­ци­и­ро­ван­ные эле­мен­ты, пока вы не по­тре­бу­е­те сде­лать это, при­сво­ив па­ра­мет­ру AssociatedMessagesCopyOption зна­че­ние Copy. Во мно­гих слу­ча­ях можно из­бе­жать ко­пи­ро­ва­ния ас­со­ци­и­ро­ван­ных эле­мен­тов из PST, по­то­му что эк­ви­ва­лент ас­со­ци­и­ро­ван­но­го эле­мен­та, ве­ро­ят­но, уже су­ще­ству­ет в поч­то­вом ящике. Ис­клю­че­ние воз­мож­но, если при­ло­же­нию тре­бу­ет­ся форма, ко­то­рая не су­ще­ству­ет в поч­то­вом ящике, и вы это знаете.
После того как за­да­ние от­прав­ле­но и служ­ба MRS на­ча­ла об­ра­бот­ку, вы мо­же­те по­лу­чить ин­фор­ма­цию о про­цес­се вы­пол­не­ния. В нашем при­ме­ре мы ис­поль­зу­ем ко­ман­ду Get-MailboxImportRequest таким образом:
Get-MailboxImportRequest -Identity
   'TRedmond\Import-TR'
За­меть­те, что имя поч­то­во­го ящика (TRedmond) и имя за­про­са (Import-TR) ском­би­ни­ро­ва­ны для того, чтобы сфор­ми­ро­вать уни­каль­ную за­пись о за­да­нии, в ко­то­ром мы заинтересованы.
Ко­ман­да Get-MailboxImportRequest под­дер­жи­ва­ет несколь­ко па­ра­мет­ров, для того чтобы из­вле­кать ста­тус раз­лич­ных групп заданий.
  • Па­ра­метр BatchName из­вле­ка­ет де­та­ли всех за­про­сов, ко­то­рые при­над­ле­жат к опре­де­лен­ной груп­пе заданий.
  • Па­ра­метр Database из­вле­ка­ет де­та­ли всех за­про­сов, ко­то­рые при­над­ле­жат к поч­то­вым ящи­кам в опре­де­лен­ной базе дан­ных поч­то­вых ящиков.
  • Па­ра­метр Status из­вле­ка­ет де­та­ли всех за­про­сов с опре­де­лен­ным ста­ту­сом. До­пу­сти­мый ста­тус вклю­ча­ет в себя Completed, InProgress, Queued, CompletedWithWarning, Suspended и Failed.
Чтобы со­здать отчет о вы­пол­не­нии про­цес­са им­пор­та, можно ис­поль­зо­вать ко­ман­ду Get-MailboxImportRequest Statistics, ко­то­рая по­ка­зы­ва­ет, сколь­ко дан­ных было пе­ре­да­но. Сна­ча­ла вы уви­ди­те, что MRS со­зда­ет иерар­хию папки в це­ле­вом поч­то­вом ящике, для того чтобы при­нять им­пор­ти­ру­е­мые дан­ные. Затем вы уви­ди­те уве­ли­че­ние счет­чи­ка пе­ре­дан­ных эле­мен­тов, так как MRS пе­ре­ме­ща­ет дан­ные из PST в поч­то­вый ящик. Например:
Get-MailboxImportRequestStatistics
   -Identity 'TRedmond\Import-tr' |
   Format-List
Ко­ман­да Get-MailboxImport­Request­Statistics вы­да­ет много ин­фор­ма­ции. И это хо­ро­шая идея — огра­ни­чить ко­ли­че­ство воз­вра­ща­е­мых свойств и для вы­во­да толь­ко необ­хо­ди­мых дан­ных об опе­ра­ции им­пор­та. Обыч­но я ис­поль­зую ко­ман­ду, по­ка­зан­ную в ли­стин­ге. На экране 2 по­ка­за­на ра­бо­та ко­манд New-MailboxImportRequest, Get-MailboxImportRequest и Get- MailboxImportRequestStatistics в действии.

Экран 2. Им­порт дан­ных поч­то­во­го ящика Exchange 2010 SP1
Когда им­порт за­кон­чен, вы мо­же­те за­дей­ство­вать ко­ман­ду Get-Mailbox­ImportRequestStatistics для по­лу­че­ния от­че­та обо всем, что сде­ла­ла MRS для того, чтобы за­пол­нить поч­то­вый ящик дан­ны­ми из PST:
Get-MailboxImportRequestStatistics
   -Identity 'tredmond\Import-tr'
   -Includereport | Format-List
по умол­ча­нию отчет вы­во­дит­ся на экран. Од­на­ко кон­вей­ер­ная ор­га­ни­за­ция вы­во­да в тек­сто­вый файл за­кан­чи­ва­ет­ся более удоб­ным от­че­том, ко­то­рый проще чи­тать и ко­то­рый со­дер­жит боль­ше ин­фор­ма­ции. Отчет об им­пор­те поч­то­во­го ящика вклю­ча­ет ре­зю­ме, за ко­то­рым сле­ду­ет де­таль­ная ин­фор­ма­ция о ходе пе­ре­ме­ще­ния каж­дой папки из ис­ход­но­го PST в це­ле­вой поч­то­вый ящик. Самая важ­ная ин­фор­ма­ция включает:
  • имя ис­ход­но­го PST;
  • имя це­ле­во­го поч­то­во­го ящика и базы дан­ных, где он размещен;
  • те­ку­щий ста­тус за­да­ния (на­при­мер, «за­вер­ше­но», «нет предупреждений»);
  • ко­ли­че­ство оши­боч­ных эле­мен­тов, встре­тив­ших­ся в про­цес­се об­ра­бот­ки (три, что мень­ше ли­ми­та в пять эле­мен­тов, опре­де­лен­ных в па­ра­мет­ре BadItemLimit parameter в при­ме­ре команды);
  • на­ча­ло и конец вре­ме­ни об­ра­бот­ки за­да­ния и имя эк­зем­пля­ра MRS, ко­то­рый об­ра­ба­ты­вал его;
  • общее ко­ли­че­ство эле­мен­тов и их раз­мер, пе­ре­дан­ные из PST в поч­то­вый ящик;
  • были ли ука­за­ны папки для при­ну­ди­тель­но­го вклю­че­ния или исключения.

Экс­порт дан­ных поч­то­во­го ящика

Во мно­гом по­хо­жий под­ход пред­став­ля­ет и экс­порт дан­ных поч­то­во­го ящика. Од­на­ко ис­поль­зу­ет­ся дру­гой набор ко­манд. Вы за­пус­ка­е­те ко­ман­ду New-MailboxExportRequest для со­зда­ния но­во­го за­про­са на экс­порт. На­при­мер, чтобы экс­пор­ти­ро­вать весь поч­то­вый ящик в PST, можно ис­поль­зо­вать ко­ман­ду на­по­до­бие этой:
New-MailboxExportRequest -Mailbox
   'Tony Redmond' -Name 'TRedmond
   Export' -BadItemLimit 5
   -ExcludeDumpster:$true -FilePath
   '\\Ex2010\Exports\TRedmond.PSt'
Эта ко­ман­да за­би­ра­ет весь кон­тент пред­ла­га­е­мо­го ящика и за­пи­сы­ва­ет его в PST в папку об­ще­го до­сту­па. Кон­тент папок му­сор­ных кор­зин ис­клю­чен из опе­ра­ции. Если PST не ука­зан, Exchange будет со­зда­вать новый файл. А если вы ука­же­те имя су­ще­ству­ю­ще­го PST, MRS будет за­пи­сы­вать экс­пор­ти­ру­е­мые дан­ные в него.
Опыт под­ска­зы­ва­ет, что лучше при­ме­нять уточ­ни­те­ли к филь­тру или огра­ни­чить ин­фор­ма­цию, экс­пор­ти­ру­е­мую из поч­то­во­го ящика, чем в слу­чае с им­пор­том PST в поч­то­вый ящик. На­при­мер, если вы вы­пол­ня­е­те за­прос на поиск в со­от­вет­ствии с юри­ди­че­ским за­про­сом, от вас, ве­ро­ят­но, по­тре­бу­ет­ся дать копию кон­крет­ной ре­ле­вант­ной ин­фор­ма­ции, а не всего со­дер­жи­мо­го поч­то­во­го ящика поль­зо­ва­те­ля. Exchange ис­поль­зу­ет несколь­ко па­ра­мет­ров, чтобы кон­тро­ли­ро­вать экс­пор­ти­ру­е­мые данные.
Па­ра­метр SourceRootFolder опре­де­ля­ет папку в поч­то­вом ящике, ко­то­рая будет ис­поль­зо­вать­ся как база экс­пор­та. Если этот па­ра­метр не ука­зан, Exchange экс­пор­ти­ру­ет все со­дер­жи­мое поч­то­во­го ящика. На­при­мер, сле­ду­ю­щая ко­ман­да экс­пор­ти­ру­ет толь­ко те эле­мен­ты, ко­то­рые хра­нят­ся в папке Project Bluesky и ее подпапках:
New-MailboxExportRequest
   -SourcerootFolder 'Projects/
   Project Bluesky' -Mailbox 'TRedmond'
   -FilePath '\\ExServer1\Imports\
   TRedmond.pst' -BadItemLimit 5
В этом при­ме­ре папка Project Bluesky яв­ля­ет­ся под­пап­кой папки Project.
Па­ра­метр TargetRootFolder опре­де­ля­ет кор­не­вую папку в це­ле­вом PST для того, чтобы со­здать папки, экс­пор­ти­ро­ван­ные из поч­то­во­го ящика.
Па­ра­метр IncludeFolders опре­де­ля­ет одну или более папок, ко­то­рые долж­ны быть экс­пор­ти­ро­ва­ны. Например:
New-MailboxExportRequest
   -IncludeFolders ‘Projects’,
   ‘Planning/Budgets 2010’ -Mailbox
   ‘TRedmond’ -FilePath ‘\\ExServer1\
   Imports\TRedmond.pst’ -BadItemLimit 5
Па­ра­метр ExcludeFolders опре­де­ля­ет одну или несколь­ко папок, ко­то­рые ис­клю­ча­ют­ся из про­цес­са экспорта.
Па­ра­метр IsArchive опре­де­ля­ет, что экс­порт дол­жен быть про­из­ве­ден из ар­хи­ва поль­зо­ва­те­ля, а не из ос­нов­но­го поч­то­во­го ящика.
И по­вто­рю: файл Exchange 2010 SP1 Help со­дер­жит все необ­хо­ди­мые ин­струк­ции для ис­поль­зо­ва­ния этих параметров.

Несколь­ко слов об оперативности

Во время вы­пол­не­ния про­ек­та ми­гра­ции вы столк­не­тесь с им­пор­ти­ро­ва­ни­ем в Exchange ги­га­бай­тов ин­фор­ма­ции. И даже для са­мо­го но­во­го вы­пус­ка Exchange 2010 это нелег­кая за­да­ча. Необ­хо­ди­мо кое-что спла­ни­ро­вать, чтобы им­пор­ти­ро­вать ин­фор­ма­цию в поль­зо­ва­тель­ские поч­то­вые ящики.
Необ­хо­ди­мо на­стро­ить квоты для це­ле­вых поч­то­вых ящи­ков, чтобы им­пор­ти­ро­вать дан­ные из PST. Уве­ли­че­ние квоты может быть по­сто­ян­ным, но вы мо­же­те и умень­шить ее после того, как поль­зо­ва­тель про­смот­рит им­пор­ти­ро­ван­ный ма­те­ри­ал и решит, со­хра­нять эти дан­ные в поч­то­вым ящике или их нужно пе­ре­ме­стить в он­лайн-ар­хив. Уве­ли­че­ние квоты для ряда це­ле­вых поч­то­вых ящи­ков до им­пор­та яв­ля­ет­ся от­но­си­тель­но про­стой про­це­ду­рой при на­пи­са­нии сце­на­рия, но необ­хо­ди­мость уве­ли­че­ния квоты яв­ля­ет­ся ин­ди­ка­то­ром того, что об­ра­бот­ка вы­пол­ня­ет­ся вруч­ную, и это свой­ство про­цес­сов им­пор­та PST.
Одним из спо­со­бов опре­де­ле­ния квоты поч­то­во­го ящика яв­ля­ет­ся про­смотр раз­ме­ра PST, ко­то­рый дол­жен быть им­пор­ти­ро­ван. Хотя этот под­ход на самом деле эф­фек­ти­вен, раз­мер PST на диске не на­пря­мую равен ко­ли­че­ству дан­ных, ко­то­рое будет им­пор­ти­ро­ва­но в поч­то­вый ящик. Струк­ту­ра файла PST пред­по­ла­га­ет пре­вы­ше­ние при­мер­но на 20% раз­ме­ра, ко­то­рый тре­бу­ет­ся для хра­не­ния эле­мен­тов в опе­ра­тив­ном поч­то­вом ящике или ар­хи­ве. Вам нужно убе­дить­ся, что квота у це­ле­вых поч­то­вых ящи­ках до­ста­точ­на, до того, как вы нач­не­те им­пор­ти­ро­вать дан­ные. Будет лучше вре­мен­но уве­ли­чить квоту по­сред­ством за­вы­ше­ния раз­ме­ра, чем рис­ко­вать тем, что им­порт не со­сто­ит­ся по при­чине недо­ста­точ­ной квоты.
По вы­бо­ру вы мо­же­те им­пор­ти­ро­вать дан­ные в ар­хив­ные поч­то­вые ящики, а не в ос­нов­ные поль­зо­ва­тель­ские поч­то­вые ящики (ис­поль­зуй­те па­ра­метр IsArchive для того, чтобы со­об­щить Exchange, что он дол­жен им­пор­ти­ро­вать дан­ные в архив). SP1 поз­во­ля­ет по­ме­стить ар­хив­ные поч­то­вые ящики в базы дан­ных от­дель­но от ос­нов­ных поч­то­вых ящи­ков. Это свой­ство вы также мо­же­те ис­поль­зо­вать для со­зда­ния баз дан­ных, ко­то­рые вы­де­ле­ны в хра­ни­ли­ще ар­хи­вов. Не за­будь­те про­ве­рить и на­стро­ить квоты ар­хи­вов для це­ле­вых поч­то­вых ящи­ков перед им­пор­том данных.
Каж­дый эле­мент, ко­то­рый им­пор­ти­ру­ет­ся в поч­то­вый ящик, со­зда­ет тран­зак­цию, ко­то­рую хра­ни­ли­ще Exchange долж­но от­ра­зить в жур­на­ле ре­ги­стра­ции тран­зак­ций. Ко­ли­че­ство опе­ра­ций вво­да-вы­во­да под­ска­ки­ва­ет во время им­пор­та, так как базы дан­ных, ко­то­рые при­ни­ма­ют це­ле­вые поч­то­вые ящики, со­вер­ша­ют тран­зак­ции для того, чтобы раз­ме­стить вхо­дя­щие дан­ные PST. Даль­ней­шая ак­тив­ность си­сте­мы вво­да-вво­да и про­цес­со­ра вы­зва­на до­бав­ле­ни­ем эле­мен­тов к ин­дек­сам кон­тен­та для це­ле­вых баз дан­ных. Еще боль­ше ге­не­ри­ру­ет­ся опе­ра­ций вво­да-вы­во­да, если поль­зо­ва­те­ли пе­ре­ме­ща­ют ин­фор­ма­цию из их ос­нов­ных поч­то­вых ящи­ков в лич­ные ар­хи­вы после за­вер­ше­ния опе­ра­ций импорта.
Если им­порт про­во­дит­ся внут­ри груп­пы до­ступ­но­сти базы дан­ных (DAG), по­хо­жие всплес­ки опе­ра­ций вво­да-вы­во­да на­блю­да­ют­ся на сер­ве­рах, ко­то­рые со­дер­жат копии баз дан­ных це­ле­вых поч­то­вых ящи­ков в силу необ­хо­ди­мо­сти вы­пол­не­ния ре­пли­ка­ций, вос­про­из­ве­де­ния и ин­дек­си­ро­ва­ния. В такой си­ту­а­ции есть по­тен­ци­ал для со­зда­ния цу­на­ми опе­ра­ций вво­да-вы­во­да по всей DAG.
Служ­ба MRS ис­поль­зу­ет на­строй­ки пе­ре­да­чи MaxSendSize для осу­ществ­ле­ния кон­тро­ля мак­си­маль­но­го раз­ме­ра эле­мен­тов, ко­то­рый она может им­пор­ти­ро­вать в поч­то­вые ящики. По умол­ча­нию раз­мер со­став­ля­ет 10 Мбайт. Если вы хо­ти­те боль­ше эле­мен­тов, вам нужно за­пу­стить ко­ман­ду Set-TransportConfig для уве­ли­че­ния на­строй­ки. Например:
Set-TransportConfig -MaxSendSize 20 MB
Убе­ди­тесь, что вы уда­ли­ли па­ро­ли у всех PST, из ко­то­рых будут им­пор­ти­ро­ва­ны дан­ные, по­сколь­ку нет спо­со­ба ука­зать па­роль в ко­ман­де. Точно так же вы не мо­же­те за­дать па­роль для PST, когда со­зда­е­те его во время опе­ра­ции экс­пор­та поч­то­во­го ящика. Таким об­ра­зом, вы долж­ны пред­при­нять неко­то­рые шаги для обес­пе­че­ния за­щи­ты ин­фор­ма­ции в PST, со­дер­жа­щей­ся на общем ре­сур­се, чтобы убе­дить­ся, что файлы не будут от­кры­ты неав­то­ри­зо­ван­ны­ми поль­зо­ва­те­ля­ми. Пом­ни­те, что, в от­ли­чие от файла OST, ко­то­рый может быть от­крыт толь­ко тогда, когда кли­ент знает, что поч­то­вый ящик со­дер­жит внут­ри OST копию файла, любой кли­ент MAPI может от­крыть файл PST. Кроме того, на­ли­чие па­ро­ля на PST не га­ран­ти­ру­ет без­опас­но­сти файла, по­сколь­ку в Ин­тер­не­те до­ступ­ны мно­гие ути­ли­ты для взла­мы­ва­ния па­ро­лей PST за пару секунд.
По­сколь­ку Exchange 2010 SP1 яв­ля­ет­ся все еще до­ста­точ­но новым про­дук­том в ра­бо­чей среде, труд­но оха­рак­те­ри­зо­вать эф­фек­тив­ность того, на­сколь­ко ра­ци­о­наль­но сер­вер Exchange смо­жет управ­лять мно­же­ствен­ны­ми од­но­вре­мен­ны­ми опе­ра­ци­я­ми им­пор­та и экс­пор­та. По этой при­чине лучше за­пла­ни­ро­вать дан­ные опе­ра­ции на пе­ри­о­ды низ­кой ак­тив­но­сти поль­зо­ва­те­лей, для того чтобы из­бе­жать кон­ку­рен­ции между опе­ра­ци­я­ми вво­да-вы­во­да и за­про­са­ми на об­ра­бот­ку, со­зда­ва­е­мы­ми обыч­ны­ми поль­зо­ва­те­ля­ми. Спо­соб­ность сер­ве­ра Exchange об­ра­ба­ты­вать дан­ные поч­то­вых ящи­ков ме­ня­ет­ся от сер­ве­ра к сер­ве­ру. Это за­ви­сит от те­ку­щей за­груз­ки и про­из­во­ди­тель­но­сти си­сте­мы. Вме­сти­мость диска и про­пуск­ная спо­соб­ность под­си­сте­мы вво­да-вы­во­да яв­ля­ют­ся са­мы­ми важ­ны­ми. На­при­мер, им­порт 1,35-ги­га­байт­но­го хра­ни­ли­ща PST, со­дер­жа­ще­го 7450 эле­мен­тов, занял у сер­ве­ра с уме­рен­ной за­груз­кой 15 минут. Ис­поль­зо­ва­ние более мощ­но­го сер­ве­ра или пла­ни­ро­ва­ние ра­бо­ты на пе­ри­од низ­кой ак­тив­но­сти поль­зо­ва­те­лей уве­ли­чит про­пуск­ную спо­соб­ность. В этом слу­чае боль­шая часть сер­ве­ров смо­жет им­пор­ти­ро­вать 8 Гбайт в час.

Взгляд в будущее

Вы мо­же­те недо­оце­нить мас­штаб про­грес­са, ко­то­рый сти­му­ли­ро­ва­ла Microsoft, внед­рив новую мо­дель им­пор­та/экс­пор­та поч­то­вых ящи­ков в Exchange 2010 SP1. Кто-то может ска­зать, что Microsoft про­сто за­пол­ни­ла про­бел, ко­то­рый су­ще­ство­вал в дан­номпро­дук­те с тех пор, как он толь­ко был вы­пу­щен. И в этом есть доля прав­ды. Ис­то­рия с за­ви­си­мо­стью от про­грамм, таких как Outlook и ExMerge, опре­де­лен­но не яв­ля­ет­ся самым ярким про­яв­ле­ни­ем воз­мож­но­стей Exchange. Од­на­ко Exchange 2010 SP1 предо­став­ля­ет столь изыс­кан­ное ре­ше­ние для им­пор­та и экс­пор­та поч­то­вых ящи­ков, что про­сто бес­смыс­лен­но вспо­ми­нать о преж­них ограничениях.
Тони Ред­монд (exchguru@​windowsitpro.​com) — ре­дак­тор жур­на­ла Windows IT Pro, стар­ший тех­ни­че­ский ре­дак­тор Exchange & Outlook Administrator, ви­це-пре­зи­дент и глав­ный тех­но­лог HP Services
Ли­стинг. Get-MailboxImportRequestStatistics
Get-MailboxImportRequestStatistics -Identity ‘TRedmond\Import-TR’ | Select Name, Status, StatusDetail, BytesTransferred, ItemsTransferred, EstimatedTransferItemCount, BytesTransferredPerMinute
Name : Import-TR
Status : InProgress
StatusDetail : CopyingMessages
BytesTransferred : 191.6 MB (200,929,681 bytes)
ItemsTransferred : 2346
EstimatedTransferItemCount : 4233
BytesTransferredPerMinute : 75.82 MB (79,505,066 bytes)

Комментариев нет:

Отправить комментарий