Архив рубрики: Windows

Перенос Exchange 2010 CAS+Hub на другой сервер при наличии Edge

Иногда возникает необходимость переноса Exchange-сервера на другое железо. В теории, в этом нет ничего сложного:

— Останавливаем существующий сервер;
— Устанавливаем ОС на новый, выдаем ему то же имя;
— Включаем новый сервер в домен;
— Устанавливаем весь необходимый софт (Microsoft Filter Pack, .NET 3.5) и необходимые роли/фичи сервера (можно подсмотреть здесь);
— Запускаем setup /m:RecoverServer и отдыхаем.

Но если ваша конфигурация Exchange содержит Edge-сервера, то на этапе проверки перед установкой вы получите следующую ошибку:

[ERROR] The internal transport certificate for the local server was damaged or missing in Active Directory. The problem has been fixed. However, if you have existing Edge Subscriptions, you must subscribe all Edge Transport servers again by using the New-EdgeSubscription cmdlet in the Shell.

И ведь, вроде как, в ошибке написано, что «problem has been fixed». Но как бы не так. Перезапуск установки с тем же ключом выдает такую же ошибку.

Для решение этой проблемы, необходимо сходить на контроллер домена, запустить там adsiedit и зайти в Configuration partition –> Services -> Microsoft Exchange –> _ВАША_ОРГАНИЗАЦИЯ –> Administrative Groups –> Exchange Administrative Group (FYDIBOHF23SPDLT) –> Servers –> _ИМЯ_ВАШЕГО_СЕРВЕРА_. По имени сервера необходимо кликнуть правой кнопкой и зайти в Properties. В списке свойств необходимо найти «msExchEdgeSyncCredential» и удалить все, что там есть.

Перезапускаем установку с помощью setup /m:recoverserver и не забываем перезагрузить сервер по окончании установки.

После перезагрузки, необходимо снова «связать» Hub Transport и Edge. Для этого необходимо запустить на Edge-сервере powershell и выполнить команду:

New-EdgeSubscription -FileName "c:\EdgeServerSubscription.xml"

Копируем файл EdgeServerSubscription.xml на наш hub transport, заходим в консоль управления Exchange->Organiztion Configuration->Hub Transport->Edge Subscriptions. Нажимаем New edge subscription, выбираем AD site, subscription file и нажимаем кнопку New.

Если серверов несколько — повторяем эту процедуру для каждого Edge и для каждого Hub.

Открытие документов Excel в разных окнах (в разных процессах)

Иногда приходится решать задачи, которые админскими не назовешь, но пользователи сами решить не могут. Один из таких примеров — открытие документов Excel в разных процессах. По умолчанию, Excel 2010 не позволяет расположить рядом на одном экране 2 открытых документа. Также, невозможно разместить 2 документа одновременно на двух мониторах. Исключение составляют те случаи, когда первый документ мы открыли «как обычно» двойным кликом по нему, затем запустили еще одну копию Excel и открыли второй документ в нем. А между тем, эта фича довольно полезна: если у вас «упадет» excel из-за кривых VBA-скриптов — закроются не все документы, а только упавший. Да и  легче сравнивать и переносить данные из одного документа в другой.

К счастью, решение этой проблемы, по крайней мере для Office 2010 существует. Необходимо всего-то изменить парочку записей в реестре:

1. Открываем regedit (Win+R->regedit->Enter);

2. Переходим в HKEY_CLASSES_ROOT\Excel.Sheet.12\shell\Open\command;

3. Кликаем дважды на ключе (Default) справа и изменяем строку на такую (т.е. в конце строки меняем /dde на /e «%1»:

"C:\Program Files\Microsoft Office\Office14\EXCEL.EXE" /e "%1"

4. Переименовываем ключ command в command2;

5. Переименовываем раздел ddexec в ddexec2.

6. Пользуемся :)

Excel 2010 separate processes

Если захочется открывать так не только xlsx файлы, но и xls — достаточно проделать эти же операции с веткой HKEY_CLASSES_ROOT\Excel.Sheet.8\shell\Open\command

Блокировка торрентов, скайпа на windows-машинах «дешёвым» методом

Торренты в корпоративной сети с одним выходом в интернет — зло. При отсутствии жестоких ограничений на количество коннектов и ограничений скорости, они могут сильно повлиять на работу интернета у остальных сотрудников. В интернете достаточно информации о блокировке торрентов на самом разном железе/софте и самыми разными способами: начиная от подробного анализа пакетов и заканчивая простой блокировкой динамических UDP и TCP портов (>1024). Ни один из способов не дает стопроцентной гарантии, кроме, возможно, использования маршрутизатора Cisco, или аналогов. Проверить их вживую пока не удалось. Все способы, так или иначе, реализуются только на шлюзе. А если посмотреть на проблему с другой стороны?…

После довольно долгого периода наблюдения за сетевым трафиком и приложениями в локальной сети, я понял, что сотрудники в 99% случаев слишком ленивы, чтобы использовать клиенты-торрентокачалки, отличные от utorrent. Именно этот факт позволяет легко отсечь 99% трафика торрентов. По крайней мере, он позволяет вовремя обнаружить и ограничить такой трафик. И реализуется он при помощи групповых политик. Создаем новую групповую политику и открываем в дереве следующий путь: Computer configuration -> Windows Settings-> Policy-based QoS

Policy-based QoS

Кликаем правой кнопкой по Policy-based QoS и выбираем пункт «Create new policy». Вводим имя новой политики и назначаем любое, отличное от нуля, значение DSCP (например, 1):

Policy-based QoS{tip}Лучше использовать «невалидные» с точки зрения DSCP значения, иначе можно попасть на софт, который маркирует свой «правильный» трафик теми же значениеями.{/tip}

При желании, можно сразу ограничить торрентам исходящий трафик и выставить ограничение 1 kbps. В таком случае, входящий поток тоже будет сильно ограничен (проверено опытным путем).

На следующем экране выбираем «Only applications with this executable name:» и вводим utorrent.exe (или skype.exe, если вы хотите обнаруживать трафик скайпа):

Policy-based QoS

На следующем экране оставляем все по умолчанию:

Policy-based QoS

Далее выбираем протоколы TCP и UDP и завершаем создание правила:

Policy-based QoS

После этого, трафик от процесса utorrent.exe будет маркироваться DSCP флагом «1» и его легко будет обнаружить на любом шлюзе. Действия же, по факту обнаружения, будут зависеть от внутренних политик компании — блокировать или просто наказывать за нарушение полиси.

Форматирование текста в Skype. Новая версия.

Веселые были времена, когда в скайпе можно было использовать HTML-разметку. При отправке некоторых сообщений можно было вызвать постоянный «вылет» скайпа до очистки истории. Поэтому очень быстро эту возможность отключили: в одной из версий просто HTML-код просто перестал обрабатываться и скайп снова стал серым и унылым.

И, наконец, свершилось чудо :) В скайпе недавно появилось хоть какое-то форматирование текста. Ниже я приведу доступные на данный момент способы выделения текста:

полужирный шрифт: просто поставьте перед текстом и после него звездочку *. Текст между ними станет полужирным;

курсив: текст необходимо «заключить» в знаки подчеркивания _тут будет курсив_;

— перечеркнутый: перед текстом и после него необходимо поставить тильду — ~перечеркнутый текст~;

моноширинный текст: необходимо заключить текст в теги {code}моноширинный текст{code};

моноширинный текст для всего сообщения: ставим в начале сообщения два восклицательных знака и пробел (!! сообщение);

— предотвратить форматирование текста: просто ставим в начале сообщения два символа @@ и пробел.

Получение списка установленных обновлений и удаление обновления по сети

Бывают иногда «зловредные» обновления, которые мешают жить. И еще бывают пользователи, которые ставят обновления не с локального WSUS, а с Microsoft Update. Пользователи начинают жаловаться на некорректную работу и выясняется, что причина этого кроется в очередном обновлении. Итак, задача звучит так: проверить компьютер пользователя на наличие обновления, например, kb971033 и удалить его.

Для начала, нам пригодится утилита PsExec из комплекта Sysinternals. С ее помощью выполняем следующую команду:

psexec \\remote-pc wmic qfe list

Получаем в консоль вывод всех установленных апдейтов. Если лень искать конкретный апдейт в списке, можно слегка видоизменить строку:

psexec \\remote-pc wmic qfe list | find "971033"

Убедились, что «вредный» апдейт присутствует. Теперь запускаем следующую команду:

psexec \\remote-pc wusa /uninstall /kb:971033 /quiet /norestart

После того, как она отчитается об успешном выполнении (wusa exited on remote-pc with error code 0), ищем еще раз апдейт тем же способом. Если апдейт удалился — мы увидим примерно такую надпись:

Starting wmic on remote-pc...ice on remote-pc...
wmic exited on remote-pc with error code 0.