четверг, 19 июля 2012 г.

Статьи по решению проблем.

imageКак-то я наткнулся на статью, которая была, на самом деле, всего лишь списком ссылок на другие статьи в Windows IT Pro. Я даже не помню, где я нашел этот список (скорее всего в том же WinITPro), но помню, что наборчик оказался полезным для меня.

В моей свалке информации список называется “troubleshooting learning path” и это похоже на правду. Не расползаясь мыслию по древу, ниже приведен список. Для доступа к статьям нужно всего лишь выполнить поиск по InstantDoc ID на главной странице журнала

Have fun:

 

Name InstantDoc ID
Administrators’ Intro to Debugging 101818
Conquer Desktop Heap Problems 101701
Disk2vhd: The Windows Troubleshooter’s New Best Friend 102980
Examining Xperf 102054
Find the Binary File for Any WMI Class 102615
Further Adventures in Debugging 102867
Get a Handle on Windows Performance Analysis 101162
Got High-CPU Usage Problems? ProcDump ‘Em! 102479
Reap the Power of MPS_Reports Data 101468
Resolve Memory Leaks Faster 99933
Resolve WMI Problems Quickly with WMIDiag 100845
Say ‘Whoa!’ to Runaway Processes 100212
Simplify Process Troubleshooting with DebugDiag 100577
Troubleshooting the Infamous Event ID 333 Errors 101059
Under the Covers with Xperf 102263

понедельник, 16 июля 2012 г.

Лучшие практики для… chkdsk

imageЧем больше я работаю, тем больше мне становится ясным тот простой факт, что даже самая повседневная и простая на первый взгляд вещь, технология или утилита могут скрывать в себе небывалый простор для изучения. Ну, что-то вроде простейшего кекса, который прост пока не попробовать его испечь =)

То же самое оказалось возможным сказать про, например, chkdsk. Как думаете, нужно ли для этой команды знать что-либо помимо параметров командной строки? Ладно, если Вы не из Почемучек, то вряд ли. Или, возможно, мы не подумали о том, какое воздействие на наше окружение может оказать это “ничтожество”. К примеру, возьмем стандартную ситуацию: файлсервер рос и развивался вместе с организацией, пока, наконец, не пришла пора обзаводиться своими SLA и прочими атрибутами сервисного подхода Winking smile Вы, как старый, опытный камикадзе разумный человек, согласовали это самое SLA, учтя все, что можно и нельзя:

- время восстановления из резервных копий каждого набора информации и приоритет этого восстановления (без чего-то компания не может обойтись и пары часов, я что-то может обождать)

- время, необходимое для замены испорченного оборудования

- ну и все такое.

Но одним прекрасным днем том, на котором располагается около 500 миллионов мелких но нужных файлов помечается системой, как “грязный” и уходит после перезагрузки в глубокий chkdsk… Ваш SLA включал возможность этих 99 (!!!) часов простоя? Мой – нет =(

К счасть. и ситуация придуманная (для меня), так что у меня еще есть время на все эти “мелочи”, а теперь, после прочтения документа с названием “NTFS Chkdsk Best Practices and Performance”, еще есть и полезные мысли =)

Кстати, в Server 2012 будут некие крупные изменения во всем этом. Читаем и готовимся.

четверг, 5 июля 2012 г.

Собственный troubleshooting pack

image

Внимание: мой новый RSS-Feed: http://feed.feedcat.net/815939

Измените свою подписку, пожалуйста. 

Как я однажды написал, можно не только сказать пользователю, какой именно ему нужно запустить troubleshooting pack, но и создать собственный. Ну и не прошло пары лет, как я созрел разобраться, как же это делается и рассказать. Я был уверен, что это близко к, как говорят наши иностранные коллеги, “rocket science”, однако я сильно заблуждался: это легко. Мало того, это достаточно интересно, поскольку для его создания нужно применить практически все из арсенала гиков:

1) Использовать GUI

2) Написать скрипты

3) Запустить то, что получилось и увидеть автоматический результат!

Так что, давайте приступим.

К сожалению, эта штука проста, но не настолько, чтобы ее можно было создать в notepad. Ну, может и есть такой метод, но он будет всяко сложнее, чем то, что я сейчас расскажу. Перво-наперво, необходимо скачать Windows 7 SDK. Я, честно говоря, не знаю, какой именно компонент ставит то, что нам нужно, потому поставил все целиком. Если кому-то критично, что ставится, всегда можно выяснить. Ну а после инсталляции, в меню найдется Troubleshooting Pack Designer:

image

Теперь остается определиться, какую проблему нам нужно решить с помощью нашего будущего чудо-инструмента. В моем случае я собираюсь автоматически решать мелкую, но доасдную проблему. Мой ноутбук Dell не всегда корректно определяет скорость сети, после того, как я помещаю его в док-станцию. Обычно помогает выключение и включение сетевого интерфейса, что, в общем-то, не сложно, но всегда же хочется потратить день на то, чтобы потом решить за пять минут задачку, не правда ли? (и да, я знаю, что просто скрипт из двух строчек был бы даже лучше, но… См. вышеWinking smile). Так что запускаем утилиту:

image

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

image

image

(обратите внимание на поле “Privacy URL”: оно обязательно к заполнению) Дальше все предельно просто. Добавляем новую корневую причину сбоя (Root cause) (а можно и несколько добавить). В моем случае это “A Network is detected 10Mbps instead of 100”:

image

и жмем “Design Troubleshooter”. Выполняем ряд настроек: Troubleshooter – включать или не включать привилегированный режим, и взаимодейстовать ли с пользователем. В моём случае ни то, ни другое не нужно:

image

Потом конфигурируем resolver, и у меня для него все так же просто:

image

Ну и разумеется, мы желаем, чтобы после исправления проблемы наш инструмент сам проверил, а правда ли проблема устранена:

image

Ну и наконец, нужно создать скрипты для этих задач

Troubleshooter:

# TroubleshooterScript - This script checks for the presence of a root cause

# Key Cmdlets:

# -- update-diagrootcause flags the status of a root cause and can be used to pass parameters

# -- get-diaginput invokes an interactions and returns the response

# -- write-diagprogress displays a progress string to the user

 

$RootCauseID = "NetIs10"

 

# Your detection Logic Here

$speed = (Get-WmiObject -Class Win32_NetworkAdapter | Where-Object { $_.Speed -ne $null -and $_.MACAddress `

-ne $null -and $_.name -like "*82567lm*"}).speed

if ($speed -ne 100000000)

      {

      $RootCauseDetected = $true

      }

      #Replace "$true" with the result of your detection logic

 

#The following line notifies Windows Troubleshooting Platform of the status of this root cause

update-diagrootcause -id $RootCauseId -detected $RootCauseDetected

Чрезвычайно примитивно, всего лишь проверяет, равна ли скорость интерфейса 100Mbps.

Resolver:

# Resolver Script - This script fixes the root cause. It only runs if the Troubleshooter detects the root cause.

# Key cmdlets:

# -- get-diaginput invokes an interactions and returns the response

# -- write-diagprogress displays a progress string to the user

 

# Your logic to fix the root cause here

$network = Get-WMIObject Win32_NetworkAdapter | where {$_.name -like "*82567lm*"}

$network.disable()

Start-Sleep 4

$network.enable()

Этот даже еще проще: просто “перезагружает” интерфейс.

Ну и теперь компилим (попутно решаем вопрос о том, каким сертификатом подписывать: тестовым самоподписанным или нормальным), пакуем и используем.

image

По крайней мере для меня это было забавным приключением с полезным выхлопом. Надеюсь и всем остальным тоже понравится.

понедельник, 2 июля 2012 г.

Обзор блога

imageОбзоров блога не было весьма давно, увы. Аж с июня 2011. Впрочем, даже с учетом того, что я только-только вернулся к нормальному режиму, и обзирать не особо было что. Итак, приступим.

  • LCDS: Создавайте свои собственные онлайн курсы

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

  • Секреты %systemroot%\System32: defrag

    очередная статья серии. Продолжение будет, я надеюсь.

  • “Нюхаем” сеть без сниффера… & “Нюхаем” сеть без сниффера… Часть 2

    Отличный способ собрать информацию о сети с компьютера клиента, не обучая того никаким лишним для него трюкам.

  • Новости и халява

    Чуть-чуть давно устаревших новостей и маленькая россыпь халявы

  • Докладываю…

    Я был докладчиком на первом в России TechEd. Получилось средненько, буду работать над собой.

  • Внимание: очередные проблемы с отменой перехода на зимнее время в России и других странах.

    Ну эта эпопея давно закончилась, но тогда мы знатно поработали Winking smile

  • TechEd – всё

    Мини-отчет о TechEd.

  • Где моя почта, чувак?! (meme edition)

    Как научить отучить пользователя читать почту в папке удаленных писем.

  • Lync and fortunes

    Один из самых полезных моих скриптов. Smile Нет, правда, он у меня запускается каждый день =)

  • #RuTeched: результаты

    Собственно, над чем мне нужно поработать после TechEd.

  • Даже если ты параноик, это не значит, что за тобой не следят.

    Я решил съехать с Гугла. Процесс пока идет и вполне успешно.

  • MS SIR #12

    Немного о Conflicker и прочих чудесах.

  • И снова MVP! + чуть-чуть халявы в качестве извинения.

    Запоздало, но отчитался и снова все пообещал.

  • Trustworthy Computing. SDL освоили, что дальше? & Trustworthy computing: SDL освоили, что дальше. Часть 2: некорпоративненькая.

    Мне нравится, что произошло с продуктами MS после введения инициативы Trustworthy Computing, но мне не нравится, что на этом они и остановились.

  • Легенды и мифы ИТ #2: PKI edition.

    Продолжение серии о легендах и мифах в IT. На сей раз о том, что планировать безопасность, не включая голову – небезопасно Winking smile 

  • Looking for a GP object?

    Еще немного о поиске GPO. На этот раз именно объекты в существующем окружении мы и будем искать.

  • Want to learn about cryptography? I know where.

    Времени стало субъективно больше, потому я записался на курс криптографии и Вам рекомендую Winking smile