Скрипт для масового зміни облікових записів електронної пошти в outlook express і microsoft

Скрипт для масового зміни облікових записів електронної пошти в outlook express і microsoft

то, відповідний розділ реєстру буде виглядати наступним чином:

Скрипт для масового зміни облікових записів електронної пошти в outlook express і microsoft

У кожному профілі MS Outlook можуть бути створені облікові записи електронної пошти, інформація про яких буде розміщена в реєстрі за наступним шляхом: HKCU \ Software \ Microsoft \ Windows NT \ CurrentVersion \ Windows Messaging Subsystem \ Profiles \<имя_профиля>\ 9375CFF0413111d3B88A00104B2A6676

Скрипт для масового зміни облікових записів електронної пошти в outlook express і microsoft

Таким чином, виходить, що наше завдання полягає в тому, щоб

  • перебрати всі профілі MS Outlook,
  • всередині кожного профілю перебрати всі облікові записи
  • в кожного облікового запису знайти параметри, що зберігають інформацію про imap і smtp серверах, і в тому випадку, якщо цей параметр реєстру містить старе ім'я сервера, замінити його новим.

Ось, що у мене вийшло в результаті:

Невеликі пояснення по скрипту.

Для перерахування підрозділів реєстру довелося використовувати WMI, тому що WSH не має коштів виконання цієї простої задачки. До використання WMI довелося вдатися так само і в разі запису до реєстру значення типу REG_BINARY, тому що виявилося, що метод RegWrite об'єкта WScript.Shell може записувати до реєстру тільки невеликі числа цього типу (не більше ніж MAX Integer). Як не дивно, але параметри реєстру, що зберігають імена серверів IMAP і SMTP, мають тип саме REG_BINARY і можуть містити значення багато більші, ніж MAX Integer.

Використовувати деякі методи об'єктів WMI в Jscript, викликаючи їх традиційним способом Object.Method. не завжди можливо. тому деякі методи об'єктів WMI повертають значення через параметри виклику, а JScript не підтримує повернення значень через параметри виклику функції. Тому доводиться йти обхідними шляхами, про які я згадував у першій частині. спочатку отримуємо «об'єкт-метод»

потім формуємо об'єкт, чиї поля містять вхідні параметрами виклику цього методу

викликаємо функцію виконання методу, для якого ми визначили вхідні параметри

і, нарешті, виробляємо розбір (вибір потрібних) вихідних параметрів, які ми отримуємо, як результат роботи функції виклику нашого методу

> Проте я використовую для сервісів fqdn, відмінні від fqdn серверів (через CNAME в dns прописані). типу mail.services.novgaro.ru. І при зміні ip або сервера виправляю тільки cname в DNS.

Тут не йшлося про зміну IP, тут проблема була в іншому: користувач був смігрірован з домена в домен. У нього в профілі залишилися старі настройки облікового запису ел. пошти. А потрібно прописати нові, тому що в новому домені - у нас новий поштовий сервер.
Змінювати щось у DNS - не варіант. Оскільки якщо в поштовій учетке був FQDN, то тепер він посилається на старий домен (що став чужим), а значить треба правити обліковий запис поштового клієнта. Якщо в учетке було коротке ім'я, то, звичайно, можна внести такий же CNAME в зоні нового домену, щоб по короткому імені ми потрапляли на новий сервер. Але ... тут, крім порядку суфіксів пошуку DNS, свій вплив може чинити і nebios (якщо за допомогою DNS з якихось пріічінам залишається невирішеним ім'я). Загалом, щоб гарантувати, що смігрірованний користувач буде звертатися на новий поштовий сервер, я і зробив цей скрипт.

А чи можна переробити скрипт щоб у всіх профілях встановлювався ключ ключ Leave on Server в шестнацетерічное значення a0006
Про доцільність: Тк групових політик з цього питання немає даний скрипт дозволить поміняти через GPO всім даний ключ якщо організації не хочеться щоб користувачі зберігали листи на сервері
Вообщеби добре написати щось більш уневерсальний по зміні параметрів в профілях може створення профілів за даними користувачів системи хоча це вже буде титанічна праця

Цим скриптом можна замінювати будь-який параметр реєстру, який знаходиться в одному з підрозділів реєстру, що зберігає параметри профілю. Якщо ви хочете поміняти саме такий параметр реєстру, то вам потрібно додати відповідні значення до масивів arrOldServer, arrNewServer і arrTypeOfServer.

Схожі статті