Windows PowerShell: Диагностические пакеты

OSzone.net » Microsoft » PowerShell » Windows PowerShell: Диагностические пакеты
Автор: Дон Джонс
Иcточник: Журнал TechNet
Опубликована: 22.04.2011

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

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

По получается неувязочка… графический интерфейс и мастеры в статье, посвященной Windows PowerShell? Не волнуйтесь: я не сошел с ума, по крайней мере, не больше, чем обычно.

Как и многие другие функции Windows Server 2008 R2 и Windows 7 эти диагностические пакеты размещаются в некотором смысле «поверх» Windows PowerShell. Хотя они и доступны через графический интерфейс, их можно также использовать в командной строке Windows PowerShell. Этот способ открывает неведомые ранее способы автоматизации устранения неполадок, с которыми можете столкнуться вы, ваши пользователи и даже ваши серверы.

Обратите внимание на то, что он доступен только в Windows 7 и Windows Server 2008 R2. Скорее всего, он будет доступен и в более поздних версиях Windows.

Итак, приступим

Начнем с импорта в оболочку нового модуля TroubleshootingPack:

Import-Module TroubleshootingPack

Чтобы узнать команды, добавленные этим модулем, выполните команду:

Get-Command –module troubleshootingpack

Появились два новых командлета: Get-TroubleshootingPack и Invoke-TroubleshootingPack.

Хорошо, все вроде бы не так сложно. Но при запуске Get-TroubleshootingPack сразу же предлагается ввести путь. Непонятно, что имеется в виду. Лучше всего ознакомиться со справкой, особенно с примерами.

Выполнив команду Help Get-TroubleshootingPack –example, узнаем, что командлет ожидает путь к диагностическому пакету на диске. По умолчанию эти пакеты находятся в подпапках папки C:\\Windows\\Diagnostics: Во вложенной папке \index subfolder содержится список всех доступных пакетов. В папке \system находятся все установленные пакеты.

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

Get-TroubleshootingPack c:\windows\diagnostics\system\power | fl *

Эта команда вернет список свойств пакета, включая его версию, издателя и другое. Она действительно делает не очень много, но четко сообщает, какие версии Windows поддерживаются, в том числе серверные и клиентские версии, а также предоставляет сведения об архитектуре — x86, Amd64 и IA64 . Чтобы запустить диагностический пакет, можно передать его по конвейеру непосредственно в Invoke-TroubleshootingPack:

Get-TroubleshootingPack c:\windows\diagnostics\system\power |
Invoke-TroubleshootingPack

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

Автоматизация различных операций

Если вы хотите прогнать в диагностическом пакете определенный набор проверок, не указывая вручную все команды меню, задайте файл ответов в формате XML используя параметр –answer командлета Invoke-TroubleshootingPack. С помощью параметра –unattend укажите, что пакет должен выполняться в автоматическом режиме.

Шаблон файла ответов можно создать с помощью параметра –answer:

Get-TroubleshootingPack c:\windows\diagnostics\system\power –answer power-answers.xml

Указанный диагностический пакет запустится и предложит ответить на все обычные вопросы, но при этом никаких действий предприниматься не будет, — просто ответы будут сохранены в XML-файле ответов, который затем можно использовать в качестве входных данных командлета Invoke-TroubleshootingPack.

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

Особенности удаленного взаимодействия

Вам надо получить доступ и устранить неполадки на удаленных системах? В Windows PowerShell версии 2 замечательные возможности удаленного взаимодействия. Активизировать их на клиентских компьютерах так же легко, как и на серверах. Все прекрасно работает, если есть связь по сети.Достаточно выполнить команду, похожую на эту:

Enter-PSSession –computername WIN7G4T53R
Get-TroubleshootingPack c:\windows\diagnostics\system\aero |
  Invoke-TroubleshootingPack

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

Автоматизированное удаленное устранение неполадок из командной строки

Новые диагностические пакеты не только доступны из Windows PowerShell, но обладают многими новыми возможностями. С их помощью можно устранять неполадки интерфейса Аэро, звуковых и других устройств, Internet Explorer, сетей, производительности, устройств питания, принтеров, поиска, служб Windows Media и Windows Update — и это далеко не самый полный список.

Вместо того чтобы инструктировать своих пользователей о выполнении операций по телефону («Щелкните Далее…, еще раз… нет, не надо щелкать дважды… нет, теперь щелкните Назад… нет… нет, просто перезагрузите свой компьютер!»), вы можете выполнять устранение неполадок непосредственно на компьютерах пользователей . Вам не потребуются ресурсоемкие способы, такие как удаленный рабочий стол, удаленная помощь и тому подобные.

Материалы по теме


Ссылка: http://www.oszone.net/15068/Windows-PowerShell