tag:blogger.com,1999:blog-86966414956978340112024-02-21T19:29:00.685+02:00NetZAnonymoushttp://www.blogger.com/profile/16318288257576755859noreply@blogger.comBlogger163125tag:blogger.com,1999:blog-8696641495697834011.post-40832716043126059352015-03-29T20:59:00.002+03:002015-03-29T20:59:31.492+03:00Powershell DSC Jumpstart<a href="http://channel9.msdn.com/Series/Getting-Started-with-PowerShell-Desired-State-Configuration-DSC" target="_blank">Powershell DSC Jumpstart</a><br />
<a href="https://channel9.msdn.com/Series/Advanced-PowerShell-Desired-State-Configuration-DSC-and-Custom-Resources" target="_blank">Advanced Powershell DSC</a>Anonymoushttp://www.blogger.com/profile/16318288257576755859noreply@blogger.com0tag:blogger.com,1999:blog-8696641495697834011.post-71224545952097858182015-03-13T12:11:00.002+02:002015-04-27T09:50:29.165+03:00Быстрый способ проверить ссылки на страницеИногда случается, что надо проверить ссылки на какой-то страничке, увидеть живые ли они. Ну не руками же кликать. Само собой что есть для этого инструменты, я подозреваю. Но как же обойтись без любимого powershell. Одна из проблем заключается в том, что ссылок может быть много, и проверять их по одной долго. С другой стороны, к несчастью в powershell нет поддержки потоков. Есть powershell job, но они довольно тяжеловесны. Есть другой способ, runspaces, описанный <a href="http://learn-powershell.net/2012/05/13/using-background-runspaces-instead-of-psjobs-for-better-performance/" target="_blank">вот тут</a>, но он прилично сложный. В общем, я решил быстренько, в качестве пробы, переделать этот скрипт с тем, чтобы просто пробежать по ссылкам с указанного URL. <a href="https://github.com/eosfor/Powershell-Tips/blob/master/TestSite.ps1" target="_blank">Вот</a> что получилось. На самом деле я внес не очень много изменений в исходный скрипт. Основные вещи:<br />
Я заменил scriptblock который исполняется параллельно:
<script src="http://pastebin.com/embed_js.php?i=YZHhuPfA"></script>
Ну и второе - я добавил пару проверок чтобы исключить повторяющиеся ссылки и все, что не начинается с "http*". Само собой что это далеко не всеобъемлющая проверка, но с другой стороны я и не претендую на нее.<br />
Что бы еще добавить?Anonymoushttp://www.blogger.com/profile/16318288257576755859noreply@blogger.com0tag:blogger.com,1999:blog-8696641495697834011.post-90789344453683779702013-11-03T15:15:00.001+02:002013-11-03T15:15:08.125+02:00I've been missing this.I've been missing <a href="http://psmsi.codeplex.com/">this</a> for last two years. Will try to use next week. In short, this is a Powershell module for Windows Installer. I hope this should help to automate installation/uninstallation as well as inventory of the software. Looks like it is made by someone from MS, so should work.Anonymoushttp://www.blogger.com/profile/16318288257576755859noreply@blogger.com0tag:blogger.com,1999:blog-8696641495697834011.post-25701883905440899142013-11-03T15:10:00.001+02:002013-11-03T15:10:05.011+02:00Второй пост не удался.<a href="http://habrahabr.ru/post/199228/">Сабж</a> собсно. Видимо что-то не сложилось с текстом.Anonymoushttp://www.blogger.com/profile/16318288257576755859noreply@blogger.com0tag:blogger.com,1999:blog-8696641495697834011.post-62206753373166191032013-09-23T22:49:00.001+03:002013-09-23T22:49:36.539+03:00Как я сайт на powershell парсил<p>В общем, <a href="http://habrahabr.ru/post/194792/">вот мой первый постна хабре</a>, даже инвайт дали ). Посмотрим, осилю ли еще что-нибудь туда написать.</p> Anonymoushttp://www.blogger.com/profile/16318288257576755859noreply@blogger.com0tag:blogger.com,1999:blog-8696641495697834011.post-1780404031723196462013-09-21T22:43:00.001+03:002013-09-21T22:53:59.173+03:00Как НЕ надо настраивать IPv6 transition в Windows 8<p align="justify">До чего же может дойти человеческая мысль! Просто ужас порой берет. В общем, решил я покачать всякого интересного с одного известного торрент трекера. Ну что, все так делают, чем я хуже. В общем – пошел на сайт, а он не работает. Вот блин, копирасты, подумал я. Погуглил, нашел слухи о том что сайт по DDOS атакой, и всякие товарищи предложили пойти на ipv6 адрес данного трекера. Сказано – сделано. Но ping сразу, из коробки, не пошел. Я не стал долго думать над решением. Зачем, если сначала проще всего спросить у гугла. И гугл <a href="http://blog.cherepovets.ru/serovds/2011/11/15/teredo-win7/">нашел решение</a>. Ну по правде говоря это решение для Win7, но поскольку разница идеологически не очень большая – работать должно. Но меня сразу смутило начало – “Шаг 1. Удаляем весь мусор”. Это просто феерия, накал сами знаете чего! Вот отчего все что там перечислено – мусор? Позвольте поинтересоваться, что оно вообще такое? От чего же оно мусор? НУ и далее по тексту ручное добавление дефолтного маршрута и проблемы из этого вытекающие. Моему возмущению просто нет предела. И после вот такого “конфигурирования” вы хотите чтобы ОС работала как надо?<br><a name="habracut"></a><br>В общем, единственное что полезно в этой статье – это список teredo серверов и IPv6 DNS. Все остальное можно смело отправить на помойку. К слову, в конфигурации по умолчанию у меня оно таки заработало, позже, после тестов. Не знаю почему, не вникал. Исследование требует времени. Возможно есть некторые проблемы с teredo сервером по умолчанию, а возможно они случились когда я попытался этим воспользоваться. Не могу сказать точно, но в конечном итоге простейшая процедура следующая:</p> <ul> <li>Указать IPv6 DNS в настройках интерфейса <li>Задать сервер teredo, отличный от заданного по умолчанию <li>Подождать, пока поднимется туннельный интерфейс. По умолчанию он поднят и настроен, но может статься, что не работает. По разным причинам, тут сниффр в руки и вперед. Правда думается, что во многих случаях будет работать из коробки, и все это нужно проделывать только если не работает.</li></ul> <p><br>Ну и собственно, картинки:<br><b>Настройки сетевого интерфейса</b><br><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVV7E8ri-NhpO1lzXw1-Sjk1ROoKOzHbfU-pRFkD29ry7078n9hWPW8q5OBcrtjj87LbJzNY4-_dEXIBjXFT6yeqef8KURBOWz7-GGzDkpzpZSgrZ4lkj28mfJp3dBghAPu_DZSuVQKow/s1600-h/teredoConsole2%25255B3%25255D.png"><img title="teredoConsole2" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="teredoConsole2" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVC-zAUavBRcVwBpsxfOjmkH_KMTfnVd5r54Ojaa2IUlzJMqFwvH9dpqv74wle7_Zph36AQcqjypfr8SI_1UsB5Kq-LkzKM5R2q4aRsHuakCsKtc5hP1Rw3KjigkFHNw9uIaQK4iq_V5c/?imgmax=800" width="583" height="484"></a><br><b></b></p> <p><b>Настройка teredo интерфейса</b><br><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtuhq1Y3r7EsT8SH7TQNkpxwj0rF27AQP5skNjKqg29MI9H_vOgUtZUJedsFPJgzzZ1p9OND6tBo3LdjapDfY55VbbZNzshLBeUTmjMU2xpxQF3socVQE9w3jqyFqAaKtgkfNuFyLOOuk/s1600-h/teredoConsoleMain%25255B3%25255D.png"><img title="teredoConsoleMain" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="teredoConsoleMain" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjPF58ZjB7XZcNS6rm27CibP9G6mEam8CM9ANHzvCiln9QvKw3AEPhqNzfMv4xU5Ur5W9FDxmC6VNK_atj5hKduQvvBaWvbritZiYpltkW7lT0qJGsP3D1UVYOZkx6vnUgRzfal8OAIW2E/?imgmax=800" width="644" height="409"></a><br></p> <p>После всего вернул в исходное состояние но все продолжило работать и пинговаться. Возможно нужно было только сказать:<br><i><b>netsh interface teredo set state type= client</b></i><br>или как-то так, чтобы его подергать. <br>Вывод, читайте <a href="http://technet.microsoft.com/en-us/library/bb457011.aspx">документацию</a>, и думайте головой прежде чем что-то удалять!</p> <p><a href="http://habrahabr.ru/sandbox/58365/">Взял как бы тут</a>, правда я же это и написал )</p> Anonymoushttp://www.blogger.com/profile/16318288257576755859noreply@blogger.com0tag:blogger.com,1999:blog-8696641495697834011.post-12143132154369005002013-07-28T22:47:00.001+03:002013-07-29T00:04:53.363+03:00Default protocol for remote administration<p>Вот оно, свершилось! Не прошло и года как я опять что-то пишу. Кроме того, не прошло и года как вышла новая версия, а я о ней ничего так и не написал. В общем, короткая заметка. У меня тут две новости: хорошая и … нормальная. Начнем с хорошей – удаленному управлению системами быть. И основным протоколом для этого в системе считается Powershel Remoting. Ну и нормальная – последствия этого проявляются, к примеру, вот так, как на этом рисунке. Это означает что для того чтобы заработали всякого рода консоли, работающие через DCOM нужно руками включить соответствующие правила в firewall. </p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlnKLBhO4L-faXCfcn4C7WLrFjaSpn4m2Gy4AoSMj1PRKMwZLo4BC2SDtQPvRha98yGNIB7FWrLnQhW-tbxsg9d9O7LRrpCi6Xap6dptJvRVYmkm2VUZKkCtZ4pox6gx_rSj-jdLZGBio/s1600-h/dcomDisabled%25255B4%25255D.png"><img title="dcomDisabled" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="dcomDisabled" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSPJEGmAW-HdZ6EKbqTR5wnX64ye6RfLTCoJmN-e4ILOobUfDPk8fXpU_YhqFlcUuMfHET9aOCrvYwbJwrNdUarmCwLq-VN1i2yITuHHgdSCldCUe3p0LOwOU3GW4Piy-NXV9_tfcimgY/?imgmax=800" width="496" height="385"></a></p> <p>В частности, <a href="http://blogs.technet.com/b/wincat/archive/2012/05/02/what-needs-to-be-configured-to-do-remote-disk-management-of-a-server-core-installation-in-windows-server-2012-via-powershell.aspx">вот хорошая заметка</a> по этому поводу</p> Anonymoushttp://www.blogger.com/profile/16318288257576755859noreply@blogger.com1tag:blogger.com,1999:blog-8696641495697834011.post-46988134179833716532013-02-17T02:07:00.001+02:002013-02-17T02:07:31.957+02:00Powergui v3.5 и Powershell 3<p> </p> <p align="justify">Мне нравится Powergui. Да, в Windows 8 есть обновленный IDE, но он, все же, несколько хуже Powergui. Как минимум дебаг в нем не очень удобен. Не знаю почему, может дело привычки. В последней версии Powergui появилась поддержка Powershell 3. Правда не совсем полностью. Прежде всего, чтобы включить эту самую поддержку, нужно запустить его вот так:</p> <p><a href="http://lh6.ggpht.com/-VWnIJEwYfBI/USAfQOjJtmI/AAAAAAAABRg/Lj-iMAVo4ZM/s1600-h/powerguiCmdLine%25255B5%25255D.png"><img title="powerguiCmdLine" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="powerguiCmdLine" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhO60T0UqAWLULICJwZY_CQ_s_8pN5KoXwIbtKeZ-3rJU21y3gEbb5yfr0Afn7zLNEMCDZnG7vwFDySIDHDTu-VLKItE2uAAQNJ9iwUvQWNVzlfTsi8yxqaLIs2KeYj2C4VH3Aem12Lt9A/?imgmax=800" width="456" height="117"></a></p> <p>Кроме этого нет поддержки подсветки синтаксиса для wokrflow. Это это не очень страшно на мой взгляд.</p> <p> <div id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:5c0621bc-e863-4c3e-ab0e-f93184b1ccb8" class="wlWriterEditableSmartContent" style="float: none; padding-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px">Technorati Tags: <a href="http://technorati.com/tags/Powershell" rel="tag">Powershell</a>,<a href="http://technorati.com/tags/Powergui" rel="tag">Powergui</a></div></p> Anonymoushttp://www.blogger.com/profile/16318288257576755859noreply@blogger.com2tag:blogger.com,1999:blog-8696641495697834011.post-2492858789918674212013-02-16T16:34:00.001+02:002013-02-17T02:08:53.047+02:00Линукс, и его глюки<p> </p> <p>Давненько не писал ничего в “уютном бложике”. То времени не было то желания. Однако не далее, чем вчера мне в руки попал один ноутбук с линуксом на борту и мне пришлось оценить всю мощь и силу этой ОС. Отмечу, что я не преследую цель разжечь очередной холивар, но хочу выразить свое негодование "тысяча чертей"(с), по поводу "дружественности к пользователю". <p>Но обо всем по порядку. Не буду углубляться в то, как и закакие ДЕНЬЖИЩИ попал мне в руки этот ноут. Я, человек довольно жадный, и не слишком богатый, поэтому больше 550$ да железяку отдать не могу. А хочу при этом чтоб помощней и памяти побольше, можно не с самой мощной видеокартой. Может посоветуете? Ну да, о чем это я. Так вот, сам по себе ноут был неплох, люминиевый корпус, Intel Core i5, 6 гигабайт памяти, 17 дюймов, 3 кг и наклейка SUSE Linux Enterprise Desktop, зелененькая такая. Я, собственно, решил его запустить и посмотреть. Было интересно, линукс ведь на борту. Когда-то давно я уже пытался использовать подобное изделие - не срослось. С тех пор я мягко говоря не фанат линукс систем, как минимум для десктопов. В этот раз решил посмотреть, что же изменилось с тех пор. <p>Итак, я его включил. Как и положено он запустился и стал производить некие манипуляции. Происходило это довольно долго, я успел выпить чайку. Тут, к слову, ничего страшного я не вижу. Ну долго и долго, значит так надо. Может после этого все будет работать с полпинка. Вернулся я как раз вовремя, железяка бутнулась, появился зелененький spash screen с соответствующей надписью. Ура, подумал я, наконец-то. И тут началось... <p align="justify">Spash screen пропал и появилась ... реклама фирмы производителя. Вида презентации Powerpoint. Пять-семь слайдов, меняющих друг друга и рассказывающих о всяких свистелках-перделках для ноутов от фирмы. Ну, подожду, может пройдет, подумал я. Несколько минут ожидания не дали ничего. Я стал давить кнопочки, комбинации кнопочек - реакции ноль. Слайды сменялись, реакции на кнопочки не было, стрелочки мышки тоже. Шикарно, подумал я, и представил себе глаза обычного бизнес юзера, бухгалтера там, или HR специалиста, купившего сие изделие для домашних или рабочих нужд. Ну, деваться некуда – poweroff. Через пару секунд после включения я увидел командное приглашение grub 0.94. Как хорошо, что я не бухгалтер, иначе домашние услышали бы кучу нелестных восклицаний на русском-матерном. Я же, просто улыбнулся. Налицо первый признак того, что изменилось мало. Что ж, продолжаем. На самом деле проблема не особенно большая, даже с учетом того факта, что я не специалист в линукс системах. Через полчаса чтения документации, на самом деле ее было сложнее найти, чем выполнить необходимые шаги, система, таки запустилась. <p align="justify">Следующий шаг, само собой - подключение к сети. Беспроводной конечно же, это ведь ноутбук. Опять же, я человек простой, привыкший к графическим интерфейсам. А система все же для десктопов. Соответственно идем в графический интерфейс и пытаемся поискать сети. Усердное щелканье по кнопке сканирования не приводит ни к каким результатам. Думаю, что вот тут терпение обычного пользователя закончилось бы окончательно. Ладно, решил я, буду долбить руками, я ведь все-таки IT Pro. Я то знаю, что такое SSID и WPA-PKS. В общем, ввожу SSID, нажимаю кнопку скан и ... список сетей появляется! Волшебно, WiFi заработал, нужно было всего лишь ввести SSID! А если бы я его не знал, или не помнил? Ладно, едем дальше. Как и полагается, мой DLINK Dir-615 настроен на раздачу всего и вся по DHCP. Ну это для того, чтобы облегчить использование моего WLAN всем, кто знает 24х-значный пароль. Этот DHCP, как водится, отдает адрес и DNS. В этот момент я попытался сделать обычный ping на внешний ресурс. И меня, стоило ли удивляться, постигло очередное разочарование. Не работает. Хм, ладно, возможно не работает роутер, иногда это с ним случается. Однако нет, на стационарном компе рядом все работает как положено. Может не разрешается имя внешнего ресурса? Как же так, DNS должен быть отдан по DHCP. В resolv.conf он все-таки есть. Хм странно. Минут двадцать я был в некоем замешательстве, ну не привык я к таим поворотам судьбы. Потом до меня дошло – маршруты! И, да, вот оно. Не указан шлюз по умолчанию. Как же так? Специально проверил сниффером, опция 3 есть в DHCPACK! Это ведь не магия, маршрут по умолчанию не появляется ни с того ни с сего из воздуха, работает же это других устройствах, под управлением того же андроида. Должно работать и тут, но не работает! К слову, на андроиде тоже работает кривовато, особенно после последнего обновления от вендора моего планшета. Ну да ладно, мне это уже порядком поднадоело, добавил маршрут вручную, так и быть. Это действие явно не для обычного пользователя, ведь ему нужно было бы знать, что такое шлюз по умолчанию. А это ему ряд ли понравится. Но на этом этапе интернет появился, ура. <p align="justify">Ну что ж, не всякий бизнес пользователь дойдет до этого места. Давайте пользоваться! Я привык к google chrome, давайте поставим. Зайдем на сайт google, выберем дистрибутив, поставим через графический интерфейс. Запускаем и ... не запускается! Фух, это уже ни в какие ворота, простите. Ладно, черт с ним, давайте скайп, хочется проверить камеру. На сайт производителя, дистрибутив, ставим, запускаем. И - не работает. Процесс появляется на секунду и потом пропадает. <p align="justify">В этот момент, каюсь, мое терпение закончилось. Я хочу пользоваться железкой, работать работу, а не бороться с настройкой того, что настраивать не нужно. С моей точки зрения ни о какой дружелюбности и нормальной работе с пользователями речь не идет. Бизнес пользователю ведь что важно, включил, запустилось, включил свои приложения и начал делать свою работу. Их не интересует какая ОС, им важно, чтобы те вещи, которые им нужны - электронные таблицы, интернет, почта, VPN работали сразу после запуска ноутбука и их не приходилось перенастраивать вручную при каждой смене точки доступа, звезд на небе или фаз луны. В общем, жаль нескольких часов потерянного времени на настройку того, что давно уже умеет настраиваться автоматически, без участия человека вообще. Да, собственно, не только умеет, а еще и настраивается в куче других случаев, только не в этом. А с учетом ожидания при старте, в самом начале, хоть и единоразового, поисков информации по grub и т.д. – полдня коту под хвост! Это ужасно. <p align="justify">Что ж, надо поставить Windows 8, так, для сравнения. Скачал, залил на флешку. Поставил. После установки она сразу спросила меня, к какой беспроводной сети подключиться и показала список. Выбрав нужную и введя пароль я получил доступ к интернету. Все, можно работать. Конечно, нет встроенных драйверов для тачпада, встроенной дискретной видеокарты и тд. Но эта проблема решилась заходом на сайт производителя железа. Фактически, система была готова к использованию сразу после старта.</p> Anonymoushttp://www.blogger.com/profile/16318288257576755859noreply@blogger.com1tag:blogger.com,1999:blog-8696641495697834011.post-74595159229546953222012-12-24T15:09:00.001+02:002012-12-24T15:09:31.216+02:00Как запустить WMIDiag на x64<p> </p> <p>Всем привет. Снова вернулся к своему блогу. Не смотря на праздники огромное количество работы. Сегодня столкнулся со странной проблемой. При попытка запустить WMIDiag на Windows 2008 R2 x64 получиил сообщение “<strong>WMIDiag must be run from native 64-bit environment. It is not supported in Wow64</strong>”. Быстрый забег по гуглу ничего не дал. Пришлось копать глубже и <a href="http://msdn.microsoft.com/en-us/library/aa384187(VS.85).aspx">вот</a> что выявилось. В общем, запускать надо вот так:</p> <p><em>c:\windows\sysnative\cscript.exe wmidiag.vbs</em></p> Anonymoushttp://www.blogger.com/profile/16318288257576755859noreply@blogger.com0tag:blogger.com,1999:blog-8696641495697834011.post-21852042480398935762012-05-01T11:48:00.000+03:002012-05-01T11:48:06.879+03:00Новый взгляд на системное администрирование<div style="text-align: justify;">
Ну, прежде всего стоит сказать, что за последний год мне пришлось сменить несколько мест работы. Процесс смены во многом сопровождался нервной обстановкой. Прежде всего по обычной бытовой причине - отсутствии жилья. При отсутствии жилья и наличии семьи все это довольно сложно, неприятно и нервно. Особенно верно последнее. В итоге ни одной новой записи в блог, куча нервов, неопределенности ну и всякого такого. При этом отмечу что рядовые, и при этом далеко не маленькие украинские работодатели не хотят платить сотрудникам приличные деньги. Однако при этом требования, которые они предъявляют сотрудникам абсолютно не соответствуют тем зарплатам, которые они готовы платить. Интересно, отчего это так? С момента моего вынужденного ухода из инструкторов я побывал на интервью в нескольких крупных украинских интеграторах. В один из них даже пошел работать. Но ни в одном из них мне не предложили даже 70% той суммы, которую я просил. К несчастью по описанной выше причине у меня не было особого выбора. Жить на эти деньги в Киеве на съемном жилье довольно сложное занятие. Денег хватает ровно от зарплаты до зарплаты. Нет возможности не то чтобы отдохнуть, но даже толком обновить гардероб хотя бы одному члену семьи.</div>
<div style="text-align: justify;">
С другой стороны иностранные работодатели платят значительно больше местных. И при этом предлагают, можно сказать, шикарный, по сравнению с отсутствием такового у местных, соцпакет. Это и страховка, и не только для сотрудника а еще и для членов семьи, и спортзал, и, казалось бы такая, никому не нужная вещь, как халявные печеньки чай и кофе в офисе. Выходит, иностранные компании больше заинтересованы в благах для своих сотрудников, нежели "родные" украинские компании, которые жаждут выжать из тебя все, и при этом, как можно меньше дать. При всем при этом требования, предъявляемые этими самыми иностранными компаниями при устройстве на работу ничуть не выше тех, что хотят местные. Единственное требование сверх обычных это английский. При этом мне, человеку никогда на практике не говорившему по английски удалось пройти несколько интервью. Я говорю это не для того чтобы показать вот, мол какой, я, а для того чтобы показать что это вполне реально. Не бойтесь, идите на интервью. Да, отбор немного жестче нежели в обычной "местной" компании. Заключается он в нескольких интервью вместо одного. Но итог того стоит. Вот такая вот, загогулина.</div>
<div style="text-align: justify;">
Теперь, собственно, к теме заметки. Работаю я нынче в компании <a href="http://www.epam.com/">EPAM</a>, и надеюсь это не закончится так же быстро как и мое сотрудничество с другими компаниями. Занимаюсь поддержкой большого количества Windows серверов. Большого - это значит больше 10 тысяч. И вот тут я хочу сделать важный акцент. Если в предыдущих местах своей трудовой деятельности их общее количество едва доходило до сотни и почти каждый из них можно было знать, что называется, в лицо, то тут все совсем иначе. Отношения админа и севера меняются в корне. Теперь это не железки, которые стоят за стеной в стойке. Теперь это абсолютно безликий список в текстовом файле. И вот тут, кроме тех знаний о том как работает ОС, как она делает те или иные вещи и почему она это делает становится необходимым еще и другой набор знаний. Как управлять все этой кучей систем. Причем не каждой в отдельности - это ужасно долго и не эффективно. Вопрос в том, как сделать те или иные действия быстро, и сразу на большом числе систем. В этот момент все эти серверы превращаются просто в имена. Простые, казалось бы, задачи по борьбе с отсутствием места на системном диске превращаются в адов геморрой когда, такая проблема вдруг всплывает на сотнях серверов одновременно. Очень интересный опыт, стоит отметить. Вообще такие большие структуры требуют, во многом, не стандартного подхода как к архитектуре системы в целом, так и к управлению такой большой и распределенной средой.</div>
<div style="text-align: justify;">
В общем, данный пост практически ни о чем. Просто хочется надеяться что все будет хорошо и что я смогу продолжать таки писать свои технические заметки в дальнейшем.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Спасибо за внимание.</div>Anonymoushttp://www.blogger.com/profile/16318288257576755859noreply@blogger.com3tag:blogger.com,1999:blog-8696641495697834011.post-74482831131052732122012-05-01T11:00:00.001+03:002012-05-01T11:00:08.215+03:00И снова здравствуйте!И снова здравствуйте!<br />
<br />
Ну, прежде всего рекомендую это <a href="http://igorivanov.blogspot.com/">http://igorivanov.blogspot.com/</a> всем. Просто потому что, простите, в жопу политику! Задрало! Даешь технократической общество!Anonymoushttp://www.blogger.com/profile/16318288257576755859noreply@blogger.com0tag:blogger.com,1999:blog-8696641495697834011.post-85186859042704097042012-01-12T10:04:00.001+02:002012-01-12T11:29:09.859+02:00Новая файловая система Windows<p align="justify">Последнее время стало модно писать в блогах о том, чего еще нет и чего не знаешь. Ну, собственно, не буду исключением, но, вместе с тем, не хочу расписывать того, чего не видел. Посему просто дам ссылку на описание догадок о функционале будущей, вероятно, файловой системы Protogon. <a href="http://www.osronline.com/article.cfm?article=598">Вот тут собственно</a>. В целом, для себя я отметил пару интересных фишек, каких как <a href="http://ru.wikipedia.org/wiki/%D0%94%D0%B5%D0%B4%D1%83%D0%BF%D0%BB%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85">дедупликация данных</a> и оффлоадинг.</p> Anonymoushttp://www.blogger.com/profile/16318288257576755859noreply@blogger.com0tag:blogger.com,1999:blog-8696641495697834011.post-86914319339075694822011-12-26T13:43:00.001+02:002011-12-26T13:43:20.857+02:00DirectAccess и UAGРекомендую, для того чтобы начать понимать как это работает. <script src="http://technet.microsoft.com/nl-nl/videoembed/direct-access-with-uag-under-the-hood" type="text/javascript"></script> Anonymoushttp://www.blogger.com/profile/16318288257576755859noreply@blogger.com0tag:blogger.com,1999:blog-8696641495697834011.post-91220123876378040062011-12-15T22:14:00.001+02:002011-12-15T22:14:35.172+02:00Опубликованы записи Teched Russia<p>Прошу прощения у моих уважаемых читателей за перепост. Меня вообще кто-то читает? Ауу, откликнитесь, если тут кто-то есть :). А вокруг – тишина. Ну да ладно, может кто-то придет еще. В общем, вот <a href="http://www.microsoft.com/ru-ru/events/teched/Catalog/">тут</a> опубликованы записи конференции. Всем смотреть.</p> Anonymoushttp://www.blogger.com/profile/16318288257576755859noreply@blogger.com2tag:blogger.com,1999:blog-8696641495697834011.post-14537790941505484982011-12-06T23:09:00.001+02:002011-12-06T23:20:51.735+02:00Особенности параметра–FilterСегодня в почту пришло письмо от многоуважаемого коллеги. К слову, как хорошо, когда задают вопросы. Это позволяет столкнуться с задачами и проблемами, с которыми раньше не сталкивался. Так вот: <br />
<blockquote>
<div align="justify">
<em>Андрей, добрый день! У меня возник ещё один вопрос, т.к. я столкнулся с некорректной, на мой взгляд ,работой ключевого командлета Get-ADUser Задача состояла в том, чтоб выбрать членов указанной группы, для этого я написал простую, на мой взгляд, конструкцию:</em> </div>
<pre class="brush: ps;">Get-ADUser –Properties * -Filter ‘memberof –like “*abc*”’ | ft name </pre>
<em>На выходе получаю пустой список Когда я немножко так сказать усложнил путь:</em> <br />
<pre class="brush: ps;">Get-ADUser –Properties * -Filter * | where {$_.memberof –like “*abc*”} | ft name</pre>
<br />
<div align="justify">
<em>То всё сработало чудесно.. Отсюда вопрос – почему так, и можно ли вообще доверять опции -filter данного командлета? Конечно, я могу пользоваться и вторым вариантом, однако это вызывает определённые неудобства связанные с работой в удаленных сессиях, т.к. объем выборки очень большой, и сессия обрывается..</em> </div>
</blockquote>
<br />
<div align="justify">
И, мой ответ.<br />
Здравствуйте!<br />
Что тут стоит сказать. Прежде всего вот <a href="http://technet.microsoft.com/en-us/library/hh531527%28WS.10%29.aspx">http://technet.microsoft.com/en-us/library/hh531527(WS.10).aspx</a>. Обратите внимание на 11 пример. По сути получается примерно следующее. Атрибут memberof, это не совсем обычный атрибут. Это бэклинк (back-link) - вычисляемое значение. Мало того, согласно его описанию вот тут <a href="http://msdn.microsoft.com/en-us/library/ms677943.aspx">http://msdn.microsoft.com/en-us/library/ms677943.aspx</a>, он может хранить не все группы, членом которых является пользователь, а только самую нижнюю в иерархии. Например, если пользователь является членом группы А и Б, а Б в свою очередь входит в С то группы С в списке не будет. По-этому с этим нужно работать совсем иначе. Для него требуется совсем другой синтаксис LDAP запроса, с указанием matching rule OID, который, при обработке запроса LDAP сервером вызовет рекурсивный обход всех вложенных объектов начиная от потомка в сторону предков. <br />
Как-то так:<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhK8nqKRN6cNyRPpwXAU-1-c19aqrPBtu8JgxAMhmIGdKIaLruumJBNUoAH3evCToT5zlGAsUPEyEQLOgxMLYisKmtTFf0aTj39qVLp9EmRv-MryTniomfoamyyR3i20c3D92Xx4BcbEyQ/s1600-h/filter1%25255B1%25255D.png"><img alt="filter1" height="100" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvmrmQ7IzDQLYY6PWlzBj9xzOOvI_Qh3d_0DCJizLQ3Sa5L7qUbybZop59cBbftDIIVOLk3BXaafCVWzUnDLyZU-V-CuJ0johJ1uEfAJLArpO2xjLzcP8PGrqnIIvC8ZyENr3K2oyI3Oc/?imgmax=800" style="display: inline;" title="filter1" width="640" /></a><br />
Указывая параметр filter, Вы задаете LDAP фильтр, который отрабатывает на сервере и возвращает уже отфильтрованный результат. А вот второй запрос</div>
<pre class="brush: ps;">Get-ADUser –Properties * -Filter * | where {$_.memberof –like “*abc*”} | ft name</pre>
работает немного иначе. Обратите внимание на вывод get-member. В нем атрибут memberof уже является обычной строкой. Поэтому этот oneliner работает без проблем, но количество объектов, которое он возвращает может быть очень большим.<br />
<div align="justify">
Посему мне кажется, что значительно проще в этом плане использовать комадлет <a href="http://technet.microsoft.com/en-us/library/ee617193.aspx">get-adgroupmember</a>:<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCjGqaTrug7aXTjo4nFe1zw7e4HrMKYnHmx_e_aQYN3QJ_xE0PuKenWf5xFav4SXq6W1rLqX2KtDe3tWnS7pSfBwr4o000xrAMbjLYxeIXfbrw155_5ziJ7zA-vxPmCD-bG0TkEQVhLxg/s1600-h/filter2%25255B1%25255D.png"><img alt="filter2" height="142" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1cZwCA4yC9rhqLwkL-zNQV43o_f2PXunF0DAMZc4pUFV9-G3uN18nK0l8CR94VhFXqKHzKrn7Qn3pYP06RpVn7iTPQEGJYH_A7rt4kpUWs8ir91q9hga6A5RDpY336C7sSjinofIZ-D4/?imgmax=800" style="display: inline;" title="filter2" width="528" /></a></div>
<br />
Итого. Доверять опции -filter можно и нужно. Просто данный конкретный случай - особенность.<br />
В общем, пишите, задавайте вопросы! Разберемся!Anonymoushttp://www.blogger.com/profile/16318288257576755859noreply@blogger.com0tag:blogger.com,1999:blog-8696641495697834011.post-76946788270338081712011-12-04T21:43:00.001+02:002011-12-04T21:43:04.068+02:00Аццкий посыл<p align="justify">Собсно короткое сообщение, если кто еще не знал. В следующей версии Windows Server по-умолчанию не будет гуя (GUI). В принципе. Мало того, рекомендуемая инсталляция – без него. Гуй оставляют для “обратной совместимости”. Вот такая вот, загогулина.</p> Anonymoushttp://www.blogger.com/profile/16318288257576755859noreply@blogger.com2tag:blogger.com,1999:blog-8696641495697834011.post-86813296647063965312011-11-22T22:33:00.001+02:002011-11-23T18:29:04.177+02:00Сколько проживет SSD<div align="justify">
Немного провокационный заголовок, не так ли? На самом деле я не собираюсь тут приводить процедуру расчета времени жизни SSD. Хочу написать о другом. Сегодня коллега задал вопрос: “Есть ли счетчик, который помог бы определить, сколько данных записано на диск. И вообще, как определить количество данных, записанных на диск?”. Собственно тут хотел бы привести свое видение ответа, так сказать.</div>
<div align="justify">
Как оказалось – нет в perfmon такого счетчика. Ну, нет и все тут. Вероятно, есть на то какие-то причины. Но интересующие данные, судя по всему, получить таки можно. На ответ наткнулся совсем случайно. Для того чтобы получить нужные цифры можно воспользоваться утилитой <a href="http://technet.microsoft.com/en-us/library/cc753059%28WS.10%29.aspx">fsutil</a>. А конкретно, командой, например <b>fsutil fsinfo statistics g:</b> Утилита возвращает кучу всего, и, в частности значение <a href="http://msdn.microsoft.com/en-us/library/windows/desktop/aa364054%28v=vs.85%29.aspx">UserFileWriteBytes</a>, которое, похоже, и показывает нужную информацию. Стоит отметить, что эти данные, видимо, сбрасываются при перезагрузке. Ну и в качестве тренировки написал скрипт, который парсит все это счастье и возвращает хэш-таблицу с нужными данными:</div>
<pre class="brush: ps;">function Get-DiskStats ($diskLetter){
if (Test-Path $diskLetter) {
(fsutil fsinfo statistics $diskLetter) | `
where {$_.length -ne 0} | `
%{$_.replace(" ","")} | `
% {$_ -match "(?<name>\w+):(?<value>[0-9]{1,})"; $matches} | `
% {$ret = @{}} {$ret["$($_.name)"]=$_.value}
return $ret}
else {Write-Error "There is no disk $diskLetter"; return $null}
}
Get-DiskStats g:</pre>
<br />
Подозреваю правда, что информацию можно получить так же при помощи <a href="http://msdn.microsoft.com/en-us/library/windows/desktop/bb968803%28v=vs.85%29.aspx">ETW</a>. Вот только как – не углублялся пока.
PS.
Некоторые изменения к плану. Если вы хотите собрать данные с работающего сервера за некоторый промежуток времени - вы можете поступить следующим образом.<br />
1. Получить статистику на начальный момент времени:
<br />
<pre class="brush: ps;">Get-DiskStats c: | Export-Clixml c:\Files\disk.xml
</pre>
Этим самым вы сохраните начальные данные в файл xml.<br />
2. На конечный момент можно поступить следующим образом:
<br />
<pre class="brush: ps;">$old = Import-Clixml c:\Files\disk.xml
$new = Get-DiskStats c:
$old.Keys | ? {$old[$_] -ne $new[$_]} | % {$obj = New-Object -TypeName psobject;
$obj | Add-Member -MemberType NoteProperty -Name name -Value $_;
$obj | Add-Member -MemberType NoteProperty -Name oldValue -Value $old[$_];
$obj | Add-Member -MemberType NoteProperty -Name newValue -Value $new[$_];
$obj} `
| sort name | ft -AutoSize
</pre>
Что вернет вам таблицу со сравнениями старых и новых значений. Вот, примерно такую:
<pre>
name oldValue newValue
---- -------- --------
BitmapReadBytes 12632064 12673024
BitmapReads 534 544
BitmapWriteBytes 134942720 143458304
BitmapWrites 28034 29936
LogFileWriteBytes 1601335296 1709424640
LogFileWrites 214884 230697
</pre>Anonymoushttp://www.blogger.com/profile/16318288257576755859noreply@blogger.com1tag:blogger.com,1999:blog-8696641495697834011.post-5839736327356947242011-10-19T23:05:00.001+03:002011-10-19T23:05:37.032+03:00Домены в Windows Server 8<p>Всем привет. Сегодня вот, решил попробовать. Установил. Поднимаю домен. Вроде все как всегда, ну почти. Почти тот же сервер менеджер, вроде тот же dcpromo но в конце процедуры dcpromo вот такое:</p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDT5elm5CKhTJJs5rwJH_SZ6zLwS5uBmw5NLEn4gqVHtMrrEhUAT-z6r5b1pbaddmSH2O4P-JUKP2PUZ21IP_Ev6nckUaQxJTrlnbwJ_8prTJ77BjQOgBoISp6hG_oLdFAje4taMb4CdA/s1600-h/installADDS%25255B3%25255D.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="installADDS" border="0" alt="installADDS" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjM1NEZNdld2nbdOhxFHIr6OL5JXV7zP5Fe4Xeg0ilVj-TAtT5XtHrUUSJcu4D8eOCM72M1Pzs-x0-m8_NzYDMQbi9CFTBLW9c08BW6YJdL_7jdBJG2WaPLWlZN_cIUJjLJhA2ce0gP9vA/?imgmax=800" width="643" height="484"></a></p> <p> </p> <p>Мало то что <strong>Import-module ADDSDeployment</strong>, так еще и <strong>Install-ADDSForest</strong>! Куда мир катится – ужас просто!<br>Вот такая вот загогулина <img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Улыбка" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfRPKX5zNOqfquAWY8u7a6G5sHkvj3v20ZP6Cqbn_v05xetjkInhZ2hLO13FrdVyFdh2O7jEjBVTDj4pcVH-joQyObjM3rqhbFnECvWJG8HTSc52Ux5g7jTJxr8dQI3DVP14BoheufEDM/?imgmax=800"></p> Anonymoushttp://www.blogger.com/profile/16318288257576755859noreply@blogger.com0tag:blogger.com,1999:blog-8696641495697834011.post-50755227449105689982011-10-09T00:40:00.001+03:002011-10-09T02:22:01.494+03:00WSRM и память с точки зрения админа<div align="justify">
Всем доброе время суток. Недавно столкнулся с <a href="http://technet.microsoft.com/en-us/library/cc732553.aspx">windows system resource manager</a>. Не то чтобы я раньше с ним не сталкивался. Просто как-то не задумывался над этим. Это средство позволяет, кроме всего прочего, задать некий набор ограничений процессам в операционной системе. В частности, возможно ограничение рабочего набора (working set), определенного процесса. В рамках этой заметки я хотел бы разобраться с тем, как это происходит. Не скрою, что в самый первый момент, когда я увидел, как срабатывает этот механизм – я удивился. Меня сразу затерзали сомнения. </div>
<div align="justify">
Но все же, начнем. С небольшого теста. Используем программу <a href="http://download.sysinternals.com/Files/Testlimit.zip">testlimit</a>, которую почему-то не распространяют с <a href="http://technet.microsoft.com/en-us/sysinternals/bb842062">sysinternals suite</a>. Это, кстати, тоже удивило меня, когда я попытался ее найти. Сначала настроим WSRM для нашего теста. Для этого нужно создать фильтр для приложения, в нашем случае это testlimit. А за тем – resource allocation policy, в которой мы и определим ограничения для процесса. Делаем вот таким образом:</div>
<div align="justify">
1. Создаем новый фильтр</div>
<div align="justify">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgl9DDdjz9NuD2b-EoyCWOOpBPspnyTHhpjHXZx4KUa2cL7DOPjnGfy9uK2DaA7GiG7kk8hR8tzuNjsph5X9lMIhMr0i7TyGVTATsocf3yoG6cUIgXj-mjkdBAcb659xmB45RPooO8Y2Bc/s1600-h/mem1%25255B4%25255D.png"><img alt="mem1" border="0" height="238" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFCtivk4LfjjYDUvSeZR10dDK_SwOp6kpNAwj-qCrdQnI38qJ9qrorsVsl4WzH5rj80BLzoBEEDi_bDuGcpTgVbdTWLKRlhsduKS81MEn6N_jDIZe0TH-pXhfPcR6F7t8fED8XHXZNYCA/?imgmax=800" style="background-image: none; border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="mem1" width="244" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNmvhpmdEt4ZvC-BZP_GUNZivDVRGnC7GC9C9iCexNLPhT-g1KQKTZLUehI3fkAcoYABp8pvPawYoaEbkzcKhU23AQfXwnbrqBuBV-OmSXSxVirP3vHteq3CgliB_AyUV_C40-F90lUHc/s1600-h/mem2%25255B4%25255D.png"><img alt="mem2" border="0" height="219" src="http://lh3.ggpht.com/-HoiyywElTJE/TpDNSSphsGI/AAAAAAAAAjE/qQ62bZB4q84/mem2_thumb%25255B2%25255D.png?imgmax=800" style="background-image: none; border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="mem2" width="244" /></a></div>
<div align="justify">
2. Задаем новую политику выделения ресурсов, в которой задаем размер рабочего набора в 300МБ</div>
<div align="justify">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8ACVuAiqB08I5bl1YxOIHNMc_DQe90W1B0c7ToZH5MrwCTBbkZowIaGFrMPGKq8ar-AHlXIMMuxhpkmcj1FLjV7cPyOgurzzEe5iysGkG0POUPVL-W3E__h20cdMqH1zZCGpj__HrJ5c/s1600-h/mem3%25255B4%25255D.png"><img alt="mem3" border="0" height="186" src="http://lh4.ggpht.com/-7PBNppU9PF8/TpDNTWguCfI/AAAAAAAAAjM/FZRNnIuiWdA/mem3_thumb%25255B2%25255D.png?imgmax=800" style="background-image: none; border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="mem3" width="326" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjp7AE1xIg-lva7_Twiq7uJ6Qb64CNlg64p58_wJmoqdG0_me44cXJV82x_QUQE56wGcXtheG2pF4dahMLVenUUi5s_akq2ZX46k45Yv9jupGhCmTy0kMiREItGElX_YCukxYmo_omBUVs/s1600-h/mem4%25255B5%25255D.png"><img alt="mem4" border="0" height="244" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5EXhQ_POqpOVt2s7_kkuejGrvpC9zevEVUqNEGuX3DYszohvYOuFhpzcjmMAaduG1roSepARn71r0QAKWXIttBEdfIYu9mjUTMiBIg0kXIwJNUD7J4PCQ58_Hole6S7tiygO0dccf2vs/?imgmax=800" style="background-image: none; border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="mem4" width="205" /></a></div>
<div align="justify">
3. Активируем новую политику</div>
<div align="justify">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjY9VLZc683kKcw9gRacTok4N3clpwYhbq72Sb6lqXMeP4mMejfSPqRdZuGTrLbTgnEdoxeeWQxw_YJbq8lvLdsTzYNYY7i6ZJRBf6sibkLgs3yx6FaqMl8aVmUIDZ_4c7W0Y1Uwt-Icno/s1600-h/mem5%25255B5%25255D.png"><img alt="mem5" border="0" height="121" src="http://lh6.ggpht.com/-Q7LjWoAsT3M/TpDNVBgh69I/AAAAAAAAAjc/prQryHiQnRc/mem5_thumb%25255B3%25255D.png?imgmax=800" style="background-image: none; border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="mem5" width="244" /></a></div>
<div align="justify">
<br /></div>
<div align="justify">
Теперь запускаем приложение</div>
<div align="justify">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqrp5O1yu_xGVKX0xN4bO0ftCO3hlAEXOTUUV4hZgr977DOCJsG4yQY-pWiwwez3jwxEeYnjV2u5wX5rWtcHPzSkD1QePJe1-czC4RdzA7X8-_Wj-GVq7asaXkEw41YdX6Zj6G5BHanoY/s1600-h/mem6%25255B3%25255D.png"><img alt="mem6" border="0" height="213" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMEz7a0KUGaMeioEWhG15vDvAfJyElmAS_n2JJkNCru_9I8mxRwPYDtlQ5XKAoKkhceIjSFMlyTkNtL4e7vrVlAVcENWP8eB45833UM3Ib6IeBRVUPn0x34BDqaU4SXfq2FTJ7oVvHNsI/?imgmax=800" style="background-image: none; border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="mem6" width="644" /></a></div>
<div align="justify">
<br /></div>
<div align="justify">
Прежде всего следующая командная строка: <strong><em>Testlimit.exe -d 10 -c 100</em></strong>, выделяет 1 Гб памяти, и коснется ее, заставив систему предоставить реальную оперативную память приложению. Подробности об этом процессе смотрите <a href="http://www.techdays.ru/videos/3081.html">вот тут</a>. Как видно из скриншота – это и происходит. Размер рабочего набора – 1Гб. Но это длится всего несколько секунд. Затем происходит “странное”:</div>
<div align="justify">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNxCADmJaOeRt16A0SBxG1fRRhfIHvRocRtYOvu3yzRhejI9Ks4THMnL0qgwaowLdzVZ-KWMX7tYcFcZy82lScZJMAcBSewR2zpwdudZJkUJRxzqz8K5IdsT-FOg3tnuareyfj-ltsAok/s1600-h/mem7%25255B3%25255D.png"><img alt="mem7" border="0" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtqUfPceT2Ldpmfs0C8ztxYE3wbKZlIhbkXxUjiPsuiVMmHRRZ_ry2ZOVITqccd6AkbI0MJbhmx2sKyybiWEOrsnPf-3jq4ln1PIzMq34FMofApqjJCCAGskZ7fopawMQ3uH1D1-mLvqw/?imgmax=800" style="background-image: none; border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="mem7" width="644" /></a></div>
<br />
Бабах! Размер рабочего набора уменьшился до 300 МБ, заданных в настройках WSRM. Возникает вопрос – куда делать память? А что если в ней были данные? И как приложения отреагируют на такое поведение? Не станут ли они вдруг падать?<br />
Для того, чтобы ответить на эти вопросы я написал вот такой вот код. Не плюйтесь, я не разработчик а админ, посему код может быть и не красивый:<br />
<pre class="brush: cpp; collapse: true;">// memtest1.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <iostream>
#include <Windows.h>
int _tmain(int argc, _TCHAR* argv[])
{
char *a = (char*) malloc(1024*1024*1024);
for (int k = 0; k<=100; ++k) {
for (int i = 0; i<=1024*1024*1024-1; ++i){
a[i] = 'a';}
std::cout << "allocated" << k << std::endl;
Sleep (1000);
}
int g;
std::cin >> g;
return 0;
}</pre>
<br />
Данный код просто выделяет память, и активно ее использует – попросту пишет в нее. Теперь создаем новый фильтр,новую политику и запускаем приложение. После урезания рабочего набора приложение продолжает работать, как, собственно и ожидалось. Куда же оно пишет?<br />
<br />
Для выяснения этого эпизода воспользуемся приложением <a href="http://technet.microsoft.com/en-us/sysinternals/ff700229">RAMMap</a>. Запускаем его и, сразу после запуска приложения testlimit видим следующую картинку:<br />
<br />
до урезания<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHTl3G7f85ReXR0Lmu3F9nPTEbRN1RFVyXmHjnJgmOAcdQL2oDLnlHN5-O_Upc-iunIT2hDEgBXLJ-5cgKEN2-4QCX1Cz116BCOIO0MqNyRnM8dGIeXVXUkszgU-0uqzjAc_ugsOxZu70/s1600-h/mem8%25255B3%25255D.png"><img alt="mem8" border="0" height="248" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUin7Pi0xShIf4IgtrvNm2zO49K4QQ-r4Yyfb5beje6t00ZxkKKghGx7oIfMkXTiJ-hrv6blqgmgomJ_tYGLA22iy4qBBgQ06fFx-99ikMJi3eoAR1RYlQaf63WNzH7ohssfDF91uoHP8/?imgmax=800" style="background-image: none; border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="mem8" width="644" /></a><br />
<br />
после урезания<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXmoINvzOBWUDy0rHLXZoCKTjKMnrtLbRD69CCoXgIxcbXlXjzNfFN4MHo6Yu-zyTKXNT2DzZVlzX3RBsiVglKfbWkddw7wzEhWEnRSles-nct-uv36Q5qWKcvdT47fZWYf4H_r9cBNEM/s1600-h/mem9%25255B3%25255D.png"><img alt="mem9" border="0" height="172" src="http://lh4.ggpht.com/-vDpOBLc8l5E/TpDXrQSGMGI/AAAAAAAAAj8/Eie01uMSK2s/mem9_thumb%25255B1%25255D.png?imgmax=800" style="background-image: none; border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="mem9" width="644" /></a><br />
<br />
<div align="justify">
Видим список активных страниц, и его размер в 3.5 ГБ. И, собственно Private Bytes - 2.2 ГБ. Через некоторое время, когда сработает WSRM видим совсем другую картину. Размер памяти в списке активных страниц уменьшился на примерно 700МБ, а объем памяти обнуленных страниц вырос на эту цифру. Итого, память не провалилась и никуда не исчезла, система переместила страницы из списка в список, предоставив при этом возможность другим приложениям употребить эту память. Однако есть один интересный момент. Testlimit не использует память а просто выделяет ее. Что будет, если эта память будет активно использоваться? Вернемся к моему тестовому коду для этого, и посмотрим, что покажет RAMMap. А показывает он вот что:</div>
<br />
<div align="justify">
до урезания</div>
<div align="justify">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi07FZhUjcHkDg-p3pqmlPRXJgxm5QNyPpnMYim3Yp8jRlHf7I3pa4SdR3pJk-cUilnjpYfwetO4hf0QnhcyV-ryOWZI7ns2k5d1VzlNiw2JKghHpiHP8Gz13_UuOOZ6blSaFDCAn_8EQY/s1600-h/mem10%25255B3%25255D.png"><img alt="mem10" border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhot0CmytBp16vvesDjVChFyA7zv6px2A3DM3Fj-EM-uHzObXItdtgaMUXnuYCahlnY7t3BghJLxm9vY1NqZbYFt4A_vc0GDzujJeuUBUXtBNhIFObZsfW0pooBHPX5GovWpNzLQJf4Uwk/?imgmax=800" style="background-image: none; border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="mem10" width="644" /></a></div>
<br />
<div align="justify">
после урезания</div>
<div align="justify">
<a href="http://lh3.ggpht.com/-npqJ9A20_UI/TpDXtAMuhWI/AAAAAAAAAkI/dQhaQVbeRdg/s1600-h/mem11%25255B3%25255D.png"><img alt="mem11" border="0" height="246" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggY8xACbKtoK4TzDTAi5EN7BcgofmAt1e-ZBSI9cJT0w48KUhp1GxiZTVTTXQAjfWBtK-4aZdxm9dLgNFAm9uH0TJfTZQzkRfFw9_Dc5SFD9z2WKI4KGTVzVnShyEBOXQ_e4809YF2RI4/?imgmax=800" style="background-image: none; border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="mem11" width="644" /></a></div>
<br />
<div align="justify">
Картинка примерно та же. Но с некоторыми изменениями. При активном использовании памяти страницы не могут попасть в список обнуленных страниц, поскольку они используются. Таким образом система перемещает часть страниц рабочего набора в список измененных страниц. При этом при дальнейшей работе с памятью размер рабочего набора не изменяется. Тут есть один важный нюанс. Сам факт перемещения данных процесса в список модифицированных страниц говорит о том, что будет подкачка, поскольку вернуть страницы в рабочие наборы можно только освободив их и переместив в список свободных. Таким образом это урезание должно сопровождаться ростом дисковых операций, а так же увеличением счетчиков промахов памяти и подкачки, что и наблюдается:</div>
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcKGGIAS5Hm4i59_8MfNHy6IvWCi32xXvHG5fl9qm2OufMXhTQpuHdYDi-zTtGam7ivXld73wP9TcfW_vECU6OPzbdqNZML1jWnTHUxkXIMN8uEhifpDXE8bA-9Ja-reafCLW-SedqDPQ/s1600-h/mem13%25255B3%25255D.png"><img alt="mem13" border="0" height="484" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHwn9OORy9k5pu_ujLO386RSXPZhCsyyCKFWtMUNKAi9TVsNihw4i7w_v1REdVThyphenhyphenWunzyBeZMSvfcCHKgxGzcYtjOo_vjGcqxExMnxiaE2K_tn7rKRaSJc9J_8EeDfyIrp5koZVet2iw/?imgmax=800" style="background-image: none; border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="mem13" width="209" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijCrqZiBuaEpVeyAJnpzLtryaNBItAj_0yuw4dsmdAxuAFTC6CeLfASTZYlZQyksHi3BAgKPjJEjXKSEns9WWTlJagpT7z3dq3BCUYO_ihBhTqa3CxSYHCVbcLHYG2cn618lNa-g17F0A/s1600-h/mem14%25255B3%25255D.png"><img alt="mem14" border="0" height="484" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9qJE07_kvQ7qEFQ3jvYXvtStYh4wLhbXL6Ur0ujyEZO4e5eg-lwwPi8z-LD_Y7AFzZB9QVJ0L2QNJpKOB5NP6bZZRKMzTfQyI0PwYzfQfyDqNoIIwTJwBPfNeqz0xt61fKqHVIGMhxgk/?imgmax=800" style="background-image: none; border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="mem14" width="217" /></a><br />
<br />
<div align="justify">
Сразу после урезания начинается подкачка. Таким образом, использование этого функционала, это не только возможность ограничить различные приложения размером рабочего набора, что может быть полезно, к примеру на терминальных серверах. Это еще и своего рода размен памяти на дисковые операции. Посему – есть смысл тщательно подумать над применением этого инструмента.</div>
Anonymoushttp://www.blogger.com/profile/16318288257576755859noreply@blogger.com0tag:blogger.com,1999:blog-8696641495697834011.post-34393989624174095742011-10-04T16:01:00.001+03:002011-10-04T16:06:15.311+03:00Получения списка выданных dhcp адресов скриптом<p align="justify">Всем привет. Недавно в форуме technet <a href="http://social.technet.microsoft.com/Forums/ru-RU/ws2008r2ru/thread/d834eb22-0101-489f-938e-c7357e02d584">появился вопрос</a>: как получить список выданных адресов и когда они были выданы. После короткого погружения в тему выяснилось, что используя стандартный API узнать это нельзя, поскольку сервер, похоже, таких данных не хранит, ну или не предоставляет. Коллега, в обсуждении, предложил парсить журнал сервера с тем чтобы достать из журнала нужные данные. Однако этот вариант требовал написания достаточно сложной для меня схемы, с отслеживание состояний и изменений, происходящих с адресом. С другой стороны, можно было использовать <a href="http://technet.microsoft.com/ru-ru/library/cc778925(WS.10).aspx">netsh</a> для получения данных о выданных адресах, например вот так: <b>netsh dhcp server scope 172.20.0.0 show clients 1</b>. Однако этот способ не возвращает данных о дате выдачи, только о времени окончания. В итоге мы пришли к мнению, что проще использовать скрипт, и рассчитать нужную дату. Но при подробном изучении и этот способ оказался несколько более сложным, чем мне казалось на первый взгляд. Проблема в том, что я очень не люблю, наверное потому что не умею, парсить строки. Это вызывает у меня баттхёрт и головокружение. В итоге я воспользовался <a href="http://poshcode.org/1477">вот этим скриптом</a> и слегка его изменил исключительно в целях пруф оф концепт:</p><pre class="brush: ps; collapse: true;">$DHCP_EnumSubnetClients = @' <br /> [DllImport("dhcpsapi.dll", SetLastError = true, CharSet = CharSet.Auto)]<br />public static extern uint DhcpEnumSubnetClients(<br /> string ServerIpAddress,<br /> uint SubnetAddress,<br /> ref uint ResumeHandle,<br /> uint PreferredMaximum,<br /> out IntPtr ClientInfo,<br /> ref uint ElementsRead,<br /> ref uint ElementsTotal);<br />'@<br /><br />$DHCP_Structs = @'<br />namespace mystruct {<br />using System;<br />using System.Runtime.InteropServices;<br /><br /> public struct CUSTOM_CLIENT_INFO<br /> {<br /> public string ClientName;<br /> public string IpAddress;<br /> public string MacAddress;<br /> }<br /><br /> [StructLayout(LayoutKind.Sequential)]<br /> public struct DHCP_CLIENT_INFO_ARRAY<br /> {<br /> public uint NumElements;<br /> public IntPtr Clients;<br /> }<br /><br /> [StructLayout(LayoutKind.Sequential)]<br /> public struct DHCP_CLIENT_UID<br /> {<br /> public uint DataLength;<br /> public IntPtr Data;<br /> }<br /><br /> [StructLayout(LayoutKind.Sequential)]<br /> public struct DATE_TIME<br /> {<br /> public uint dwLowDateTime;<br /> public uint dwHighDateTime;<br /> <br /> public DateTime Convert()<br /> {<br /> if (dwHighDateTime== 0 && dwLowDateTime == 0)<br /> {<br /> return DateTime.MinValue;<br /> }<br /> if (dwHighDateTime == int.MaxValue && dwLowDateTime == UInt32.MaxValue)<br /> {<br /> return DateTime.MaxValue;<br /> }<br /> return DateTime.FromFileTime((((long) dwHighDateTime) << 32) | (UInt32) dwLowDateTime);<br /> }<br /> }<br /> <br /> [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]<br /> public struct DHCP_HOST_INFO<br /> {<br /> public uint IpAddress;<br /> public string NetBiosName;<br /> public string HostName;<br /> }<br /><br /> [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]<br /> public struct DHCP_CLIENT_INFO<br /> {<br /> public uint ClientIpAddress;<br /> public uint SubnetMask;<br /> public DHCP_CLIENT_UID ClientHardwareAddress;<br /> [MarshalAs(UnmanagedType.LPWStr)]<br /> public string ClientName;<br /> [MarshalAs(UnmanagedType.LPWStr)]<br /> public string ClientComment;<br /> public DATE_TIME ClientLeaseExpires; <br /> public DHCP_HOST_INFO OwnerHost; <br /> }<br />}<br />'@<br /><br />$resumeHandle = 0<br />$clientInfo = 0<br />$ElementsRead = 0<br />$ElementsTotal = 0<br /><br />Add-Type $DHCP_Structs <br />Add-Type -MemberDefinition $DHCP_EnumSubnetClients -Name GetDHCPInfo -Namespace Win32DHCP<br /><br />$DHCPServerIP = "172.20.10.10" # change this to match your DHCP server IP<br /><br />[void][Win32DHCP.GetDHCPInfo]::DhcpEnumSubnetClients($DHCPServerIP,0,[ref]$resumeHandle,0,[ref]$clientInfo,[ref]$ElementsRead,[ref]$ElementsTotal)<br /><br />$clients = [system.runtime.interopservices.marshal]::PtrToStructure($clientInfo,[mystruct.DHCP_CLIENT_INFO_ARRAY])<br /><br />[int]$size = $clients.NumElements<br />[int]$current = $clients.Clients<br />$ptr_array = new-object system.intptr[]($size)<br />$current = new-object system.intptr($current)<br /><br />for ($i=0;$i -lt $size;$i++) <br /> {<br /> $ptr_array[$i] = [system.runtime.interopservices.marshal]::ReadIntPtr($current)<br /> $current = $current + [system.runtime.interopservices.marshal]::SizeOf([system.IntPtr])<br /> }<br /><br />function uIntToIP {<br />param ($intIP)<br />$objIP = new-object system.net.ipaddress($intIP)<br />$arrIP = $objIP.IPAddressToString.split(".")<br />return $arrIP[3] + "." + $arrIP[2] + "." + $arrIP[1] + "." + $arrIP[0]<br />}<br /><br />[array]$clients_array = new-object mystruct.CUSTOM_CLIENT_INFO<br /><br />for ($i=0;$i -lt $size;$i++) <br /> {<br /> $objDHCPInfo = New-Object psobject<br /> $current_element = [system.runtime.interopservices.marshal]::PtrToStructure($ptr_array[$i],[mystruct.DHCP_CLIENT_INFO])<br /> add-member -inputobject $objDHCPInfo -memberType noteproperty -name ClientIP -value $(uIntToIP $current_element.ClientIpAddress)<br /> add-member -inputobject $objDHCPInfo -memberType noteproperty -name ClientName -value $current_element.ClientName<br /> add-member -inputobject $objDHCPInfo -memberType noteproperty -name OwnerIP -value $(uIntToIP $current_element.Ownerhost.IpAddress)<br /> add-member -inputobject $objDHCPInfo -memberType noteproperty -name OwnerName -value $current_element.Ownerhost.NetBiosName<br /> add-member -inputobject $objDHCPInfo -memberType noteproperty -name SubnetMask -value $(uIntToIP $current_element.SubnetMask)<br /> add-member -inputobject $objDHCPInfo -memberType noteproperty -name LeaseExpires -value $current_element.ClientLeaseExpires.Convert()<br /> if (($current_element.ClientLeaseExpires.Convert()).Year -ne 9999) <br /> {add-member -inputobject $objDHCPInfo -memberType noteproperty -name LeaseObtained -value ($current_element.ClientLeaseExpires.Convert()).AddDays(-8)}<br /> <br /> $mac = [System.String]::Format(<br /> "{0:x2}-{1:x2}-{2:x2}-{3:x2}-{4:x2}-{5:x2}",<br /> [system.runtime.interopservices.marshal]::ReadByte($current_element.ClientHardwareAddress.Data),<br /> [system.runtime.interopservices.marshal]::ReadByte($current_element.ClientHardwareAddress.Data, 1),<br /> [system.runtime.interopservices.marshal]::ReadByte($current_element.ClientHardwareAddress.Data, 2),<br /> [system.runtime.interopservices.marshal]::ReadByte($current_element.ClientHardwareAddress.Data, 3),<br /> [system.runtime.interopservices.marshal]::ReadByte($current_element.ClientHardwareAddress.Data, 4),<br /> [system.runtime.interopservices.marshal]::ReadByte($current_element.ClientHardwareAddress.Data, 5)<br /> )<br /><br />add-member -inputobject $objDHCPInfo -memberType noteproperty -name MacAddress -value $mac<br />$objDHCPInfo<br />}</pre><br /><p>По сути я вставил только одну строку:</p><pre class="brush: ps; collapse: true;">if (($current_element.ClientLeaseExpires.Convert()).Year -ne 9999) <br />{add-member -inputobject $objDHCPInfo -memberType noteproperty -name LeaseObtained -value ($current_element.ClientLeaseExpires.Convert()).AddDays(-8)}<br /></pre>Которая добавляет дополнительное поле в выводимый объект. Значение этого поля равно значению параметра LeaseExpires - 8 дней. Можно поправить как себе задумается. В принципе можно докрутить все это счастье и узнавать на сколько был выдан адрес из параметров скоупа. Но это уже совсем другая история. <br /> Anonymoushttp://www.blogger.com/profile/16318288257576755859noreply@blogger.com0tag:blogger.com,1999:blog-8696641495697834011.post-44355929084317227472011-10-03T22:30:00.001+03:002011-10-06T12:19:28.673+03:00Конфигурирование single sign-on для RD Services<div style="text-align: justify;">
Итак. Задача, сделать так, чтобы при запуске клиентского подключения система не спрашивала имя и пароль. Для этого нужно создать GPO, с соответствующими настройками. Основная настройка: </div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdUvKaSrOptHQ9hu673s7dk1yiAtxDueDTdERohLIdSd0o3FBvRPJ9TAvNpzkzTGX-uBYRd2X2sLrrDA6l9F2-lm8QogQojcLPUGKiPLAKaFWrj5mWcWDNImuIzXXutZMR9QezPA6pHrA/s1600/rdpSSO.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="215" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdUvKaSrOptHQ9hu673s7dk1yiAtxDueDTdERohLIdSd0o3FBvRPJ9TAvNpzkzTGX-uBYRd2X2sLrrDA6l9F2-lm8QogQojcLPUGKiPLAKaFWrj5mWcWDNImuIzXXutZMR9QezPA6pHrA/s320/rdpSSO.png" width="320" /></a></div>
<br />
<div style="text-align: justify;">
Computer configuration\Policies\Administrative Templates\System\Credentials Delegation\Allow Delegating Default Credentials</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Самый главный вопрос, что писать в настройках политики. Если внимательно изучить пояснение, то структура записи должна быть ясна. По сути вы должны указать <a href="http://www.osp.ru/win2000/2009/09/10708361/">SPN</a> того сервера, которому вы собираетесь <a href="http://www.osp.ru/win2000/2009/09/10708361/">делегировать</a> свои Credentials. Узнать этот самый SPN, можно командой setspn:</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIfgyDP098d8J8NTDWH6y9pAuDy-Q0IfiB14-xSGNQEeWxWZymJMZu30YDR1degs76PcBQ6VRAHW-UBMOdFKOyy6SA5clXZ0EzlK7qZRFGaDMezFz2JibcsjTGjUcgMnrac-V0nGTT7QY/s1600/rdpSSO2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIfgyDP098d8J8NTDWH6y9pAuDy-Q0IfiB14-xSGNQEeWxWZymJMZu30YDR1degs76PcBQ6VRAHW-UBMOdFKOyy6SA5clXZ0EzlK7qZRFGaDMezFz2JibcsjTGjUcgMnrac-V0nGTT7QY/s1600/rdpSSO2.png" /></a></div>
<br />
<div style="text-align: justify;">
где, nyc-ts - это имя сервера терминалов, SPN которого необходимо узнать. Помеченные желтым записи - это SPN связанные со службой терминального сервера, то есть как раз те, которые нас интересуют. При этом нужно иметь ввиду, что, для корректной работы, при указании имени сервера в командной строке mstsc или в его окне, нужно писать имя так, как оно написано после слэша в строке SPN.</div>
<div style="text-align: justify;">
Как водится после создания готовую политику нужно назначить на соответствующие OU, для ускорения применения выполнить <span style="font-family: "Courier New", Courier, monospace;">gpupdate /force. <span style="font-family: inherit;"><span style="font-family: inherit;">Кроме того в этой же политике можно сконфигурировать и дополнительные параметры для подключающихся клиентов</span>.</span></span></div>
Anonymoushttp://www.blogger.com/profile/16318288257576755859noreply@blogger.com0tag:blogger.com,1999:blog-8696641495697834011.post-60977333524812271342011-10-03T14:17:00.003+03:002011-10-03T14:18:07.186+03:00Powershell 3<div style="text-align: justify;">
Свершилось! Группа разработки Powershell в своем блоге опубликовала, правда довольно давно, <a href="http://blogs.msdn.com/b/powershell/archive/2011/09/20/windows-management-framework-3-0-community-technology-preview-ctp-1-available-for-download.aspx">заметку</a> о новом powershell 3 и о его возможностях. В принципе, все движется к тому, что управление новыми клинтскими и серверными ОС будет основано на нем. Особенно учитывая тот факт, что в сессии, посвященной введению в Windows Server 8, было сказано что основным типом инсталляции нового сервера будет Server Core. В общем, учим.</div>
Anonymoushttp://www.blogger.com/profile/16318288257576755859noreply@blogger.com0tag:blogger.com,1999:blog-8696641495697834011.post-4295590393303380042011-10-03T13:44:00.000+03:002011-10-03T14:12:31.876+03:00Problem Steps Recorder<div style="text-align: justify;">
Всем привет. Я думаю, все должны знать об этом функционале, и скорой всего, многие знают. Но если кто не знает, то вот, <a href="http://technet.microsoft.com/en-us/windows/dd320286">простая и доступная презентация.</a> Идея утилиты в том, что можно записать свои действия, приводящие к проблеме и предоставит их в службу поддержки или на форум, когда просишь помощи. Мне кажется, это было бы значительно более быстро и удобно, чем описывать проблему вручную.</div>
Anonymoushttp://www.blogger.com/profile/16318288257576755859noreply@blogger.com0tag:blogger.com,1999:blog-8696641495697834011.post-10541285419659563912011-09-29T21:11:00.001+03:002011-09-29T21:16:47.258+03:00Всем кто не зналСобственно <a href="http://channel9.msdn.com/Events/BUILD/BUILD2011">вот</a>. Доклады конференции BUILD.<br />
<br />
<a href="http://channel9.msdn.com/Events/BUILD/BUILD2011/SAC-973F">Windows Server 8</a><br />
<a href="http://channel9.msdn.com/Events/BUILD/BUILD2011/SAC-417T">Windows Server performance improvements and optimizations</a><br />
<a href="http://channel9.msdn.com/Events/BUILD/BUILD2011/SAC-437T">A deep dive into Hyper-V networking</a><br />
<br />
Ну и как всегда <a href="http://channel9.msdn.com/Events/BUILD/BUILD2011?sort=sequential&direction=desc&term=&s=Mark%2BRussinovich">Руссинович</a>, ну куда ж без него.Anonymoushttp://www.blogger.com/profile/16318288257576755859noreply@blogger.com0