oldi

Модернизация приложений

Часть 12. Платформа Windows Troubleshooting Platform

Алексей Федоров

Встроенные модули

Работа основных системных модулей

Использование подсистемы Aero

Воспроизведение и запись звука

Управление системой

Использование устройства печати

Производительность

Аппаратные компоненты и устройства

Управление питанием

 

В предыдущей статье данного цикла мы познакомились с подсистемой Event Tracing For Windows. Настоящая и последующая статьи этого цикла посвящены платформе Windows Troubleshooting Platform, которая впервые появилась в операционной системе Windows 7.

Платформа Windows Troubleshooting Platform представляет собой средство для выполнения специальных модулей (Troubleshooting Packages), которые создаются на языке PowerShell и призваны решать различные проблемы, касающиеся конфигурации операционной системы, ее отдельных компонентов, устройств, сервисов и приложений. Эти модули могут вызываться как пользователями, так и приложениями при возникновении определенных проблем и проводят пользователей через серию шагов для их решения: обнаружение проблемы, устранение проблемы, проверка отсутствия проблемы. Например, если Windows Internet Explorer не может открыть веб­сайт, пользователь нажимает кнопку Diagnose Connection Problems для запуска модуля Windows Network Diagnostics, реализованного на платформе Windows Troubleshooting Platform.

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

К основным характеристикам платформы Windows Troubleshooting Platform относятся возможность ее автоматизации, эффективность, повторяемость операций, стандартизация и безопасность. Расширяемость платформы означает, что в состав Windows Software Development Kit (SDK) входят средства, позволяющие разработчикам создавать новые модули для этой платформы, что дает возможность использовать ее в качестве унифицированного механизма для настройки необходимого окружения для приложений сторонних компаний (ISV).

Далее мы рассмотрим стандартные модули, включенные в состав операционной системы Windows 7, принципы их работы, архитектуру Windows Troubleshooting Platform, средства создания дополнительных модулей и приведем ряд примеров создания собственных модулей для платформы Windows Troubleshooting Platform.

Встроенные модули

В состав операционной системы Windows 7 входит ряд модулей, которые соответствуют десяти наиболее частым категориям обращений в службу технической поддержки Microsoft, включая эффективное управление питанием, совместимость приложений, сетевые настройки и настройки звука. В табл. 1 перечислены модули платформы Windows Troubleshooting Platform, имеющиеся в составе Windows 7.

Модули платформы Windows Troubleshooting Platform доступны через панель управления: Control PanelAll Control Panel ItemsTroubleshooting. Модули сгруппированы по категориям: Programs, Hardware and Sound, Network and Internet, Appearance and Personalization и System and Security.

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

 

Рисунок

Модули платформы Windows Troubleshooting Platform в панели управления

В нижней части панели расположена опция, включение которой позволяет получать обновления модулей от специального сервиса — Windows Online Troubleshooting Service.

Модули — это специальные приложения, запускаемые под управлением платформы Windows Troubleshooting Platform. Модули, поставляемые в составе операционной системы Windows 7, располагаются в каталоге %windir%\Diagnostics. Каталог %windir%\Diagnostics\Index содержит XML-манифесты модулей, а каталог %windir%\Diagnostics\System — сами модули, находящиеся в соответствующих подкаталогах.

 

Рисунок

Модули платформы Windows Troubleshooting Platform на диске

Внутри каждого подкаталога есть файл DiagPackage.diagpkg, представляющий собой соответствующий модуль, а также динамическую библиотеку DiagPackage.dll, каталог с интерфейсными ресурсами и ряд исходных файлов на PowerShell, которые иллюстрируют работу данного модуля. Двойной щелчок мышью по файлу DiagPackage.diagpkg приводит к запуску соответствующего модуля — это то же самое, что активация модуля непосредственно из панели управления.

Как мы отметили выше, каждый модуль проводит пользователей через серию шагов для их решения: обнаружение проблемы (Detection), устранение проблемы (Resolution), проверка отсутствия проблемы (Verification). Далее мы рассмотрим работу основных системных модулей и предпринимаемые ими шаги по решению тех или иных проблем.

Работа основных системных модулей

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

  • командлеты PowerShell;
  • Windows Management Infrastructure (WMI);
  • записи в реестре;
  • события Windows (Windows Events);
  • COM-объекты и .NET-провайдеры;
  • утилиты Windows;
  • программные интерфейсы Windows.

Ниже мы приведем несколько примеров использования этих источников данных для решения ряда наиболее часто возникающих проблем. Проблемы сгруппированы по категориям — в каждой категории показаны основные причины их возникновения. Информация разделена на три группы: определение проблемы, исправление проблемы и проверка отсутствия проблемы. В большинстве случаев проверка отсутствия проблемы представляет собой те же действия, что и определение проблемы, поскольку используется одна и та же логика. Тем не менее в ряде случаев такой подход невозможен. Например, при устранении проблем, связанных с воспроизведением звука, при обнаружении низкого уровня звука пользователь может увеличить этот уровень, но программным образом нельзя проверить, была ли после этого устранена проблема. Поэтому в ряде случаев решение проблемы возлагается на пользователей. Например, если основной проблемой с воспроизведением видео является видеокарта с отсутствующими характеристиками, то решением проблемы становится либо установка обновленного драйвера, либо замена видеокарты — и ту и другую операцию невозможно выполнить автоматически.

Использование подсистемы Aero

В данной группе проблемы, связанные с отображением анимации и эффектов, устраняются с помощью подсистемы Aero (табл. 2).

Воспроизведение и запись звука

В данной группе устраняются проблемы, связанные с воспроизведением звука.

Управление системой

В этой группе удаляются неиспользуемые файлы и ярлыки, выполняются другие операции.

Использование устройства печати

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

Производительность

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

Аппаратные компоненты и устройства

В этой группе устраняются проблемы, связанные с использованием аппаратных компонентов и устройств.

Управление питанием

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

***

Мы рассмотрели ряд примеров работы системных модулей: использование ими различных источников данных для определения проблемы, ее исправления и проверки ее отсутствия после исправления. В следующей, завершающей статье данного цикла мы познакомимся с архитектурой платформы Windows Troubleshooting Platform и модулей, а затем научимся создавать собственные модули.

 

В начало В начало

КомпьютерПресс 10'2012