Об оболочке Windows PowerShell — КиберПедия 

Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьше­ния длины пробега и улучшения маневрирования ВС при...

Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...

Об оболочке Windows PowerShell

2022-10-28 28
Об оболочке Windows PowerShell 0.00 из 5.00 0 оценок
Заказать работу

Аннотация

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

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

 


Содержание

Авторские права на руководство «Введение в Windows PowerShell™».................... 8

Введение.................................................................................................................. 9

Целевая аудитория................................................................................................ 9

Об оболочке Windows PowerShell............................................................................. 9

Понятность............................................................................................................ 9

Согласованность................................................................................................. 10

Интерактивная среда и среда исполнения сценариев.......................................... 10

Объектно-ориентированная среда....................................................................... 11

Несложный переход к исполнению сценариев..................................................... 11

Установка и работа с оболочкой Windows PowerShell............................................ 11

Системные требования........................................................................................ 11

Установка Windows PowerShell............................................................................. 12

Запуск Windows PowerShell.................................................................................. 12

Основы Windows PowerShell................................................................................... 13

Основные сведения о важных концепциях Windows PowerShell............................... 14

Объектно-ориентированные команды............................................................... 14

Семейство команд может расширяться............................................................ 14

Как Windows PowerShell обрабатывает входные данные и дисплей консоли.... 15

Windows PowerShell использует некоторые черты синтаксиса C#..................... 16

Изучение имен команд оболочки Windows PowerShell............................................ 16

Сокращение количества обязательных для запоминания команд при помощи шаблона глагол-существительное...................................................................................................................... 18

Командлеты используют стандартные параметры............................................ 19

Параметр справки (?)..................................................................................... 20

Общие параметры......................................................................................... 20

Рекомендуемые к использованию параметры................................................ 20

Сводные сведения о командах................................................................................ 21

Отображение имеющихся типов команд........................................................... 22

Получение подробных справочных сведений......................................................... 23

Использование имен знакомых команд................................................................... 24

Интерпретация стандартных псевдонимов........................................................ 25

Создание новых псевдонимов.......................................................................... 26

Применение клавиши TAB для автоматического завершения имен.......................... 27

Конвейер объектов................................................................................................. 28

Основные сведения о конвейере Windows PowerShell............................................. 29

Просмотр структуры объекта (командлет Get-Member).......................................... 31

Применение команд форматирования для изменения конечного представления данных 33

Применение командлета Format-Wide для формирования вывода с одним элементом 34

Настройка отображения командлета Format-Wide при помощи столбца....... 34

Использование командлета Format-List для получения представления списком 34

Получение подробных сведений при помощи подстановочных знаков в командлете Format-List  35

Использование командлета Format-Table для получения вывода в виде таблицы 35

Улучшение вывода командлета Format-Table (параметр AutoSize)................. 36

Перенос на следующую строку вывода командлета Format-Table в столбцах (параметр Wrap)    37

Организация табличного вывода (параметр -GroupBy).................................. 38

Перенаправление данных с помощью командлетов Out-*....................................... 39

Разбиение вывода консоли на страницы (командлет Out-Host)...................... 40

Отбрасывание ненужного вывода (командлет Out-Null).................................. 41

Печать данных (командлет Out-Printer)........................................................... 41

Сохранение данных (командлет Out-File)....................................................... 42

Навигация в Windows PowerShell............................................................................. 43

Управление текущим местоположением в Windows Powershell............................... 44

Определение текущего местоположения (командлет Get-Location).................. 44

Задание текущего местоположения (командлет Set-Location)........................... 44

Сохранение и возврат на последние местоположения (командлеты Push-Location и Pop-Location)  46

Управление дисками Windows PowerShell............................................................... 48

Добавление новых дисков Windows PowerShell (командлет New-PSDrive)........ 50

Удаление дисков Windows PowerShell (командлет Remove-PSDrive)................. 52

Добавление и удаление дисков извне Windows PowerShell............................... 52

Работа с файлами, папками и разделами реестра.................................................. 52

Перечисление файлов, папок и разделов реестра (командлет Get-ChildItem)... 53

Вывод всех вложенных элементов (параметр -Recurse)................................ 53

Фильтрация элементов по имени (параметр -Name)....................................... 54

Принудительный показ скрытых элементов (параметр -Force)....................... 54

Поиск имен элементов с использование подстановочных знаков.................. 54

Исключение элементов (параметр -Exclude).................................................. 55

Объединение параметров командлета Get-ChildItem...................................... 56

Непосредственная работа с элементами................................................................ 57

Создание новых элементов (командлет New-Item)............................................ 57

Почему параметры реестра не являются значениями....................................... 58

Переименование существующих элементов (командлет Rename-Item)............. 59

Перемещение элементов (командлет Move-Item).............................................. 60

Копирование элементов (командлет Copy-Item)................................................ 60

Удаление элементов (командлет Remove-Item)................................................. 61

Выполнение действий над элементами (командлет Invoke-Item)........................ 61

Работа с объектами................................................................................................ 62

Получение объектов WMI (командлет Get-WmiObject)............................................. 63

Получение объектов WMI (командлет Get-WmiObject).......................................... 63

Вывод списка классов WMI............................................................................... 63

Вывод сведений о классе WMI.......................................................................... 65

Вывод свойств, не имеющих значений по умолчанию, с помощью командлетов Format    66

Создание объектов.NET и COM (командлет New-Object)........................................ 67

Использование командлета New-Object для доступа к журналу событий......... 67

Использование конструкторов с командлетом New-Object............................ 67

Сохранение объектов в переменных.............................................................. 68

Доступ к удаленному журналу событий с помощью командлета New-Object. 69

Очистка журнала событий методами объектов.............................................. 69

Создание СОМ-объектов с помощью командлета New-Object.......................... 70

Создание ярлыков на рабочий стол с помощью метода WScript.Shell............. 71

Запуск приложения Internet Explorer из Windows PowerShell............................. 73

Получение предупреждений о вызываемых.NET объектах COM...................... 75

Использование статических классов и методов...................................................... 75

Получение сведений о среде с помощью класса System.Environment.............. 76

Ссылки на статический класс System.Environment......................................... 76

Отображение статических свойств класса System.Environment..................... 77

Вычислительные действия с помощью класса System.Math............................. 78

Удаление объектов из конвейера (командлет Where-Object)................................... 80

Выполнение простых проверок с командлетом Where-Object........................... 80

Фильтрация данных, основанная на свойствах объектов.................................. 81

Повторение действия для нескольких объектов (командлет ForEach-Object)......... 83

Выделение частей объектов (командлет Select-Object)........................................... 85

Сортировка объектов............................................................................................. 86

Использование переменных для хранения объектов.............................................. 87

Создание переменной....................................................................................... 87

Управление переменными................................................................................. 88

Использование переменных Cmd.exe............................................................... 89

Использование оболочки Windows PowerShell для администрирования................. 89

Управление локальными процессами...................................................................... 90

Перечисление процессов (командлет Get-Process)........................................... 90

Остановка процессов (командлет Stop-Process).............................................. 92

Остановка всех других сеансов Windows PowerShell........................................ 93

Управление локальными службами......................................................................... 93

Перечисление служб........................................................................................ 94

Остановка, запуск, приостановка и перезагрузка служб................................... 94

Получение сведений о компьютерах....................................................................... 96

Вывод настроек рабочего стола...................................................................... 96

Вывод сведений о BIOS.................................................................................... 97

Вывод сведений о процессоре......................................................................... 97

Вывод производителя и модели компьютера................................................... 97

Вывод установленных исправлений.................................................................. 98

Вывод сведений о версии операционной среды............................................... 99

Вывод локальных пользователей и владельца................................................. 99

Получение сведений о доступном месте на диске.......................................... 100

Получение сведений о сеансах подключения.................................................. 100

Получение сведений о пользователе, подключенном к компьютеру............... 100

Получение сведений о местном времени компьютера.................................... 101

Отображение состояния службы.................................................................... 101

Установка программного обеспечения.................................................................. 102

Получение списка приложений, установленных при помощи Windows Installer 102

Получение списка приложений, поддерживающих удаление.......................... 104

Установка приложений.................................................................................... 106

Удаление приложений..................................................................................... 106

Обновление приложений, установленных при помощи Windows Installer........ 107

Изменение состояния компьютера: блокировка, завершение сеанса, завершение работы и перезагрузка 107

Блокировка компьютера................................................................................. 107

Завершение текущего сеанса.......................................................................... 108

Завершение работы и перезагрузка компьютера............................................ 108

Работа с принтерами............................................................................................ 109

Получение списка подключений к принтерам.................................................. 109

Добавление сетевого принтера....................................................................... 109

Установка принтера по умолчанию................................................................. 109

Удаление подключения к принтеру................................................................. 110

Выполнение сетевых задач................................................................................... 110

Получение списка IP-адресов компьютера...................................................... 110

Вывод данных IP-конфигурации...................................................................... 111

Проверка связи с компьютерами.................................................................... 112

Извлечение свойств сетевого адаптера.......................................................... 113

Назначение домена DMS сетевому адаптеру.................................................. 113

Выполнение задач настройки DHCP................................................................ 114

Определение адаптеров, поддерживающих DHCP...................................... 114

Извлечение свойств DHCP........................................................................... 114

Включение поддержки DHCP на каждом адаптере....................................... 114

Отмена и обновление аренды адреса DHCP для отдельных адаптеров...... 115

Отмена и обновление аренды адреса DHCP для всех адаптеров................ 115

Создание общего сетевого ресурса............................................................... 116

Удаление общего сетевого ресурса............................................................... 116

Подключение сетевого диска, доступного в Windows..................................... 117

Работа с файлами и папками................................................................................ 117

Получение списка файлов и папок, содержащихся в папке............................ 117

Копирование файлов и папок.......................................................................... 118

Создание файлов и папок............................................................................... 119

Удаление всех файлов и папок, содержащихся в папке.................................. 119

Отображение локальной папки в виде диска, доступного в Windows.............. 120

Чтение текстового файла в массив................................................................. 120

Работа с разделами реестра................................................................................ 121

Получение всех подразделов раздела реестра.............................................. 121

Копирование разделов................................................................................... 122

Создание разделов......................................................................................... 123

Удаление разделов......................................................................................... 123

Удаление всех подразделов определенного раздела реестра....................... 123

Работа с записями реестра................................................................................... 124

Получение списка записей реестра................................................................. 124

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

Создание новых записей в реестре................................................................. 127

Переименование записей в реестре................................................................ 128

Удаление записей в реестре........................................................................... 128

Приложение 1. Псевдонимы, обеспечивающие совместимость............................. 129

Приложение 2. Создание пользовательского ярлыка для PowerShell................... 130

 


Авторские права на руководство «Введение в Windows PowerShell™»

Этот документ предоставлен только в информационных целях, и корпорация Майкрософт не дает в нем никаких гарантий, явных или подразумеваемых. Сведения в этом документе, включая URL-адреса и другие ссылки на веб-узлы в Интернете, могут быть изменены без предупреждения. Все риски, связанные с использованием или результатами использования этого документа, несет пользователь. Если не указано иное, встречающиеся в этом документе названия компаний, организаций и продуктов, имена доменов, адреса электронной почты, эмблемы, имена людей, названия населенных пунктов и события являются вымышленными. Любая связь с реальными названиями компаний, организаций и продуктов, именами доменов, адресами электронной почты, эмблемами, именами людей, названиями населенных пунктов и событиями случайна. Ответственность за соблюдение всех применимых законов об авторском праве лежит на пользователе. Без ущерба для прав по законам об авторских правах, никакая часть этого документа не может быть воспроизведена, сохранена, включена в информационно-поисковую систему или передана в какой-либо форме любыми средствами (электронными, механическими, фотокопировальными, записывающими или прочими) в любых целях без специального письменного разрешения корпорации Майкрософт.

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

© Корпорация Майкрософт (Microsoft Corp.), 2006. Все права защищены.

Microsoft, MS-DOS, Windows, Windows NT, Windows 2000, Windows XP и Windows Server 2003 являются охраняемыми товарными знаками корпорации Майкрософт в США и других странах.

Упоминаемые в этом документе имена действительных компаний и продуктов могут быть торговыми марками соответствующих владельцев.

Введение

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

Целевая аудитория

«Введение в Windows PowerShell» предназначено для профессионалов в области информационных технологий, программистов и опытных пользователей, не имеющих предварительной подготовки для работы с оболочкой Windows PowerShell. Хотя опыт в создании сценариев и WMI может быть полезным, его наличие не предполагается и не требуется для понимания данного документа.

Понятность

Оболочка Windows Powershell обладает несложными в понимании функциями. Например, для нахождения списка командлетов, служащих для просмотра и изменения служб Windows, введите:

get-command *-service

 

После понимания того, какой командлет выполняет задачу, можно узнать больше об этом командлете при помощи командлета Get-Help. Например, для отображения справки о командлете Get-Service, введите:

get-help get-service

 

Для полного понимания вывода этого командлета направьте конвейером его вывод в командлет Get-Member. Например, при выполнении следующей команды отображаются сведения об элементах выходных объектов командлета Get-Service.

get-service | get-member

 

Согласованность

Управление системами может быть сложной задачей, и средства, имеющие согласованный интерфейс, помогают контролировать присущую такому управлению сложность. К сожалению, ни средства командной строки, ни объекты COM, для которых могут быть написаны сценарии, не обладают такой согласованностью.

Согласованность оболочки Windows PowerShell является одним из основных ее преимуществ. Например, при изучении способов использования командлета Sort-Object эти знания могут быть применены для сортировки вывода какого-либо командлета. Нет необходимости изучать различные процедуры сортировки для каждого командлета.

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

Запуск Windows PowerShell

Для запуска оболочки Windows PowerShell из меню «Пуск» нажмите кнопку Пуск, щелкните элемент Все программы, выберите Windows PowerShell 1.0, а затем щелкните значок Windows PowerShell.

Для запуска оболочки Windows PowerShell из окна «Выполнить» нажмите кнопку Пуск, нажмите Выполнить, введите powershell и нажмите кнопку ОК.

Для запуска Windows PowerShell из окна командной строки (cmd.exe) в командной строке введите powershell. Так как оболочка Windows PowerShell выполняется в сеансе консоли, можно использовать технику выполнения оболочки в сеансе удаленного telnet или SSH. Для возврата в сеанс командной строки нажмите exit.

Основы Windows PowerShell

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

В интерфейсе командной строки (CLI), например в Windows PowerShell, для получения информации используется другой подход, так как он не предоставляет в помощь пользователя меню или графических систем. Перед использованием команд необходимо знать их имена. Хотя можно вводить сложные команды, эквивалентные функциям в среде интерфейса GUI, необходимо ознакомиться с наиболее употребительными командами и параметрами команд.

Большинство CLI не содержит структур, которые могли бы помочь пользователю освоить интерфейс. Так как CLI были первыми оболочками операционных систем, многие имена команд и параметров выбирались произвольно. Лаконичные имена команд обычно использовались для большей ясности. Хотя в большинство CLI встроены справочные системы и стандарты построения команд, эти интерфейсы обычно разрабатывались с учетом совместимости с более ранними командами, так что набор команд до сих пор оформлен по решениям, сделанным десятилетия тому назад.

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

· использование команды Get;

· использование Cmd.exe и команд ОС UNIX;

· использование внешних команд;

· использование функции автозавершения при помощи клавиши TAB;

· использование команды Get-Help.

Параметр справки (?)

При указании параметра -? в каком-либо командлете командлет не исполняется. Вместо этого Windows PowerShell отображает справку для командлета.

Общие параметры

Оболочка Windows PowerShell содержит несколько параметров, называемых общими параметрами. Так как эти параметры контролируются механизмом Windows PowerShell, при каждом их использовании командлетом их поведение будет всегда одинаковым. Общими параметрами являются параметры WhatIf, Confirm, Verbose, Debug, Warn, ErrorAction, ErrorVariable, OutVariable и OutBuffer.

Сводные сведения о командах

Командлет Windows PowerShell Get-Command извлекает имена всех имеющихся команд. При вводе команды Get-Command в командную строку Windows PowerShell отображаются данные, подобные следующим:

PS> Get-Command CommandType Name                       Definition ----------- ----                       ---------- Cmdlet     Add-Content                Add-Content [-Path] <String[... Cmdlet     Add-History                Add-History [[-InputObject]... Cmdlet     Add-Member                 Add-Member [-MemberType] <PS... ...

 

Этот вывод выглядит очень похоже на вывод справки интерфейса Cmd.exe: сводка внутренних команд в табличной форме. В показанном выше фрагменте для вывода команды Get-Command каждая команда имеет значение параметра CommandType, равное Cmdlet (командлет). Командлет является типом внутренней команды оболочки Windows PowerShell, грубо соответствующим командам dir и cd интерфейса Cmd.exe и командам, встраиваемым в оболочки ОС UNIX, например BASH.

В выводе команды Get-Command все определения заканчиваются троеточием (...), указывающим на то, что PowerShell не может отобразить все содержание в доступном пространстве. Когда оболочка Windows PowerShell отображает конечные данные, она форматирует вывод как текст и затем выстраивает его таким образом, чтобы данные точно умещались в окне консоли. Это будет рассмотрено позднее в разделе, посвященном механизмам форматирования.

Командлет Get-Command имеет параметр Syntax, позволяющий извлекать только синтаксис каждого командлета. Для отображения полного вывода введите команду Get-Command -Syntax:

PS> Get-Command -Syntax Add-Content [-Path] <String[]> [-Value] <Object[]> [-PassThru] [-Filter <String>] [-Include <String[]>] [-Exclude <String[]>] [-Force] [Credential <PSCredential>] [-Verbose] [-Debug] [-ErrorAction <ActionPreference>] [-ErrorVariable <String>] [-OutVariable <String>] [-OutBuffer <Int32>] [-WhatIf] [-Confirm] [-Encoding <FileSystemCmdletProviderEncoding>]   Add-History [[-InputObject] <PSObject[]>] [-Passthru] [-Verbose] [-Debug] [-ErrorAction <ActionPreference>] [-ErrorVariable <String>] [-OutVariable <String>][-OutBuffer <Int32>]...

 

Создание новых псевдонимов

Можно создать свои собственные псевдонимы при помощи командлета Set-Alias. Например, следующие инструкции создают стандартные псевдонимы командлетов, рассматривавшиеся в разделе «Интерпретация стандартных псевдонимов».

Set-Alias -Name gi -Value Get-Item Set-Alias -Name si -Value Set-Item Set-Alias -Name gl -Value Get-Location Set-Alias -Name sl -Value Set-Location Set-Alias -Name gcm -Value Get-Command

 

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

PS> Set-Alias -Name gi -Value Get-Item

Set-Alias: Псевдоним gi не подлежит записи, так как он является постоянным или доступен только для чтения, и запись в него не может быть выполнена.

В строке:1 знак:10

+ Set-Alias <<<< -Name gi -Value Get-Item

Конвейер объектов

 

Конвейеры ведут себя как ряд соединенных между собой сегментов трубы. Элементы, перемещающиеся по конвейеру, проходят через каждый сегмент. Для создания конвейера в оболочке Windows PowerShell команды соединяются друг с другом оператором конвейерной обработки «|», и вывод каждой команды используется в качестве ввода следующей команды.

Конвейеры являются, вероятно, наиболее ценной концепцией, используемой в интерфейсах командной строки. Используемые должным образом, конвейеры не только снижают усилия, прилагаемые при вводе сложных команд, но и облегчают отслеживание потока работы в командах. Связанной с этим полезной характеристикой конвейеров является то, что так как конвейер действует на каждый элемент отдельно, его не нужно изменять в зависимости от того, имеется ли в конвейере ноль, один или много элементов. Кроме того, каждая команда в конвейере (называемая элементом конвейера) обычно передает свой вывод следующей команде в конвейере, элемент за элементом. Благодаря этому обычно снижается потребление ресурсов для сложных команд, и позволяет начать получать вывод немедленно.

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

Задание текущего местоположения (командлет Set-Location)

Команда Get-Location используется совместно с командой Set-Location. Команда Set-Location позволяет задать местоположение текущего каталога:

PS> Set-Location -Path C:\Windows

 

После введения этой команды явный отзыв о ее выполнении не выводится. Большинство команд Windows PowerShell, выполняющие какие-либо действия, практически не выводят какие-либо данные, поскольку эти данные малополезны. Чтобы проверить, успешно ли выполнена смена текущего каталога при вводе команды Set-Location, следует указать параметр -PassThru:

PS> Set-Location -Path C:\Windows -PassThru Path ---- C:\WINDOWS

 

Параметр -PassThru можно использовать в Windows PowerShell в сочетании со многими командами группы Set для возвращения сведений о результатах в случаях, когда по умолчанию вывод отсутствует.

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

Например, если текущей папкой является папка C:\Windows, точка (.) представляет папку C:\Windows, а две точки (..) представляют папку C:. Можно сделать текущим местоположением корневой диск «С:», выполнив команду:

PS> Set-Location -Path.. -PassThru

Path

----

C:\

Вышеописанный метод уместен и при работе с дисками Windows PowerShell, которые не являются дисками файловых систем, например HKLM:. Можно перенести текущее местоположение на раздел HKLM\Software в реестре, выполнив команду:

 PS> Set-Location -Path HKLM:\SOFTWARE -PassThru   Path ---- HKLM:\SOFTWARE

 

После этого можно перейти в родительский каталог, который является корневым каталогом Windows PowerShell на диске HKLM:, воспользовавшись относительным путем:

PS> Set-Location -Path.. -PassThru   Path ---- HKLM:\

 

 

При этом допустимо вводить команду Set-Location или использовать любой из встроенных псевдонимов Windows PowerShell для команды Set-Location (cd, chdir, sl). Например:

cd -Path C:\Windows

 

chdir -Path.. -PassThru

sl -Path HKLM:\SOFTWARE -PassThru

 

 

Работа с объектами

Мы обсудили использование в оболочке Windows PowerShell объектов для передачи данных между командлетами, продемонстрировали несколько способов просмотра подробных сведений об объектах с помощью командлетов Get-Member и Format для просмотра отдельных свойств объектов.

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

Вывод списка классов WMI

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

Командлет Get-WmiObject решает эту проблему, представляя сведения об интерфейсе WMI. Список классов WMI, доступных на локальном компьютере, можно получить, введя команду:

PS> Get-WmiObject -List     __SecurityRelatedClass             __NTLMUser9X __PARAMETERS                       __SystemSecurity __NotifyStatus                     __ExtendedStatus Win32_PrivilegesStatus             Win32_TSNetworkAdapterSettingError Win32_TSRemoteControlSettingError  Win32_TSEnvironmentSettingError ...

 

Можно извлечь те же сведения на удаленном компьютере, указав в параметре ComputerName имя компьютера или его IP-адрес:

PS> Get-WmiObject -List -ComputerName 192.168.1.29     __SystemClass                      __NAMESPACE __Provider                         __Win32Provider __ProviderRegistration             __ObjectProviderRegistration ...

 

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

Примечание

При использовании командлета Get-WmiObject для подключения к удаленному компьютеру на последнем должен быть запущен интерфейс WMI и используемая учетная запись должна входить в группу локальных администраторов на удаленном компьютере (конфигурация по умолчанию). На удаленной системе может быть не установлена оболочка Windows PowerShell. Это позволяет администрировать операционные системы, на которых не запущена оболочка Windows PowerShell, но имеется интерфейс WMI.

Можно использовать параметр ComputerName при подключении к локальной системе. Можно использовать имя локального компьютера, его IP-адрес (или адрес замыкания на себя 127.0.0.1) либо «.» (в стиле интерфейса WMI) в качестве имени компьютера. Если на компьютере с именем «Admin01» и IP-адресом 192.168.1.90 запущена оболочка Windows PowerShell, следующие команды возвратят список классов WMI для этого компьютера:

Get-WmiObject -List Get-WmiObject -List -ComputerName. Get-WmiObject -List -ComputerName Admin01 Get-WmiObject -List -ComputerName 192.168.1.90 Get-WmiObject -List -ComputerName 127.0.0.1 Get-WmiObject -List -ComputerName localhost

 

Командлет Get-WmiObject использует по умолчанию пространство имен root/cimv2. Если необходимо указать другое пространство имен WMI, воспользуйтесь параметром Namespace и укажите путь к соответствующему пространству имен:

PS> Get-WmiObject -List -ComputerName 192.168.1.29 -Namespace root     __SystemClass                      __NAMESPACE __Provider                         __Win32Provider ...

 

Вывод сведений о классе WMI

Если имя класса WMI уже известно, можно немедленно получить сведения о нем. Например, одним из классов WMI, используемых для получения сведения о компьютере, является класс Win32_OperatingSystem.

PS> Get-WmiObject -Class Win32_OperatingSystem -Namespace root/cimv2 -ComputerName.     SystemDirectory: C:\WINDOWS\system32 Organization: Global Network Solutions BuildNumber: 2600 RegisteredUser: Oliver W. Jones SerialNumber: 12345-678-9012345-67890 Version   : 5.1.2600

 

Хотя показаны все параметры, команда может быть представлена в более короткой форме. Параметр ComputerName не является обязательным при подключении к локальной системе. Мы покажем это, чтобы продемонстрировать наиболее общий случай и напомнить об этом параметре. По умолчанию параметр Namespace имеет значение «root/cimv2» и может быть опущен. В конце концов, большинство командлетов позволяют опускать имя типовых параметров. В командлете Get-WmiObject, если для первого параметра имя не указано, Windows PowerShell считает его параметром Class. Это значит, что последнюю команду можно было ввести в таком виде:

Get-WmiObject Win32_OperatingSystem

 

Класс Win32_OperatingSystem имеет больше свойств, чем показано тут. Можно воспользоваться командлетом Get-Member, чтобы показать все свойства. Свойства класса WMI автоматически доступны, как и другие свойства объекта:

PS> Get-WmiObject -Class Win32_OperatingSystem -Namespace root/cimv2 -ComputerName. | Get-Member -MemberType Property     TypeName: System.Management.ManagementObject#root\cimv2\Win32_OperatingSyste m   Name                                 MemberType Definition ----                                 ---------- ---------- __CLASS                              Property System.String __CLASS {... ... BootDevice                           Property System.String BootDevic... BuildNumber                          Property System.String BuildNumb... ...

 

Сортировка объектов

С помощью командлета Sort-Object отображаемые данные можно организовать таким образом, чтобы упростить их просмотр. Командлету Sort-Object передаются имена свойств, по которым нужно произвести сортировку, и возвращает данные отсортированными по значениям этих свойств.

Рассмотрим проблему перечисления экземпляров класса Win32_SystemDriver. Чтобы отсортировать данные сначала по свойству State, а затем по свойству Name, необходимо ввести следующую команду:

Get-WmiObject -Class Win32_SystemDriver | Sort-Object -Property State,Name | Format-Table -Property Name,State,Started,DisplayName -AutoSize -Wrap

 

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

Name      State Started DisplayName ----      ----- ------- ----------- ACPI      Running True Microsoft ACPI Driver AFD       Running True AFD AmdK7     Running True AMD K7 Processor Driver AsyncMac  Running True RAS Asynchronous Media Driver ... Abiosdsk  Stopped False Abiosdsk ACPIEC    Stopped False ACPIEC aec       Stopped False Microsoft Kernel Acoustic Echo Canceller ...

 

Объекты можно отсортировать в обратном порядке, для чего требуется указать параметр Descending. Это изменяет порядок сортировки таким образом, что имена сортируются в обратном алфавитном порядке, а числа — по убыванию.

PS> Get-WmiObject -Class Win32_SystemDriver | Sort-Object -Property State,Name -Descending | Format-Table -Property Name,State,Started,DisplayName -AutoSize -Wrap   Name      State Started DisplayName ----      ----- ------- ----------- WS2IFSL   Stopped False Windows Socket 2.0 Non-IFS Service Provider Supp                           ort Environment wceusbsh  Stopped False Windows CE USB Serial Host Driver... ... wdmaud    Running True Microsoft WINMM WDM Audio Compatibility Driver Wanarp    Running True Remote Access IP ARP Driver ...

 

Создание переменной

Чтобы создать переменную, нужно ввести допустимое имя переменной:

PS> $loc PS>

 

Эта команда не приведет ни к какому результату, потому что переменная $loc не имеет значения. Создать переменную и присвоить ей какое-либо значение можно одним действием. Windows PowerShell создает переменную, только если она еще не существует; в противном случае указанное значение присваивается существующей переменной. Для сохранения текущего местоположения в переменной $loc следует ввести:

$loc = Get-Location

 

После ввода этой команды ее вывод не отображается, потому что он отправляется в переменную $loc. Отображение выв<


Поделиться с друзьями:

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

Таксономические единицы (категории) растений: Каждая система классификации состоит из определённых соподчиненных друг другу...

Архитектура электронного правительства: Единая архитектура – это методологический подход при создании системы управления государства, который строится...

Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначен­ные для поддерживания проводов на необходимой высоте над землей, водой...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.136 с.