Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекции / Windows PowerShell-теория.docx
Скачиваний:
0
Добавлен:
11.02.2026
Размер:
679.21 Кб
Скачать

Доступ к wmi

Как мы знаем, Windows Management Instrumentation (WMI) — это реализация компанией Microsoft стандарта Common Information Model (CMI). В большинстве случаев WMI применяется ИT-специалистами для получения информации об аппаратном и программном обеспечении, установленном на данном компьютере. Как мы увидим в следующем примере, использование Windows PowerShell существенно облегчает доступ к информации, хранимой в WMI (рис. 17).

Рис. 17

В первой строке мы применяем команду get-wmiobject для получения информации о файле, используемом для свопинга памяти на диск и сохранения этой информации в переменной $pfu:

PS C:\> $pfu = get-wmiobject – class ‘win32_pageFileUsage’

Далее мы применяем команду get-member для определения свойств, доступных для класса win32_pageFileUsage:

PS C:\> $pfu | get-member –membertype property | where_object { $_.name – nomatch ‘_’ }

Обычно для нахождения информации по определенному классу можно использовать команду get-member без указания параметров, но в нашем примере нас интересуют только доступные свойства и только те из них, которые не содержат в имени символ подчеркивания. У внимательного читателя может возникнуть вопрос: каким образом мы узнали о существовании класса win32_pageFileUsage? Ведь известно, что в WMI поддерживается более тысячи классов, помимо этого ряд приложений добавляет свои классы. Вы можете применить команду: PS C:\> get-wmiobject –list

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

PS C:\> $pfu.caption; $pfu.currentusage

Вторая часть нашего примера посвящена другому классу —

win32_DiskDrive, в котором хранится информация о дисках, установленных в системе. Этот класс — пример WMI-класса, содержащего более одного объекта. В нашем примере мы определяем значение свойства caption первого диска, установленного в системе:

PS C:\> $dd[0].caption

Использование xml-файлов

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

Для примера возьмем конфигурационный файл Windows Calendar, который выглядит так (рис. 18):

Рис. 18 и выполним над ним манипуляции, представленные на рис. 19.

Рис. 19

В первой строке мы загружаем содержимое всего XML-файла в переменную, используя команду get-content:

PS C:\> [xml] $doc = get-content ‘.\settings.xml’

Обратим внимание на применение типа данных [xml]: если не указать использование данных этого типа, в переменную будет загружен просто текст.

Во второй строке мы выбираем определенную ветвь XML-файла — для этого применяется метод selectnodes объекта, хранящего XML-данные и XPath-описание адреса ветви:

PS C:\> $settings = $doc.selectnode(‘CalendarSettings/X-Root/VCalendar’)

После этого мы используем команду foreach-object для получения значения свойства Name для всех элементов в данной ветви.