Недавно скинули мне следующую задачу:
Есть сервер1 с доской объявлений/обсуждений на некотором ПО от третьей фирмы и сервер2 с доской обсуждений на базе MOSS 2007. Сервер1 использует в качестве сервера пересылки внутренний сервер Exchange. И при регистрации почтового адреса доски обсуждений с сервера2 высылалось письмо с сылкой для активации аккаунта, но приходил назад NDR. При этом на внутренние учетки и внешние почтовые адреса вообще без проблем уходило это письмо с ссылкой для активации.
Копался долго, смотрел relay для всех серверов (фактически была проблема при пересылке сообщения между тремя smtp-серверами), smtp-логи на всех трёх серверах, пробовал отсылать сообщения через telnet итд итп. Некоторые изызски можно посмотреть здесь

Проблемы была локализована сразу же после увеличения уровня логгирования для сервера с Exchange, который занимался всей пересылкой. Как оказалось, MOSS 2007 при создании доски обсуждений создает контакт в AD, да не просто создает, а в его настройках прописывает прямой запрет на приём сообщений от анонимных пользователей. Более того, серверное ПО с сервера1 как раз свои сообщения анонимно и рассылало. Кто бы мог подумать… А в начале помидорами в Exchange кидались.

С сегодняшнего дня стал доступен релиз Hyper-V – достаточно удачного (по сравнению с VirtualServer) решения по виртуализации от Microsoft.
Скачать можно отсюда:
KB950050 — Description of the update for the release version of the Hyper-V technology for Windows Server 2008
Update for Windows Server 2008 x64 Edition (KB950050)
Update for Windows Server 2008 (KB950050)
KB952627 — Description of the Windows Vista Service Pack 1 Management Tools update for the release version of Hyper-V
Update for Windows Vista for x64-based Systems (KB952627)
Update for Windows Vista (KB952627)

У меня Hyper-V RC0 на Win2k8 Server Core крутится уже месяца 2. Пока проблем особых не обнаружил. В ближайшее время обновлюсь и посмотрю что там нового появилось по сравнению с RC0.

Начиная с Outlook 2000 (точнее с одного из сервис паков) Microsoft решила автоматически блокировать доступ к приложенным файлам некоторых типов (типа .exe, .vbs итд.). Пользователю при доступе к письму с таким небезопасным вложением выводится предупреждение, что приложенный файл был заблокирован. Что самое интересное, контролировать список опасных/безопасных типов файлов через интерфейс Outlook мы не можем. Не менее интересно то, что в своей базе знаний Microsoft не предлагает статей по удалению из списка потенциально опасных типов файлов. Но имеется статья о том, как некоторые типы файлов туда добавить (посмотреть статью можно здесь). Механизм удаления определённого типа файла из списка опасных полностью аналогичен:

1. Запускаем regedit и находим следующую ветку реестра – HKCU\Software\Microsoft\Officexx.0\Outlook\Security (xx – версия Outlook, 12 – Outlook 2007, 11 – Outlook 2003)
2. Создаем там строковую переменную Level1Remove и в ней указываем список безопасных расширений в формате .exe;.vbc;.etc (между расширениями пробелов советуют не делать, но возможно и с пробелами заработает, не проверял)

После этих действий Outlook не будет панически бояться тех типов файлов, которые внесены в список безопасных.

У меня на внешних почтовых серверах используется связка Exchange/GFI MailEssentials/Symantec Mail Security.
В GFI MailEssentials имеется крайне полезный фуекция по архивированию всего почтового траффика с очень удобным web-интерфейсом. Используется при этом база, размещённая в MS SQL сервере. Структуру таблиц можно посмотреть здесь.
Почтовый трафик архивируется при этом немаленький, и базу приходится периодически бэкапить и вычищать старые записи. В принципе можно раз в несколько месяцев пересоздавать базу заново, но на мой взгляд, это не спортивно =). Таким образом стоит задача – написать скрипт, который бы бэкапил базу в известное хранилище и после этого удалял старые записи. После некоторых изысканий получился следующий скрипт:

# Задаём некоторые переменные
$server = "SERVER_NAME" # Имя сервера на котором работает база
$base = "DATABASE_NAME" # Имя базы (в моем случае GFILogs2)
$date = (Get-Date).AddMonths(-3).Date # Дата до которой мы удаляем записи из базы
$path = "PATH_TO_BACKUP" # Куда мы будем бэкапить базу

# Создаем SQL запрос, выполняющий бэкап базы и очистку таблиц GFI ME
$query = "backup database [$base] to disk = '$path' with init
use [$base]
delete from [gfi].[arc_in] where [date] < convert( datetime, '$date' )
delete from [gfi].[arc_out] where [date] < convert( datetime, '$date' )
delete from [gfi].[log_as] where [date] < convert( datetime, '$date' )
delete from [gfi].[log_as_neutral] where [date] < convert( datetime, '$date' )
delete from [gfi].[log_in] where [date] < convert( datetime, '$date' )
delete from [gfi].[log_out] where [date] < convert( datetime, '$date' )
delete from [gfi].[arc_in_att] where [id] not in (select [id] from [gfi].[arc_in])
delete from [gfi].[arc_in_bodies] where [id] not in (select [id] from [gfi].[arc_in])
delete from [gfi].[arc_out_att] where [id] not in (select [id] from [gfi].[arc_out])
delete from [gfi].[arc_out_bodies] where [id] not in (select [id] from [gfi].[arc_out])
delete from [gfi].[log_in_att] where [id] not in (select [id] from [gfi].[log_in])
delete from [gfi].[log_out_att] where [id] not in (select [id] from [gfi].[log_out])"

# Подключаемся к SQL серверу используя текущую учетку
$SQLConnection = New-Object System.Data.SqlClient.SqlConnection("Data Source=$server;
Integrated Security=SSPI")
$SQLConnection.Open()

# Создаем SQL команду для запуска бэкапа
$SQLCommand = New-Object System.Data.SqlClient.SqlCommand($query, $SQLConnection)
$SQLCommand.CommandTimeout = 200000

# Выполняем….
$SQLCommand.ExecuteNonQuery()

# Закрываем соединение
$SQLConnection.Close()

Во время написания и отладки скрипта выплыла одна тонкость – по умолчанию таймаут скрипта составляет 30 секунд, а так как база приличная по размерам – то скрипт вылетал по таймауту. Пришлось вручную в параметр $SQLCommand.CommandTimeout = 200000 прописать достаточно большое значение.

Вчера наконец-таки попал на так называемый First look. Анонс серии этих бесплатных курсов был выпущен ещё в феврале этого года. Я записался, потом узнал, что они проходили, но про меня почему-то забыли. Я сказал своё громкое фи на форумах TechNet, после чего про меня видимо вспомнили и соизволили пригласить.
Курс назывался “6400/6401: Первый взгляд: Централизованный доступ к приложениям в ОС Windows Server 2008”. Рассматривался сервер терминалов в анфас и в профиль. При выполнении лабораторной работы столкнулся со следующим: при запуске приложений опубликованных через RemoteApp вместе с самим приложением запускалась оснастка Server Manager. Копаться особо времени не было. А на официальном релизе таких экспериментов за ненадобностью не делал. Списал на глюк beta 3.