Миграция на Exchange 20071. Настройки сети. У нас для каждого узла кластера используется по 2 сетевых карты. Одна для доступа в рабочую сеть (Public), вторая для доступа во внутреннюю служебную сеть кластера (Private), которая используется для тактовых импульсов между узлами кластера. Для начала надо поставить правильный порядок доступа сервисов к нашим сетевым соединениям. Continue Reading »

Windows Server 2008Как и в Windows 2003 Server обновление схемы леса выполняется командой adprep. Расположена она на установочном диске в папке sourcesadprep. Обновление выпоняется в несколько шагов.

1. Обновление схемы. Выполняется на мастере схемы с помощью adprep /forestprep. На мастере схемы должно быть установлено как минимум Windows 2000 Server sp4. Если в лесу имеются серверы с Exchange 2000, то имеет смысл ознакомиться со статьёй “Обновление контроллеров домена Windows 2000 до Windows Server 2003”. Выполняется из под учётной записи, состоящей в группах Domain Admin, Schema Admin и Enterprise Admin корневого домена леса. Если в лесу несколько доменов и/или сайтов, то имеет смысл проверить корректную работу репликации с помощью repadmin /showreps. Результат выполнения adprep будет примерно следующий:

capture1

capture2

2. Обновление доменов. Выполняется на компьютере, который имеет доступ к мастеру инфраструктуры командой adprep /domainprep /gpprep. Выполняется из под учётной записи с правами администратора домена, в котором проводим обновление. Выполнение выглядит следующим образом:

capture3

3. Обновление инфраструктуры для подготовки к установке контроллеров домена только для чтения (rodc). Выполняется на компьютере, который имеет доступ к мастеру инфраструктуры командой adprep /rodcprep. Запускается с правами доменного администратора и администратора предприятия.

capture4

capture5

Шаг 3 может быть выполнен без первых двух, но этого делать крайне не рекомендуется. Второй шаг нужно делать после завершения репликации, после обновления схемы. Как минимум мастер инфраструктуры должен эти обновления получить. Кроме этого, на компьютерах, с которых запускается adprep нужно использовать дистрибутив с той же архитектурой, что и на самом компьютере. adprep с 64-битного дистрибутива на 32-битном контроллере домена просто не запустится либо выдаст ошибку. То же самое касается языка. Если контроллер домена англоязычный – запускать на нём adprep надо с англоязычного дистрибутива, если русский – то с русского.

Rollup UpdateНесколько неожиданно вышел Update Rollup 7 для Echange 2007 sp1. Само обновление скачать можно отсюда. Описание смотреть здесь. Как обычно перед установкой все предыдущие rollup update’ы должны быть удалены и сервер должен иметь доступ по http к http://crl.microsoft.com/pki/crl/products/CodeSigPCA.crl. Обновление вышло раньше времени в связи с тем, что содержит исправление описанное в Microsoft Security Bulletin MS09-003. Установил после обеда. Пока полёт нормальный.

PowerShell LogoExchange 2003 позволяет выставлять ограничения на размер почтовых ящиков как на уровне почтовых баз так и на уровне пользователей. Причём, пользовательские настройки переопределяют настройки базы, в которой находится почтовый ящик пользователей. Если таких пользователей много, то бывает проблематично понять у кого какие настройки. К счастью, PoSh может нам помочь в этом. У объекта пользователя в AD имеются следующие аттрибуты, отвечающие за настройки ограничения размера почтового ящика:

  • mDBUseDefaults – имеет значение True, если используются настройки базы, иначе равно False
  • mDBStorageQuota – указывает ограничение в KB, при достижении которого пользователь получит предупреждение о переполнении ящика
  • mDBOverQuotaLimit – указывает ограничение в KB, при достижении которого пользователь не сможет отпрвлять письма
  • mDBOverHardQuotaLimit – указывает ограничение в KB, при достиженгии которого пользователь не сможет отправлять и принимать письма.

Вооружившись этими знаниями можно написать не большой запрос на PoSh, который выведет нам табличку с пользователями и их ограничениями (тех пользователей, которые используют настройки базы мы не будем смотреть):

Get-QADUser -IncludeAllProperties -SizeLimit 0 -SerializeValues |
Where-Object {$_.mDBUseDefaults -eq 'False'} |
ft DisplayName, mDBStorageQuota, mDBOverQuotaLimit, mDBOverHardQuotaLimit

Windows Server 2008Обнаружил сегодня в Гугль-Ридере с одной статье пару команд для определения типа OS и её архитектуры. Обе запускаются из командной строки. Тип OS определяется следующим образом:

wmic OS get OperatingSystemSKU

Команда возвращает числовое значение. Для Windows 2008 Server они следующие:

  • 7 = Windows Server 2008 Standard Edition (full installation)
  • 8 = Windows Server 2008 Datacenter Edition (full installation
  • 10 = Windows Server 2008 Enterprise Edition (full installation)
  • 12 = Windows Server 2008 Datacenter Edition (core installation)
  • 13 = Windows Server 2008 Standard Edition (core installation)
  • 14 = Windows Server 2008 Enterprise Edition (core installation)
  • 42 = Hyper-V Server 2008

Более подброно модно посмотреть здесь. Тип архитектуры так:

wmic OS get OSArchitecture

Команда возвращает тип архитектуры (32- или 64-битная).

Windows Server 2008В Windows 2008 Server появился замечательный режим работы сервера – Server Core. В нём убраны все ненужные графические элементы, за счёт чего уменьшаются требования к железу, надёжность и затраты на обслуживание. Так же уменьшается фронт возможной атаки злоумышленников за счёт уменьшения установленных компнентов. В этом режиме сервер может выполнять несколько ролей типа AD, DNS, DHCP, IIS итд. Попробуем установить контроллер домена на Server Core.

Итак, у нас имеется сервер с установленной Windows 2008 в режиме Server Core. Для начала нужно Настроить сеть и задать имя для будущего контроллера домена. Все операции делаются через командную строку. Для начала выясним идентификатор сетевой карты, которую будем настраивать:

netsh interface ipv4 show interfaces

Далее зададим ip-адрес сетевому адаптеру:

netsh interface ipv4 set address name="ID" source=static address=статический_ip_адрес 
mask=маска_подсети gateway=шлюз_по_умолчанию

и DNS-сервер (так как мы настраиваем контроллер домена, то он совпадёт с ip-адресом самого контроллера):

netsh interface ipv4 add dnsserver name="ID" address=DNSIP index=1

В случае, если серверов будет больше, то значение index для каждого следующего будет увеличиваться на единицу. ID – идентификатор нашей сетевой карты. Теперь сменим имя нашего сервера:

netdom renamecomputer имя_компьютера /newname:новое_имя_компьютера

Имя_компьютера можно выяснить, например, с помощью ipconfig. После переименования компьютера перезагружаемся с помощью команды shutdown -r -t 0. Установка AD происходит с помощью dcpromo. Предлагается использовать файл ответов, но можно и вручную запустить процесс следующим образом:

dcpromo /replicaornewdomain:domain /newdomain:forest /newdomaindnsname:test.local
/safemodeadminpassword:пароль_для_режима_восстановления /autoconfigdns:yes

В результате выполнения команды автоматически установится и настроится роль ADDS, кроме этого, при использовании /autoconfigdns:yes, также автоматически установится и настроится роль сервера DNS. После чего на любой удалённый компьютер, введённый в новый домен ставится RSAT и можно полноценно управлять нашим доменом.

SymantecЧестно говоря, немного задержался с этим постом (учитывая, что версия стала доступна для конечного пользователя в конце декабря прошло года). Тем не менее, я думаю, эта информация может быть полезной. В основном, это будут выжимки из readme.htm, снабжённые моими комментариями. Итак, новая версия EV предлагает нам следующий новые и обновлённые возможности:

  • Оптимизированное хранилище одной копии (SIS – single instanse storage). Термин SIS не нов. В том же Exchange 2003 почтовые базы являются SIS, то есть хранят только одно сообщение, если оно было отправлено нескольким пользователям и их почтовые ящики находятся в одной почтовой базе. Относительно EV я вижу пользу от SIS только в случае массового подключения пользователей к системе. В противном случае, большой разницы в использовании SIS я не вижу.
  • Для упрощения процесса резервного копирования появился режим резервного копирования, в который могут быть переведены хранилища и индексы. О применении этого режима я писал в посте о настройке процесса резервного копирования. Несомненно это нововведение крайне полезно, так как для проведения резервного копирования нам теперь не нужно отключать сервисы EV.
  • Offline Vault заменён Vault Cache’ем. На мой взгляд обновления в этом модуле в основном косметические.
  • В предыдущих версиях архивирование почтовых ящиков Exchange-сервера было доступно либо по возрасту либо по размеру ящика. Теперь возможен третий вариант – использование и критерия возраста и критерия размера почтового ящика при выборе объекта для архивирования.
  • Getting Started wizard. Ранее я описывал процесс настройки EV 2007. Процесс состоял из нескольких шагов и мог занимать некоторое время. Теперь весь процесс настройки с помощью GSW может быть произведён сразу. Впрочем процесс настройки может быть проведён и в обычном ручном режиме, как в предыдущих версиях.
  • Появился список стандартных административных задач, доступный через административную консоль. Стандартные задачи сгруппированы в группы управления почтовыми ящиками, хранилищами, файловыми серверами, PST-файлами и управление самим сервером EV.
  • Часть политик отвечающих за настройки клиентской части EV (настройки ярлыков, кнопок, OWA, Outlook Anywhere итд.) вынесено в отдельную политику – Desktop Policy.
  • Появился механизм Partition rollover. Теперь в случае когда заканчивается место на диске с партицией, она может быть “расширена” на другой диск. Так же этот механизм может запускаться при выполнении временных условий.
  • Появилась поддержка управляемых папок Exchange 2007.
  • Изменился механизм перемещения и удаления ярлыков, а также применения категорий хранения (retention category). В частности, при перемещении ярлыка между папкками так же перемещается и архивный документ. Кроме этого процесс обработки ярлыков теперь включен в общий процесс архивирования.
  • Изменился процесс размещения индексов. Теперь после указания папки, где будут размещаться индексы в ней создается 8 подпапок (index1, index2 итд.), что упрощает процесс перемещения индексов в случае их заполнения.
  • Изменения коснулись и процесса архивирования файловых ресурсов.
  • Появились 3 новых отчёта в EV Reporting: Storage Reduction by File Extension, Storage Reduction per Vault Store Group и Storage Reduction Summary. Кроме этого доступ к отчётам теперь предоставляется на основе роли учётной записи, которая пытается получить доступ к отчёту.
  • Улучшен Archive Explorer и изменился внешний вид окна расширенного поиска.
  • Появился Management pack for Microsoft SCOM 2007

PowerShell LogoЕсли приходится поддерживать несколько DNS-зон, то можно это делать вручную, так как много времени их поддержка занимать не будет. А что делать если таких зон несколько сотен? Сидеть и вручную их перебирать может занять очень много времени, а следовательно нужно как-то автоматизировать процесс. Задачу упростим следующим образом. Предположим, нам надо получить с нашего DNS-сервера все MX-записи, находящиеся в DNS-зонах которые поддерживаются этим сервером.

К сожалению стандартного командлета для доступа к DNS-серверу я не нашёл. После некоторых поисков нашёл сторонний командлет Get-Dns, который устанавливается как отдельная оснастка в PoSh. Сам командлет можно взять здесь. Установка происходит следующим образом:

PS D:\distr\PoshNet\>Extract-Archive PoshNet.zip
PS D:\distr\PoshNet\>.Install.ps1 PoshNet.dll
PS D:\distr\PoshNet\> Add-PSSnapin PoshNet
PS D:\distr\PoshNet\> Get-Command -PSSnapin PoshNet
CommandType  Name     Definition
-----------  ----     ----------
Cmdlet       Get-Dns  Get-Dns [-Name] [[-Type] ]...

Теперь осталось попробовать получить список только своих (не факт, что в поддерживаемых зонах используются свои почтовые серверы) mx-серверов. У меня это получилось примерно следующим образом:

(dir dns-serverc$windowssystem32dns*.dns -Name) |
ForEach-Object { $_ -replace ".dns", "" } | Get-Dns -Type MX -DnsServers dns-server |
select -expand Answers | Where-Object {$_.record.exchange -like "*main-domain.com."} |
ft Name, Type, Record -auto

Как известно DNS-сервер от Microsoft хранит зоны в виде файлов в папке %systemdrive%windowssystem32dns с именем совпадающим с именем домена и с расширением dns. В первой части мы получаем от нашего DNS-сервера (dns-server) имена всех этих файлов, затем убираем у них расширение .dns и получаем имена зон, которые поддерживает сервер. Далее начинает работать наш новый командлет, который подключается к нашему DNS-серверу и для полученных на первых шагах зонах получает MX-записи и оставляет только те, которые находятся в нашем основном домене. И в конце выводит их в виде таблички. Что здесь важно. Первую часть надо обязательно поставить в скобки, так как процес считывания имён файлов обязательно должен дойти до конца, прежде чем скрипт продолжит работать дальше, и нужно иметь ввиду, что имена серверов пишутся обязательно с точкой на конце.

SymantecСоздание процедуры резервного копирования является важным шагом при внедрении любого ПО в производство. Enterprise Vault не является исключением из этого правила. В связи с тем, что EV является продуктом, который использует SQL сервер, то процедура резервного копирования проходит в несколько шагов. Во-первых надо сделать резервную копию всех баз данных, которые использует EV, во-вторых надо сделать резервную копию архивного хранилища самого сервера EV. Если с первым пуктом всё достаточно ясно (процедуру резервного копирования базы SQL можно посмотреть в одном из моих предыдущих постов), то с резервным копированием хранилища есть небольшая тонкость. Для проведения полноценного резервного копирования необходимо само хранилище и индексы перевести в так называемый Backup Mode. Что при этом происходит? При включении этого режима все операции записи в архив и изменения индексов останавливаются (фактически хранилище и индексы становятся статическими), пользователи при этом сохраняют возможность получать сообщения из архива и искать по ним сообщения. Большим подспорьем стало присутсвие в последней версии EV набора командлетов для работы с EV из PowerShell. Далее я покажу некоторые скрипты для организации резервного копирования. Continue Reading »