Наша совместная команда Banwar.org

Связаться с нами

  • (097) ?601-88-87
    (067) ?493-44-27
    (096) ?830-00-01

Статьи

Усередині профілю MAPI

  1. Розуміння структури профілів - основа успішної діагностики Профілі інтерфейсів прикладного програмування...
  2. Глобально унікальні ідентифікатори служб
  3. Додавання другого поштової скриньки
  4. Як дізнатися, що означають цифри
  5. Застосування файлів .prf
Розуміння структури профілів - основа успішної діагностики

Профілі інтерфейсів прикладного програмування Messaging API (MAPI) є основним механізмом налаштування клієнта Outlook. Профілі сповіщають цю програму про те, які послуги доступні для кінцевих користувачів, і про характеристики цих послуг. Так, в профілі зберігаються імена та шляхи до папки автономного сховища (Offline Store, OST) і до папки персонального сховища (Personal Store, PST). Іноді потрібно внести ті чи інші зміни в вміст профілів - в випадках, коли необхідно з'ясувати причини неполадок, або, що буває частіше, в ході реструктуризації систем, або при переведенні користувачів на нові системи. Для вирішення цього завдання є безліч інструментальних засобів. Деякі з них (такі, як profgen.exe і newprof.exe) розроблені фахівцями Microsoft, інші - незалежними постачальниками. Але ці інструменти не завжди відповідають конкретним запитам адміністраторів, тому не виключено, що доведеться засукати рукава і взяти справу модифікації профілів MAPI в свої руки. Перед тим як приступити до цієї роботи, слід ознайомитися зі структурою профілів.

Структура профілів MAPI

Профілі MAPI - не більше ніж набори параметрів системного реєстру, і тому маніпулювати ними можна за допомогою безлічі різних методів. У даній статті я розповім про те, як досліджувати вміст профілів з використанням редактора реєстру regedit. Але перед тим як перейти до викладу матеріалу, хочу ввести наступну застережливу формулу: редактор regedit + людина = міна уповільненої дії. Пряме редагування реєстру - процедура небезпечна; при всякій нагоді краще намагатися уникати таких операцій. Якщо є документовані інтерфейси API, варто користуватися ними, оскільки вони автоматично оновлюють відповідні розділи реєстру. Ну, а вже якщо все-таки доводиться вносити зміни вручну, необхідно завчасно робити резервну копію реєстру. Я, наприклад, завжди експортує той розділ реєстру, в який хочу внести зміни, і якщо щось піде не так, у мене залишається можливість знову імпортувати заготовлений файл .reg.

У системах Windows XP, Windows 2000 і Windows NT 4.0 профілі записані в розділі реєстру HKEY_CURRENT_USERSoftwareMicrosoft Windows NTCurrentVersionWindows MessagingSubsystemProfiles, а в системах Windows ME, Windows98 і Windows 95 - в розділі HKEY_CURRENT_USERSoftwareMicrosoft WindowsMessaging SubsystemProfiles. Як показано на екрані 1, в розділі Profiles є підрозділи для кожного створеного адміністратором профілю MAPI (можна створювати стільки профілів, скільки буде потрібно). Зверніть увагу, що в якості значення параметра DefaultProfile (типу REG_SZ) на правій панелі вказано ім'я поточного профілю, прийнятого за замовчуванням (в даному випадку це профіль Cached). Щоб вручну змінити ім'я профілю, прийнятого за замовчуванням, можна вказати в якості значення цього параметра одне з імен профілів, визначених у підрозділі Profiles.

Опустившись ще на один рівень вниз, як показано на екрані 2, ви можете побачити підрозділи профілю Cached і асоційовані значення одного підрозділу. Як ми бачимо на екрані 2, імена підрозділів являють собою не більш ніж набори цифр і букв. Профілі визначаються через служби, а кожна служба має один або кілька параметрів, які задають її конфігурацію. Щоб конфігурація однієї служби не зраджувала конфігурацію інший, як ім'я підрозділу реєстру, де описується ця служба, використовуються глобально унікальні ідентифікатори GUID (Globally Unique Identifier); відзначимо, що іноді в документації використовується також термін section GUID.

Усередині профілю можна описувати безліч різних служб, таких як параметри клієнта Outlook, облікові записи електронної пошти (скажімо, POP, Exchange і IMAP), дані адресної книги, шляхи розміщення сховищ PST / OST, а також параметри, які використовуються в конкретних додатках. Можливість маніпулювання різними параметрами реєстру забезпечують багато додатків (включаючи програми від незалежних постачальників). Так, в результаті звернення до модуля Mail з Control Panel для управління своїми профілями або в результаті звернення до клієнта Outlook з метою встановлення порядку перегляду записів адресної книги параметри служб в реєстрі будуть оновлені.

Інформацію про властивості MAPI тієї чи іншої служби можна почерпнути з імен параметрів. Кожна властивість MAPI характеризується типом даних (скажімо, Binary, Unicode, ANSI) і ідентифікатором, а також буквено-цифровими значеннями цих двох елементів з імені змінної, в якій зберігаються дані властивості. Перші чотири символи імені визначають тип даних (найбільш часто зустрічаються типи наведені в таблиці), а друга група з чотирьох символів визначає ідентифікатор елемента MAPI. Так, значення 001E6612 є строкову змінну (001E) для розпізнавального імені (Distinguished Name, DN) властивості Exchange Home Server (6612).

Ці імена параметрів реєстру мають відповідні теги властивостей MAPI, в значеннях яких ідентифікатор властивості MAPI і тип даних слідують в зворотному порядку (першим вказується ідентифікатор MAPI) і представлені в шістнадцятковому форматі. Наприклад, властивість Exchange Home Server має тег PR_PROFILE_HOME_SERVER_DN ​​з шістнадцятковим значенням & H6612001E. Теги властивостей MAPI задокументовані в різних джерелах, в тому числі в Microsoft Developer Network (MSDN). Список тегів властивостей, застосовуваних у системі Exchange, опублікований за адресою http://msdn.microsoft.com/library/default.asp?url=/library/enus/cdo/html/_olemsg_microsoft_ exchange_property_tags.asp .

Глобально унікальні ідентифікатори служб

Деякі служби мають добре відомі статичні ідентифікатори GUID, наприклад, в службі Exchange Server Details завжди використовується GUID 13dbb0c8aa05101a9bb000aa 002fc45a. Той, хто знайомий з цими добре відомими ідентифікаторами GUID, може з легкістю знайти в профілі MAPI відповідні служби їх властивості. Наприклад, щоб відшукати ім'я Exchange Home Server для кожного сформованого профілю, потрібно досліджувати розділ Profiles і кожному підрозділі шукати значення 001E6602 змінної 13dbb0c8aa05101 a9bb000aa002fc45a. Служба Outlook Client Settings теж має добре відомий ідентифікатор GUID - 0a0d020000000000c000000000000046.

Підрозділ Outlook Client Settings використовується головним чином в клієнтах, випущених до появи версії Outlook 2000. У більш пізніх версіях клієнта Outlook майже для всіх клієнтських налаштувань використовується підрозділ HKEY_CURRENT_USERSoftwareMicrosoftOffice OutlookPreferences; таке рішення прийнято для того, щоб настройки могли бути присутніми у всіх профілях MAPI.

Ідентифікатори GUID інших служб генеруються динамічно, так що працювати з ними складніше. Доброю ілюстрацією до сказаного може служити процедура створення файлу PST, в результаті якої всередині профілю, до якого належить дана персональна папка-сховище, генерується унікальний ідентифікатор служби GUID. Виникає питання: як же все-таки дізнатися, до якої службі належить той чи інший ідентифікатор GUID?

Більшість служб, хоча і не всі, мають ім'я, яке міститься у властивості 001f3D09 (Unicode) або, що зустрічається не так часто, в властивості 001e3D09 (ANSI). Ім'я служби для файлів PST - MSPST PS; отже, в поле Data змінної 001f3D09 буде значитися MSPST PS. Можна також поглянути на властивість 001f6700, що містить маршрут до файлу PST. Тег властивості PR_PST_PATH має виражену в шістнадцятковому форматі значення & H6700001F.

До числа добре відомих відноситься ще один GUID - 9375CFF 0413111d3B88A00104B2A6676. У ньому містяться докладні описи всіх облікових записів, які використовуються в даному профілі. У цьому розділі для кожного облікового запису виділяється особливий підрозділ. Так, тут зазвичай є підрозділ для облікового запису адресної книги Outlook (Outlook Address Book, OAB), для облікового запису Exchange, підрозділи для облікових записів усіх файлів PST, внесених в даний профіль, і для всіх поштових облікових записів POP3 / IMAP, які були сформовані всередині профілю.

Додавання другого поштової скриньки

А тепер виконаємо звичайну для програми Outlook операцію - додамо до профілю другий поштовий ящик. Подивимося, як ця операція відобразиться на що мають відношення до даного профілю розділи реєстру. Система Exchange передбачає можливість використання декількох провайдерів для сховищ повідомлень; за замовчуванням є два провайдера - один для сховища поштової скриньки користувача і другий - для сховища загальнодоступних папок.

Властивість MAPI для списку провайдерів сховищ - це PR_STORE_PROVIDERS; шістнадцяткове значення цієї властивості - & H3D000102. Таким чином, ми можемо виявити сховища повідомлень, які використовуються даним профілем, дослідивши значення 01023D00 змінної 13dbb0c8aa05101a9bb000aa002fc45a (ідентифікатор GUID служби Exchange Server Details). На екрані 3 стрілками показано, що дані цього параметра відносяться до глобально унікальним ідентифікаторів двох інших служб, які визначають провайдерів індивідуального сховища для профілю Cached. На екрані 4 показано, як значення 01023d00 змінюється в результаті додавання до профілю другого поштової скриньки. Зверніть увагу, що тепер у мене є третій провайдер сховища, на нього вказує ідентифікатор GUID третьої служби. Як показано на екрані 5, деталі GUID цієї служби свідчать про те, що ідентифікатор має відношення до поштової скриньки.

Як дізнатися, що означають цифри

З'ясування того, які ідентифікатори і параметри яких служб контролюють ті чи інші операції кінцевих користувачів, - завдання непросте; я розповім про двох прийомах.

По-перше, слід використовувати редактор regedit і експортувати відповідний розділ реєстру до того, як в нього будуть внесені деякі зміни, і після. Зіставлення двох вихідних файлів допоможе визначити, які з значень реєстру були змінені.

По-друге, можна задіяти утиліту Regmon, яка доступна в Internet за адресою http://www.sysinternals.com . Ця утиліта дозволяє відстежувати і фіксувати в реальному часі зміни в реєстрі. Поясню на прикладі, що дає використання Regmon. Нещодавно я вирішив написати сценарій, який дозволяв би змінювати застосовуються за замовчуванням поштові облікові записи користувачів. Оскільки я не мав уявлення про те, які саме параметри реєстру керують цією властивістю, я запустив утиліту Regmon і почав експериментувати з призначеним для користувача інтерфейсом Outlook, додаючи поштові облікові записи до свого профілю і змінюючи застосовується за умовчанням запис. Утиліта Regmon вказала на вже згаданий мною вище відомий ідентифікатор GUID служби зі списком використовуваних облікових записів: 9375CFF0413111 d3B88A00104B2A6676. Крім того, програма Regmon допомогла мені встановити ідентифікатор {ED475418 B0D6-11D2-8C3B-00104B2A6676}, який весь час змінювався в ході експериментів. У підсумку я прийшов до висновку, що пов'язані з цим ідентифікатором дані представляли собою список підрозділів, по одному на кожну поштову обліковий запис, складений в тому порядку, в якому ці поштові облікові записи були перераховані в клієнті Outlook. Маючи в своєму розпорядженні такої інформації, я міг написати сценарій, змінює групу застосовуваних за замовчуванням для користувача облікових записів.

Застосування файлів .prf

В Outlook можна маніпулювати параметром / importprf, який дозволяє створювати профілі на основі визначень, що містяться в текстових файлах профілів Outlook (файлах .prf). Синтаксис використання параметра / importprf такий:

outlook.exe / importprf

Крім іншого, файли .prf описують ідентифікатори GUID багатьох служб з асоційованими параметрами і значеннями, які в результаті знаходять своє відображення в реєстрі. У документі «White paper: Configuring Outlook Profiles by Using a PRF File» містяться інструкції по створенню файлів .prf, а також додаткові роз'яснення з приводу значень дивних цифр, що містяться в реєстрі. Цю «білу книгу» можна завантажити на сторінці Microsoft Office 2003 Resource Kit Downloads за адресою http://www.microsoft.com/office/orkarchive/2003ddl.htm . Крім того, можна генерувати файли .prf за допомогою вхідного в комплект Office Resource Kit майстра Custom Installation Wizard. Комплект можна отримати на тій же Web-сторінці.

Таким чином, адміністраторам корисно знати структуру профілів MAPI, оскільки це може допомогти усунути причину тієї чи іншої проблеми і розробити новаторське рішення проблем міграції, які на перший погляд здавалися нерозв'язними.

Кевін Лаахс - Головний консультант в підрозділі Services Advanced Technology Group компанії HP. [email protected]

Asp?
Виникає питання: як же все-таки дізнатися, до якої службі належить той чи інший ідентифікатор GUID?

Новости

Banwar.org
Наша совместная команда Banwar.org. Сайт казино "Пари Матч" теперь доступен для всех желающих, жаждущих волнения и азартных приключений.