<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>IT-блог компании &#34;ЛанКей&#34; &#187; Windows Server</title>
	<atom:link href="http://www.lankey.ru/blog/tag/windows-server/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.lankey.ru/blog</link>
	<description>Системный интегратор. Комплексные решения по построению ИТ-инфраструктуры предприятия.</description>
	<lastBuildDate>Sat, 28 Jan 2012 13:58:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Аварийное восстановление Active Directory</title>
		<link>http://www.lankey.ru/blog/2010/09/19/emergency_recovery_active_directory/</link>
		<comments>http://www.lankey.ru/blog/2010/09/19/emergency_recovery_active_directory/#comments</comments>
		<pubDate>Sun, 19 Sep 2010 11:20:21 +0000</pubDate>
		<dc:creator>Сергей Ерин</dc:creator>
				<category><![CDATA[Windows Server]]></category>
		<category><![CDATA[Active Directory]]></category>

		<guid isPermaLink="false">http://blogs.lankey.ru/?p=627</guid>
		<description><![CDATA[Недавно к нам обратилась одна компания с просьбой восстановить работоспособность службы каталогов Active Directory. Компания состоит из центрального офиса в Москве и 80 региональных подразделений, расположенных по России и СНГ. Для каждого дочернего филиала создан отдельный домен и отдельный сайт. Общее количество сотрудников компании составляет около 4000 человек. В центральном офисе располагаются основные инфраструктурные серверы, [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Недавно к нам обратилась одна компания с просьбой восстановить работоспособность службы каталогов Active Directory. Компания состоит из центрального офиса в Москве и 80 региональных подразделений, расположенных по России и СНГ. Для каждого дочернего филиала создан отдельный домен и отдельный сайт. Общее количество сотрудников компании составляет около 4000 человек. В центральном офисе располагаются основные инфраструктурные серверы, включая корневые контроллеры домена и серверы Exchange. В один прекрасный момент произошёл отказ одного из 3-х корневых контроллеров домена в центральном офисе, толи у него материнская плата сгорела, толи RAID-массив отказал. Системные администраторы несколько раз пытались восстановить контроллер домена из резервной копии, но у них ничего не получилось. Спустя какое-то время произошёл отказ сервера Exchange 2007, и возникли множественные проблемы с аутентификацией пользователей.</p>
<p style="text-align: justify;"><span id="more-627"></span></p>
<h4>Диагностика</h4>
<p style="text-align: justify;">При первоначальной диагностике мы выяснили, что вышедший из строя контроллер домена был хозяином всех операций и единственным сервером глобального каталога в сайте. Кроме того данный контроллер домена также был прописан на остальных  в качестве единственного сервера DNS, хотя сами DNS сервера были развёрнуты на каждом контроллере.</p>
<h4>Исправление</h4>
<p style="text-align: justify;">Соответственно первое, что мы сделали, это прописали на оставшихся двух контроллерах домена в качестве DNS серверов 127.0.0.1 и второй контроллер. Затем при помощи утилиты <strong>ntdsutil</strong> и команды <strong>seize</strong> мы произвели захват fsmo ролей на один из контроллеров домена. После того, как все роли были перенесены, мы попытались назначить оставшиеся контроллеры домена серверами глобального каталога, но галка &laquo;<strong>Global Catalog</strong>&raquo; в свойствах <strong>NTDS Settings</strong> в оснастке <strong>Active Directory Sites and Services</strong> была неактивна. Проанализировав записи DNS-серверов, мы обнаружили, что в разделе Forward Lookup Zones\_msdcs.domain.ru\gc\_sites, отсутствовала запись <strong>Default-First-Site-Name</strong>, а именно в этом сайте находились корневые контроллеры домена. Мы вручную создали запись Default-First-Site-Name\_tcp, где создали 2 SRV-записи, ссылающиеся на 2 оставшихся контроллера домена:</p>
<p><strong>_ldap Service Location (SRV) [0][100][3268] dc2.domain.ru<br />
_ldap Service Location (SRV) [0][100][3268] dc3.domain.ru</strong></p>
<p>После перезагрузки контроллеров домена, нам удалось поставить галку &laquo;<strong>Global Catalog</strong>&raquo; для каждого из контроллеров.</p>
<p style="text-align: justify;">К сожалению сейчас не помню всех подробностей, но были ещё какие-то проблемы с записями в DNS, часть из которых была решена утилитой <strong>netdiag /fix</strong>. Кроме того, на определённом этапе восстановления структуры DNS, галка &laquo;<strong>Global Catalog</strong>&raquo; стала активной, но тем не менее, мы обнаружили, что на контроллерах домена служба <strong>lsass</strong> не слушает порт <strong>3268</strong>. И проблема решилась только после того, как мы вручную прописали srv-записи описанным выше способом.</p>
<p>На данном этапе аутентификация  всех пользователей в центральном офисе заработала. Exchange Server также успешно запустился и заработал.</p>
<h4>Восстановление репликации</h4>
<p style="text-align: justify;">Осталось решить проблему с репликацией 80 дочерних доменов. Топология репликации была таковой, что все дочерние филиалы реплицировались через <strong>Default-First-Site-Name</strong>. Проблема оказалось в том, что вышедший из строя в главном офисе контроллер домена был назначен единственным &laquo;<strong>preferred bridgehead</strong>&raquo; в данном сайте. Таким образом, ни один из 80 дочерних контроллеров домена даже не пытался начать репликацию ни с одним из оставшихся контроллеров домена основного офиса. Кроме того, ниодин из дочерних контроллеров домена более не мог узнать ни о каких изменениях в конфигурации главного сайта, ни о появлении новых bridgehead-ов, ни об удалении старого контроллера домена, в общем, ни о чем!</p>
<p style="text-align: justify;">По умолчанию топологией репликации управляет служба <strong>KCC</strong>, она выстраивает связи между контроллерами домена в разных сайтах. Если по каким-либо причинам один из контроллеров домена перестаёт отвечать, то связи перестраиваются автоматически. Но в случае, когда <strong>bridgehead</strong> настроен вручную, служба <strong>KCC</strong> связи не перестраивает. В центральном филиале мы отключили ручное назначение bridgehead-ов, осталось только рассказать об этом дочерним филиалам.</p>
<p>Мы составили некий алгоритм по восстановлению репликации с каждым дочерним филиалом:</p>
<p style="text-align: justify;">1) Нужно зайти на контроллер домена каждого дочернего филиала, запустить оснастку <strong>Active Directory Sites and Services</strong>, раскрыть \сайт соответствующего филиала\Servers\контроллер домена\NTDS Settings, и удалить связи, ссылающиеся на удалённый контроллер домена.</p>
<p><a href="http://blogs.lankey.ru/wp-content/uploads/2010/09/adss.jpg"><img class="aligncenter size-medium wp-image-629" title="adss" src="http://blogs.lankey.ru/wp-content/uploads/2010/09/adss-300x140.jpg" alt="" width="300" height="140" /></a></p>
<p style="text-align: justify;">2) Затем нажать правой кнопкой на <strong>NTDS Settings</strong>, нажать <strong>New Active Directory Connectio</strong><strong>n</strong>, и выбрать из списка любой из двух оставшихся в сайте <strong>Default-First-Site-Name</strong> контроллеров домена.</p>
<p style="text-align: justify;">3) Затем проделать тоже самое на контроллере домена центрального филиала, желательно на том же, который мы выбрали в предыдущем шаге.</p>
<p style="text-align: justify;">4) Далее сначала в дочернем филиале нажать по вновь созданной связи и выбрать <strong>Replicate now</strong>. Подождав несколько минут, убедиться что репликация прошла успешно, из Default-First-Site-Name должен исчезнуть удалённый контроллер домена центрального филиала.</p>
<p style="text-align: justify;">5) Далее лучше удалить вручную созданные связи с обоих контроллеров домена и перезапустить службу<strong> Kerberos Key Distribution Center</strong>, спустя какое-то время (около 15 мин) служба KCC автоматически сгенерирует связь между филиалом и сайтом центрального офиса.</p>
<p><a href="http://blogs.lankey.ru/wp-content/uploads/2010/09/replauto.jpg"><img class="aligncenter size-full wp-image-630" title="replauto" src="http://blogs.lankey.ru/wp-content/uploads/2010/09/replauto.jpg" alt="" width="472" height="20" /></a></p>
<p style="text-align: justify;">Соответственно данную процедуру  пришлось проделать вручную с каждым из 80 дочерних филиалов!</p>
<h4 style="text-align: justify;">Восстановление репликации с устаревшими контроллерами</h4>
<p style="text-align: justify;">При восстановлении репликации описанным выше способом на некоторых контроллерах домена мы столкнулись с ошибкой:</p>
<p style="text-align: justify;"><strong>The naming context is in the process of being removed or is not replicated from the specified server. </strong></p>
<p style="text-align: justify;"><strong> </strong>Скорее-всего данная ошибка была вызвана тем, что репликация данных контроллеров не производилась уже достаточно давно больше периода времени захоронения tombstone lifetime (128 дней). Для того, чтобы возобновить репликацию не переустанавливая контроллер домена, мы решили отключить проверку целостности и разрешить репликацию с неправильным партнёром. Для этого в реестр каждого контроллера домена были добавлены следующие ключи:</p>
<p><strong>Windows Registry Editor Version 5.00</strong></p>
<p><strong></strong></p>
<p><strong>[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTDS\Parameters]</strong></p>
<p><strong>&laquo;Strict Replication Consistency&raquo;=dword:00000000</strong></p>
<p><strong>&laquo;Allow Replication With Divergent and Corrupt Partner&raquo;=dword:00000001</strong></p>
<p style="text-align: justify;">После перезагрузки всех контроллеров домена, репликация была восстановлена описанным выше способом. Затем эти ключи рекомендуется удалить.</p>
<h4>Очистка метаданных.</h4>
<p style="text-align: justify;">В итоге репликация была успешно восстановлена, но во всех журналах событий возникла ошибка репликации контекста именования одного из дочерних доменов, который был давно удалён.</p>
<p style="text-align: justify;">Кстати, если кому-то интересно, то для удобства анализа большого числа данных монитора репликации, очень удобно использовать Excel. Для этого данные можно выгрузить в формат .csv:</p>
<p><strong>repadmin /showrepl * /csv &gt; showrepl.csv</strong></p>
<p style="text-align: justify;">Для удаления контекста именования отсутствующего домена мы решили воспользоваться утилитой <strong>ntdsutil</strong> и командой <strong>metadata cleanup</strong>, более подробно об этом написано здесь: <a href="http://support.microsoft.com/kb/216498/en-us" target="_blank">http://support.microsoft.com/kb/216498/en-us</a> Но к сожалению данная попытка удаления не увенчалась успехом, мы получили ошибку <strong>0&#215;2162&lt;The requested domain could not be deleted because there exist domain controllers that still host this domain.&gt;</strong>. Данная ошибка говорит о том, что невозможно удалить домен, т.к. существуют контроллеры домена, которые содержат данный домен.</p>
<p><a href="http://blogs.lankey.ru/wp-content/uploads/2010/09/ntds_err.jpg"><img class="aligncenter size-full wp-image-631" title="ntds_err" src="http://blogs.lankey.ru/wp-content/uploads/2010/09/ntds_err.jpg" alt="" width="643" height="41" /></a></p>
<p style="text-align: justify;">Пытаясь найти решение данной ошибки, мы попали на статью: <a href="http://support.microsoft.com/default.aspx?scid=kb;en-us;Q235416" target="_blank">http://support.microsoft.com/default.aspx?scid=kb;en-us;Q235416</a>, которая к сожалению тоже никак не помогла, т.к. ни в одной оснастке уже не отображался ни сайт, относящийся к этому домену, ни сам домен. Но при помощи оснастки ADSI Edit, в разделе Configuration\Partitions\ всё ещё находился раздел этого домена. Попытка его удалить через ADSI Edit приводила к аналогичной ошибке:</p>
<p><a href="http://blogs.lankey.ru/wp-content/uploads/2010/09/err_del_dom.jpg"><img class="aligncenter size-medium wp-image-632" title="err_del_dom" src="http://blogs.lankey.ru/wp-content/uploads/2010/09/err_del_dom-300x59.jpg" alt="" width="300" height="59" /></a></p>
<p style="text-align: justify;">Мы решили найти данный контекст именования в удалённых объектах, для этого воспользовались утилитой <strong>Active Directory Explorer (ADexplorer)</strong> от sysinternals, хотя в принципе с таким же успехом можно было использовать и <strong>ldp.exe</strong>. В итоге в разделе Configuration\Sites мы обнаружили удалённый сайт, содержащий в себе удалённый объект Servers, внутри которого был удалённый объект контроллера домена, но вот внутри объекта контроллера домена ничего не было, хотя там должен был быть объект <strong>NTDS Settings</strong>, что нас и навело на определённые мысли.</p>
<p><a href="http://blogs.lankey.ru/wp-content/uploads/2010/09/adexpl_dc.jpg"><img class="aligncenter size-medium wp-image-633" title="adexpl_dc" src="http://blogs.lankey.ru/wp-content/uploads/2010/09/adexpl_dc-300x96.jpg" alt="" width="300" height="96" /></a></p>
<p style="text-align: justify;">В итоге мы догадались заглянуть в контейнер<strong> LostAndFoundConfig</strong> и обнаружили там объект <strong>NTDS Settings</strong> от данного сайта, который не был удалённым, но принадлежал удалённому серверу и сайту.</p>
<p><a href="http://blogs.lankey.ru/wp-content/uploads/2010/09/lost-and-found-config.jpg"><img class="aligncenter size-full wp-image-634" title="lost and found config" src="http://blogs.lankey.ru/wp-content/uploads/2010/09/lost-and-found-config.jpg" alt="" width="242" height="226" /></a></p>
<p>После удаления объекта NTDS Settings, мы снова вернулись к <strong>ntdsutil &gt; metadata cleanup</strong> и успешно удалили остатки старого домена.<strong> </strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.lankey.ru/blog/2010/09/19/emergency_recovery_active_directory/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Виртуальные машины Linux на Hyper-V</title>
		<link>http://www.lankey.ru/blog/2010/02/01/virtualnye-mashiny-linux-na-hyper-v/</link>
		<comments>http://www.lankey.ru/blog/2010/02/01/virtualnye-mashiny-linux-na-hyper-v/#comments</comments>
		<pubDate>Mon, 01 Feb 2010 08:45:07 +0000</pubDate>
		<dc:creator>Ярослав Никифоров</dc:creator>
				<category><![CDATA[виртуализация]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[Windows Server]]></category>
		<category><![CDATA[windows server 2008 r2]]></category>

		<guid isPermaLink="false">http://blogs.lankey.ru/?p=456</guid>
		<description><![CDATA[Чаще всего платформа виртуализации Hyper-V используется для запуска на ней операционных систем Microsoft Windows. Но на ней также работают и Linux-системы. В пятницу, 29 января, Microsoft выпустил и выложил в свободный доступ очередные компоненты интеграции Linux для Hyper-V &#8211; они доступны здесь. Компоненты интеграции предназначены для обоих версий платформы Hyper-V &#8211; как для первой версии, [...]]]></description>
			<content:encoded><![CDATA[<p>Чаще всего платформа виртуализации Hyper-V используется для запуска на ней операционных систем Microsoft Windows. Но на ней также работают и Linux-системы. В пятницу, 29 января, Microsoft выпустил и выложил в свободный доступ очередные компоненты интеграции Linux для Hyper-V &#8211; они доступны <a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;FamilyID=c299d675-bb9f-41cf-b5eb-74d0595ccc5c">здесь</a>.</p>
<p>Компоненты интеграции предназначены для обоих версий платформы Hyper-V &#8211; как для первой версии, входящей в состав Windows Server 2008, так и для второй, входящей в состав Windows Server 2008 R2. Эти компоненты включают в себя:</p>
<ul>
<li>драйвер синтетической сетевой карты</li>
<li>драйвер синтетического адаптера SCSI</li>
<li>драйвер блочного устройства VSC &#8211; поддержка синтетического адаптера IDE для увеличения быстродействия при загрузке</li>
</ul>
<p>Драйвер мыши для графической оболочки Linux в комплект не входит.</p>
<p>Обращаем внимание, что для большинства виртуальных машин Linux доступно использование только одного виртуального процессора. Полноценная поддержка Hyper-V в ядре начинается с ядра версии 2.6.32.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lankey.ru/blog/2010/02/01/virtualnye-mashiny-linux-na-hyper-v/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>BitLocker взломан!?</title>
		<link>http://www.lankey.ru/blog/2009/12/07/bitlocker-was-hacked/</link>
		<comments>http://www.lankey.ru/blog/2009/12/07/bitlocker-was-hacked/#comments</comments>
		<pubDate>Mon, 07 Dec 2009 00:40:57 +0000</pubDate>
		<dc:creator>Сергей Ерин</dc:creator>
				<category><![CDATA[Windows Server]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[windows server 2008 r2]]></category>

		<guid isPermaLink="false">http://blogs.lankey.ru/?p=432</guid>
		<description><![CDATA[В последние дни по Интернет прокатилась волна новостей с заголовком &#171;Система шифрования Bitlocker в Windows 7 взломана.&#187; Журналисты цитируют следующее заявление Дмитрия Сумина, президента Passware: &#171;Полное шифрование диска представляет собой серьезную проблему для следователей. Мы смогли предоставить полиции, правоохранительным органам и частным детективам инструмент, который позволяет обойти BitLocker шифрование.&#187; Вот лишь некоторые примеры: http://news.softodrom.ru/ap/b5920.shtml http://www.inattack.ru/news/3291.html [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">В последние дни по Интернет прокатилась волна новостей с заголовком &laquo;<strong>Система шифрования Bitlocker в Windows 7 взломана</strong>.&raquo;</p>
<p style="text-align: justify;">Журналисты цитируют следующее заявление Дмитрия Сумина, президента Passware: &laquo;Полное шифрование диска представляет собой серьезную проблему для следователей. Мы смогли предоставить полиции, правоохранительным органам и частным детективам инструмент, который позволяет обойти BitLocker шифрование.&raquo;</p>
<p>Вот лишь некоторые примеры:</p>
<p><a href="http://news.softodrom.ru/ap/b5920.shtml" target="_blank"> http://news.softodrom.ru/ap/b5920.shtml</a></p>
<p><a href="http://www.inattack.ru/news/3291.html" target="_blank">http://www.inattack.ru/news/3291.html</a></p>
<p><a href="http://www.xakep.ru/post/50347/" target="_blank">http://www.xakep.ru/post/50347/</a></p>
<p style="text-align: justify;">Меня задолбали сообщения в аську от друзей и знакомых, которые увидев подобные новости, спешили проинформировать меня и позлорадствовать &laquo;типа поломали твой Microsoft&raquo;.</p>
<p style="text-align: justify;"><span id="more-432"></span></p>
<p style="text-align: justify;">Мне эта чушь надоела, и я решил написать статью на блог.</p>
<p style="text-align: justify;">И так, BitLocker &#8211; это средство шифрования дисков, которое присутствует в Windows 7 и Vista, Windows Server 2008 и 2008 R2. А весь шум гам  возник, после выхода продукта Passware Kit 9.5, который, по заявлению производителя, теперь умеет взламывать BitLocker.</p>
<p style="text-align: justify;">Давайте разберёмся, как же работает сие чудо. Для так называемого взлома зашифрованного тома программе требуется предоставить собственно дамп зашифрованного тома и (внимание!) дамп физической памяти компьютера! Мало того, дамп должен быть сделан, после того, как вы ввели правильный пароль и разблокировали зашифрованный диск!</p>
<p style="text-align: justify;">Товарищи, о чём мы говорим? Где здесь взлом?</p>
<p style="text-align: justify;">Естественно, что в процессе работы с зашифрованным томом, в оперативной памяти находятся ключи шифрования. Но как только вы компьютер выключили, память очищается! Даже если вдруг, к злоумышленнику попадёт включенный компьютер, но залоченный, всё равно шансы извлечь ключи из памяти практически равны нулю.  (не надо мне только про жидкий азот). Ещё один способ получить дамп памяти &#8211; это использовать файл hiberfil.sys. Но вопервых этот файл создаётся только, когда используется режим гибернации, а во вторых он располагается на системном томе, который по идее тоже должен быть зашифрован.</p>
<p style="text-align: justify;">Сами разработчики, так вообще предлагают сделать дамп памяти при помощи утилиты MDD от компании ManTech, которая для работы требует администраторские права, пытается установить неподписанный драйвер, что естественно блокируется системой. Но даже после всего этого у меня на Windows 7 x64 утилита, так и не смогла сделать дамп.</p>
<p style="text-align: justify;">Так, что мне вообще не понятен практический смысл возможности &laquo;взлома&raquo; BitLocker, предлагаемый Passware. М.б. кто-то объяснит? <img src='http://www.lankey.ru/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<h4>PS.</h4>
<p style="text-align: justify;">Кстати, Passware Kit включает в себя достаточно много средств взлома. Но на своём опыте могу сказать, что и они не отличаются особой эффективностью. Так например, уже достаточно давно Passware предлагает нам средства взлома EFS. Кто-нибудь его взломал? Нет? А почему? Да потому, что предлагается почти тоже самое, для взлома нужно предоставить сертификат с закрытым ключом, которым всё шифровалось, да и ещё кажется и пароль. &#8211; ну это же бред! С паролем и сертификатом и сам Windows может всё открыть.</p>
<p style="text-align: justify;">По моему ничего эффективнее ректотермального криптоанализа ещё не изобрели.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lankey.ru/blog/2009/12/07/bitlocker-was-hacked/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Удаление захоронённых объектов Active Directory</title>
		<link>http://www.lankey.ru/blog/2009/11/27/deleting-tombstone-objects-active-directory/</link>
		<comments>http://www.lankey.ru/blog/2009/11/27/deleting-tombstone-objects-active-directory/#comments</comments>
		<pubDate>Thu, 26 Nov 2009 23:31:50 +0000</pubDate>
		<dc:creator>Сергей Ерин</dc:creator>
				<category><![CDATA[Windows Server]]></category>
		<category><![CDATA[Active Directory]]></category>
		<category><![CDATA[microsoft]]></category>

		<guid isPermaLink="false">http://blogs.lankey.ru/?p=422</guid>
		<description><![CDATA[Предыстория. Сразу скажу, что история произошла больше, чем полгода назад так, что особых подробностей я не помню. Но поскольку мне уже неоднократно задавали аналогичные вопросы, я решил поднять свои старые записи и написать об этом на блоге. Проблема случилась у одного из наших клиентов, ИТ-инфраструктуру которого мы обслуживаем по договору ИТ-аутсорсинга. Компания занимается разработкой систем [...]]]></description>
			<content:encoded><![CDATA[<h4>Предыстория.</h4>
<p style="text-align: justify">Сразу скажу, что история произошла больше, чем полгода назад так, что особых подробностей я не помню. Но поскольку мне уже неоднократно задавали аналогичные вопросы, я решил поднять свои старые записи и написать об этом на блоге.</p>
<p style="text-align: justify">Проблема случилась у одного из наших клиентов, ИТ-инфраструктуру которого мы обслуживаем по договору ИТ-аутсорсинга. Компания занимается разработкой систем биометрической аутентификации. В рамках одного из плановых аудитов информационной системы инженеры отдела сервисного обслуживания заметили аномальное увеличение размера базы данных службы каталогов ntds.dit. Когда проблема была обнаружена, размер ntds.dit составлял 2 ГБ, но в течение недели он вырос до 8 ГБ. В компании работает всего 50 человек, и в аналогичных компаниях размер базы данных службы каталогов варьируется от 20 до 40 МБ. Поиски в Интернете ни к чему не привели, поэтому нам пришлось разбираться самим. Параллельно мы открыли инцидент в службе поддержки Microsoft, которая в данном случае нам не помогла. Кто-то из специалистов мне пытался объяснить, что мне следует почистить Event Logs, по его мнению они хранились в Active Directory. А я всю жизнь думал, что они хранятся в C:\WINDOWS\system32\config\. Ну да ладно, может быть в тот раз трубку взяла уборщица, кто его знает <img src='http://www.lankey.ru/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p style="text-align: justify"><span id="more-422"></span></p>
<h4>Локализация проблемы.</h4>
<p style="text-align: justify">Проблему удалось локализовать в течение одной недели. Просматривая службу каталогов низкоуровневой утилитой ldp.exe, мы обнаружили огромное количество однотипных объектов в контейнере <strong>CN=Deleted Objects</strong>. В имени всех объектов содержалось название программного обеспечения биометрической аутентификации, которое как раз и разрабатывает эта компания. Мы немедленно обратились к разработчикам и сообщили о проблеме. Мы глубоко не погружались в технологию работы их программного обеспечения, но смысл был в том, что ПО генерировало маркер доступа, сохраняло его в AD, затем считывало и удаляло. И так создавалось и удалялось несколько миллионов объектов в день. Но, видимо, никто не учёл, что удалённые объекты в AD хранятся ещё 180 дней. И таким образом, они всё время накапливались. Разработчики поправили ошибку, и перед нами осталась только одна проблема &#8211; Как теперь уменьшить размер БД и избавиться от удалённых объектов?</p>
<h4>Решение проблемы.</h4>
<p style="text-align: justify">Сейчас точно не вспомню, но удалённых объектов накопилось более 100 миллионов. По умолчанию удалённые объекты хранятся 180 дней. Чтобы началось их удаление, мы уменьшили время хранение удалённых объектов до 1 дня. Для этого запустили ADSIEdit.msc и в разделе Configuration\Services\Windows NT\Directory Service, задали значение атрибута <strong>tombstonelifetime = 2</strong>.</p>
<p style="text-align: justify">Но не всё оказалось так просто. Захоронённые объекты даже с истёкшим сроком хранения не удаляются сразу. Их удаление происходит при запуске процесса Garbage Collector, который запускается 1 раз в 12 часов и удаляет не более 5000 объектов. Затем мы сократили интервал запуска процесса Garbage Collector до 1 часа.  Для этого запустили ADSIEdit.msc и в разделе Configuration\Services\Windows NT\Directory Service, задали значение атрибута <strong>garbageCollPeriod = 1</strong>.</p>
<p style="text-align: justify">Но это не сильно спасло ситуацию. Т.к. удаление 100 000 000 объектов продолжалось бы боле 2-х лет!   (100000000/5000/24/365=2,28 лет).  А по умолчанию, так и вообще более 27 лет.</p>
<p style="text-align: justify">Честно-говоря, нам не хотелось столько ждать,  и мы обратились за помощью к разработчикам Active Directory. После переписки с Тимом Спрингстоном (Tim Springston), у нас получилось удалить все захоронённые объекты в течение нескольких дней.  Для запуска непрерывного процесса удаления захороненных объектов мы использовали процедуру DoGarbageCollector.</p>
<p style="text-align: justify">Для её запуска используется LDP.EXE. Запускаем ldp.exe в меню Connection выбираем connect, подключаемся к контроллеру домена, затем выбираем Connection\bind и вводим учётные данные. Затем нажимаем Browse\Modify и заполняем соответствующие поля.<br />
<strong>Attribute: DoGarbageCollection<br />
Value: 1</strong><br />
Нажимаем <strong>Enter</strong>, а затем <strong>Run</strong>.</p>
<p style="text-align: justify">Чтобы отслеживать процесс, можно запустить логирование. Для этого меняем соответствующее значение реестра:</p>
<p style="text-align: justify"><strong>HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTDS\Diagnostics<br />
6 Garbage Collection = 3</strong></p>
<p style="text-align: justify">В Event Viewer смотрим события 1005, 1006 &#8211; они говорят о работе Garbage Collector, после завершения его работы, появляется событие: 1646, в котором будет указано на сколько может быть уменьшена БД AD оффлайновой дефрагментацией.</p>
<p style="text-align: justify">После этого перезагрузились в режиме Directory Service Restore Mode, и использовали ntdsutil для offline дефрагментации ntds.dit. Не буду расписывать процесс дефрагментации, боюсь наврать, но в нём ничего сложного нет, читайте тут: <a href="http://support.microsoft.com/kb/232122" target="_blank">http://support.microsoft.com/kb/232122</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lankey.ru/blog/2009/11/27/deleting-tombstone-objects-active-directory/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>После обновления Windows не запускается Office Communications Server</title>
		<link>http://www.lankey.ru/blog/2009/10/15/posle-obnovleniya-windows-ne-zapuskaetsya-ocs/</link>
		<comments>http://www.lankey.ru/blog/2009/10/15/posle-obnovleniya-windows-ne-zapuskaetsya-ocs/#comments</comments>
		<pubDate>Thu, 15 Oct 2009 07:16:16 +0000</pubDate>
		<dc:creator>Ярослав Никифоров</dc:creator>
				<category><![CDATA[Office Communications Server]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[office communications server 2007 r2]]></category>
		<category><![CDATA[Windows Server]]></category>
		<category><![CDATA[windows server 2008 r2]]></category>
		<category><![CDATA[исправления]]></category>

		<guid isPermaLink="false">http://blogs.lankey.ru/?p=353</guid>
		<description><![CDATA[14 октября была выпущена очередная порция критических обновлений операционных систем от Microsoft. Но после их установки на серверы Office Communications Server или Live Communications Server службы OCS/LCS не запускаются. Проблема в обновлении KB974571 &#8211; &#171;MS09-056: Vulnerabilities in CryptoAPI could allow spoofing&#187;. После установки этого обновления службы Front-End, Access Edge не запустятся. Например, для Office Communications Server [...]]]></description>
			<content:encoded><![CDATA[<p>14 октября была выпущена очередная порция критических обновлений операционных систем от Microsoft. Но после их установки на серверы Office Communications Server или Live Communications Server службы OCS/LCS не запускаются.</p>
<p>Проблема в обновлении KB974571 &#8211; &laquo;MS09-056: Vulnerabilities in CryptoAPI could allow spoofing&raquo;. После установки этого обновления службы Front-End, Access Edge не запустятся.</p>
<p>Например, для Office Communications Server 2007 R2 в журнале событий появляются записи:<br />
<code><br />
Event Type: Error<br />
Event Source: OCS Server<br />
Task Category: (1000)<br />
Event ID: 12290<br />
Description:<br />
The evaluation period for Microsoft Office Communications Server 2007 R2 has expired. Please upgrade from the evaluation version to the full released version of the product.<br />
</code></p>
<p><code><br />
Event Type: Error<br />
Event Source: OCS Server<br />
Task Category: (1000)<br />
Event ID: 12299<br />
Description:<br />
The service is shutting down due to an internal error.<br />
Error Code: C3E93C23 (SIPPROXY_E_INVALID_INSTALLATION_DATA)<br />
Resolution:<br />
Check the previous event log entries and resolve them. Restart the server. If the problem persists contact product support.<br />
</code></p>
<p><strong>Решение:</strong> если вы еще не разворачивали обновления &#8211; <strong>не устанавливайте обновление KB974571</strong>. Если уже установили &#8211; <strong>деинсталлируйте это обновление.</strong></p>
<p>Поскольку данное обновление имеет статус &laquo;Критическое&raquo; &#8211; его установка в дальнейшем крайне желательна. Ожидаем разрешения проблемы и свежего обновления от Microsoft.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lankey.ru/blog/2009/10/15/posle-obnovleniya-windows-ne-zapuskaetsya-ocs/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Восстановление удалённых объектов Active Directory в Windows Server 2008 R2</title>
		<link>http://www.lankey.ru/blog/2009/09/20/restoring-deleted-objects-active-directory-in-windows-server-2008-r2/</link>
		<comments>http://www.lankey.ru/blog/2009/09/20/restoring-deleted-objects-active-directory-in-windows-server-2008-r2/#comments</comments>
		<pubDate>Sun, 20 Sep 2009 01:35:54 +0000</pubDate>
		<dc:creator>Сергей Ерин</dc:creator>
				<category><![CDATA[Windows Server]]></category>
		<category><![CDATA[Active Directory]]></category>
		<category><![CDATA[microsoft]]></category>

		<guid isPermaLink="false">http://blogs.lankey.ru/?p=259</guid>
		<description><![CDATA[Я думаю, что практически каждый системный администратор когда-нибудь сталкивался с задачей восстановления удалённых объектов из Active Directory. Все сертифицированные инженеры знают, что стандартный способ восстановления удалённых объектов &#8211; это авторитативное восстановление из бэкапа в режиме Directory Service Restore Mode с использованием ntbackup и ntdsutil. Способ, скажем, не самый удобный. Во-первых нужно перезагружать сервер, во вторых [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify">Я думаю, что практически каждый системный администратор когда-нибудь сталкивался с задачей восстановления удалённых объектов из Active Directory. Все сертифицированные инженеры знают, что стандартный способ восстановления удалённых объектов &#8211; это авторитативное восстановление из бэкапа в режиме Directory Service Restore Mode с использованием ntbackup и ntdsutil. Способ, скажем, не самый удобный. Во-первых нужно перезагружать сервер, во вторых восстанавливать из резервной копии состояние системы, потом помечать, какие объекты не будут перезаписаны процессом репликации&#8230;</p>
<p style="text-align: justify"><span id="more-259"></span>Немного больше повезло тем, кто использует Symantec BackUp Exec. Он умеет восстанавливать объекты из архива без перезагрузки контроллера домена. Но во-первых далеко не все используют Symantec BackUp Exec, а во-вторых под рукой может не оказаться актуальной резервной копии службы каталогов (вы как часто её резервируете?).</p>
<p style="text-align: justify">В <strong>Windows Server 2008 R2</strong> появилось очень много новых возможностей, одной из которых является корзина Active Directory (Active Directory Recycle Bin).</p>
<p style="text-align: justify"><em>Кстати, компания <a href="http://www.lankey.ru">ЛанКей</a> совместно с компанией Microsoft проводит бесплатные презентации Windows Server 2008 R2 в рамках акции &laquo;Время вперёд&raquo;, которая продлится до 31 декабря. Так, что если у вашей компании возникло желание узнать о всех возможностях Windows Server 2008 R2, вы можете заказать бесплатную консультацию, пройдя по данной <a href="http://server.microsoft4you.ru/" target="_blank">ссылке</a> и выбрав партнёра LanKey (Москва). Презентация проводится сертифицированными инженерами в офисе заказчика.</em></p>
<p style="text-align: justify">И так, вернёмся к нашей теме. <strong>Корзина Active Directory</strong> &#8211; это специальная функция/фича/возможность восстановления удалённых объектов. Теперь после удаления объекта из Active Directory, он не просто удаляется, а перемещается в специальный контейнер Deleted Objects (хотя и раньше объект не просто удалялся, но об этом ниже). И если вы потом захотите восстановить объект, то это можно будет сделать, вытащив его из контейнера Deleted Objects.</p>
<p style="text-align: justify">Функция Корзины Active Directory работает только в режиме работы леса и домена Windows Server 2008 R2! И кроме того эта функция по умолчанию  выключена.</p>
<h4>Включаем корзину Active Directory.</h4>
<p style="text-align: justify">&gt;У меня домен зовется net.local, поэтому вы меняйте эти значения на свои.</p>
<p style="text-align: justify">Включить функцию корзины можно двумя способами, либо через ldp.exe либо при помощи командлетов PowerShell.</p>
<p style="text-align: justify">1) <strong>При помощи ldp.exe</strong> (входит в состав Support Tools).</p>
<p style="text-align: justify">Запускаем Ldp.exe. Затем нажимаем Connection&gt;Connect, пишем localhost, порт 389. Затем нажимаем View&gt;Tree, в BaseDN выбираем CN=Configuration,DC=net,DC=local. Раскрываем CN=Configuration&#8230;. переходим к CN=Partitions&#8230;, нажимаем правой кнопкой по CN=Partitions&#8230; и выбираем Modify. Очищаем поле DN, в строке Attribute пишем: enableOptionalFeature, в строке Values пишем CN=Partitions,CN=Configuration,DC=net,DC=local:766ddcd8-acd0-445e-f3b9-a7f9b6744f2a, выбираем Add и нажимаем Enter и потом Run.</p>
<p style="text-align: justify">2) <strong>При помощи PowerShell</strong>:</p>
<p style="text-align: justify">Запускаем Пуск\Administrative Tools\Active Directory Module for Windows PowerShell и пишем:</p>
<p style="text-align: justify"><strong>Enable-ADOptionalFeature –Identity ‘CN=Recycle Bin Feature,CN=Optional Features,CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration, DC=net,DC=local’ -Scope ForestOrConfigurationSet -Target ‘net.local’</strong></p>
<h4>Восстанавливаем удалённые объекты.</h4>
<p style="text-align: justify">Способа восстановления удалённых объектов стандартными средствами два, при помощи ldp.exe или при помощи PowerShell. В тестовых целях я создал пользователя &laquo;robot&raquo;, включил его в группу Domain Admins, а затем удалил. Теперь будем пытаться его восстановить.</p>
<p style="text-align: justify">1) <strong>Восстанавливаем удалённые объекты при помощи ldp.exe</strong>:</p>
<p style="text-align: justify">Запускаем Ldp.exe. Затем нажимаем Connection&gt;Connect, пишем localhost, порт 389. Нажимаем Options&gt;Controls, в меню Load Predefined выбираем Return deleted objects, жмём OK. Затем нажимаем View&gt;Tree, в BaseDN выбираем DC=net,DC=local. Раскрываем корень DC=net,DC=local, и видим контейнер Deleted Objects, дважды по нему щелкаем и видим перечень удалённых объектов.</p>
<p><a href="http://blogs.lankey.ru/wp-content/uploads/2009/09/win2k8_ldp.jpg"><img class="aligncenter size-full wp-image-260" title="win2k8_ldp" src="http://blogs.lankey.ru/wp-content/uploads/2009/09/win2k8_ldp.jpg" alt="win2k8_ldp" width="296" height="348" /></a></p>
<p style="text-align: justify">Я вижу здесь удалённого мной ранее пользователя robot. Чтобы его восстановить, я нажимаем по нему правой кнопкой и выбираем Modify.</p>
<p style="text-align: justify"><a href="http://blogs.lankey.ru/wp-content/uploads/2009/09/win2k8_ldp_restore.jpg"><img class="aligncenter size-full wp-image-261" title="win2k8_ldp_restore" src="http://blogs.lankey.ru/wp-content/uploads/2009/09/win2k8_ldp_restore.jpg" alt="win2k8_ldp_restore" width="348" height="378" /></a></p>
<p style="text-align: justify">Пишем в строке Attribute: isDeleted, ниже выбираем Delete, нажимаем кнопку Enter, затем пишем в поле Attribute: distignuishedName, в поле Values пишем: CN=robot,CN=Users,DC=net,DC=local (это исходный DN пользователя). Если вы не знаете исходный ОГП пользователя, то его можно посмотреть в правом окне, он записан в атрибуте lastKnownParent. Далее ставим обе галки Synchronous и Extended и жмём Run. Всё! Теперь объект пользователя полностью восстановлен, в чем вы можете убедиться, открыв консоль Active Directory Users and Computers.</p>
<p style="text-align: justify">2) <strong>Восстанавливаем удалённые объекты при помощи PowerShell</strong>:</p>
<p style="text-align: justify">Для того, чтобы найти объекты, используется командлет Get-ADObject. Чтобы он искал и удалённые объекты, нужно использовать ключ -IncludeDeletedObjects. А для восстановления объектов используется командлет Restore-ADObject. Когда необходимо восстановить объект, или тем более несколько объектов, удобнее всего использовать перенаправление (pipeline) вывода командлета Get-ADObject на вход командлета Restore-ADObject:</p>
<p style="text-align: justify"><strong>Get-ADObject -Filter {sAMAccountName -eq &laquo;robot&raquo;} -IncludeDeletedObjects | Restore-ADObject</strong><br />
Здесь я задал фильтр, чтобы укзать что я хочу восстановить только объект, который имеет атрибут sAMAccountName: robot. В общем, одна такая простая строчка, и объект полностью восстановлен!</p>
<p style="text-align: justify">Естественно, что использование PowerShell намного удобнее и предпочтительнее, чем восстановление при помощи ldp.exe.</p>
<h4 style="text-align: justify">Восстановление удалённых объектов Active Directory в Windows 2003.</h4>
<p style="text-align: justify">Некоторые из вас, кто слышал о таком понятии, как <strong>Tombstone Lifetime</strong>, наверняка сейчас задались вопросом: &laquo;А что изменилось в Windows Server 2008 R2? Захоронённые объекты Active Directory можно было восстанавливать и раньше!&raquo;.</p>
<p style="text-align: justify">Да, вы отчасти правы! Действительно в более старых версиях, например Windows Server 2003, в Active Directory удалённые объекты тоже окончательно не удалялись, и тоже помещались в тот же контейнер Deleted Objects. Хранились объекты в этом контейнере по умолчанию 128 дней (в WS 2003 sp1, и 64 дня в WS 2003 rtm), и по истечении этого срока, объекты окончательно удалялись процессом Garbage Collector. В принципе в Windows Server 2008 R2 всё осталось точно также, за исключением того, что теперь объекты, сначала помечаются удалёнными на 128 дней с сохранением всех своих атрибутов, и только затем помечаются как захоронённые и сохраняются ещё 128 дней. Т.е. первые 128 дней объекты можно восстановить с соханением всех исходных атрибутов, членствах в группах и даже пароля. При восстановлении удалённого пользователя в предыдущих версиях Windows Server, он сохранял лишь ограниченный набор атрибутов. По сути оставались лишь sAMAccountName, SID и GUID. Т.е., восстановив пользователя мы должны были заново прописать все его атрибуты, Полное имя, UPN, включить в нужные группы, задать новый пароль и т.д. Хотя сам процесс восстановления был почти таким же. Привожу небольшой пример восстановления удалённого пользователя в домене Windows 2003.</p>
<p style="text-align: justify">&gt;Как и в предыдущем примере, я создал пользователя &laquo;robot&raquo;, включил его в группу Domain Admins, а затем удалил. В данном примере у меня домен называется olddomain.local, так, что вы меняйте эти значения на свои.</p>
<p style="text-align: justify">Запускаем Ldp.exe. Затем нажимаем Connection&gt;Connect, пишем localhost, порт 389. Нажимаем Options&gt;Controls, в меню Load Predefined выбираем Return deleted objects, жмём OK. Затем нажимаем View&gt;Tree, в BaseDN выбираем DC=olddomain,DC=local. Раскрываем корень DC=olddomain,DC=local, и видим контейнер Deleted Objects, дважды по нему щелкаем и видим перечень удалённых объектов.</p>
<p><a href="http://blogs.lankey.ru/wp-content/uploads/2009/09/ldp_deleted.jpg"><img class="aligncenter size-medium wp-image-262" title="ldp_deleted" src="http://blogs.lankey.ru/wp-content/uploads/2009/09/ldp_deleted-174x300.jpg" alt="ldp_deleted" width="174" height="300" /></a></p>
<p style="text-align: justify">Я вижу здесь удалённого мной ранее пользователя robot. Чтобы его восстановить, нажимаем по нему правой кнопкой и выбираем Modify. Пишем в строке Attribute: isDeleted, ниже выбираем Delete, нажимаем кнопку Enter, затем пишем в поле Attribute: distignuishedName, в поле Values пишем: CN=robot,CN=Users,DC=olddomain,DC=local (это исходный DN пользователя). Если вы не знаете исходный ОГП пользователя, то его можно посмотреть в правом окне, он записан в атрибуте lastKnownParent. Далее ставим обе галки Synchronous и Extended и жмём Run. Запускаем оснастку Active Directory Users and Computers и видим, что пользователь появился, но он отключен.</p>
<p><a href="http://blogs.lankey.ru/wp-content/uploads/2009/09/dsa_robot_disabled.jpg"><img class="aligncenter size-full wp-image-263" title="dsa_robot_disabled" src="http://blogs.lankey.ru/wp-content/uploads/2009/09/dsa_robot_disabled.jpg" alt="dsa_robot_disabled" width="350" height="308" /></a></p>
<p style="text-align: justify">Нажимаем по нему правой кнопкой и выбираем Enable Account, и получаем ошибку:</p>
<p><a href="http://blogs.lankey.ru/wp-content/uploads/2009/09/ad_err.jpg"><img class="aligncenter size-medium wp-image-264" title="ad_err" src="http://blogs.lankey.ru/wp-content/uploads/2009/09/ad_err-300x49.jpg" alt="ad_err" width="300" height="49" /></a></p>
<p style="text-align: justify">Ошибка говорит о том, что у восстановленного пользователя нет пароля, поэтому его нужно сначала задать. Т.е. нужно нажать правой кнопкой по пользователю robot и выбрать Reset password. После того, как новый пароль будет задан, можно будет активировать учётную запись пользователя. Всё! Учтеная запись восстановлена, но она потеряла почти все свои неосновные атрибуты и членства в группах так, что теперь вручную нужно будет восстановить все атрибуты, членства в группах, имена, телефоны, и проч.</p>
<p style="text-align: justify">Теперь, я надеюсь, вы поняли, как Windows Server 2008 R2 нам облегчил жизнь, хотя бы такой функцией, как Корзина Active Directory.</p>
<p style="text-align: justify">PS: Кстати, кроме ldp.exe и PowerShell (в WS 2k8 R2) есть ещё один способ восстановления удалённых объектов Active Directory &#8211; это использование бесплатной утилиты от Sysinternals <a href="http://technet.microsoft.com/en-us/sysinternals/bb963906.aspx" target="_blank">AdRestore</a>. Причем данная утилита работает и в Windows 2003 и в Windows 2008. Утилита очень проста в использовании. Для восстановления пользователя robot, достаточно было написать:</p>
<p style="text-align: justify"><strong>adrestore.exe -r robot</strong></p>
<p style="text-align: justify">Результат использования AdRestore  ничем не отличается от ldp.exe или от <strong> </strong>Restore-ADObject.</p>
<p><strong> </strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.lankey.ru/blog/2009/09/20/restoring-deleted-objects-active-directory-in-windows-server-2008-r2/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

