Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...
Типы сооружений для обработки осадков: Септиками называются сооружения, в которых одновременно происходят осветление сточной жидкости...
Топ:
Характеристика АТП и сварочно-жестяницкого участка: Транспорт в настоящее время является одной из важнейших отраслей народного хозяйства...
Выпускная квалификационная работа: Основная часть ВКР, как правило, состоит из двух-трех глав, каждая из которых, в свою очередь...
Определение места расположения распределительного центра: Фирма реализует продукцию на рынках сбыта и имеет постоянных поставщиков в разных регионах. Увеличение объема продаж...
Интересное:
Аура как энергетическое поле: многослойную ауру человека можно представить себе подобным...
Как мы говорим и как мы слушаем: общение можно сравнить с огромным зонтиком, под которым скрыто все...
Мероприятия для защиты от морозного пучения грунтов: Инженерная защита от морозного (криогенного) пучения грунтов необходима для легких малоэтажных зданий и других сооружений...
Дисциплины:
|
из
5.00
|
Заказать работу |
Содержание книги
Поиск на нашем сайте
|
|
|
|
Командлет ForEach-Object использует блоки сценариев и дескриптор $_ для текущего объекта конвейера, чтобы та или иная команда была выполнена для всех объектов конвейера. Эта возможность позволяет выполнить некоторые сложные действия.
Одним из них является обработка данных с целью повышения их применимости. Например, класс Win32_LogicalDisk из инструментария управления Windows может использоваться для просмотра сведений о свободном месте на каждом локальном диске. Для запрашиваемых данных используется единица измерения байт, что затрудняет чтение.
| PS> Get-WmiObject -Class Win32_LogicalDisk DeviceID: C: DriveType: 3 ProviderName: FreeSpace: 50665070592 Size : 203912880128 VolumeName: Local Disk |
Значение свойства FreeSpace можно преобразовать в мегабайты, дважды разделив исходное значение на 1024: после первого деления результат будет представлен в килобайтах, после второго — в мегабайтах. Для этого в блоке сценария ForEach-Object нужно ввести:
| Get-WmiObject -Class Win32_LogicalDisk | ForEach-Object -Process {($_.FreeSpace)/1024.0/1024.0} 48318.01171875 |
К сожалению, теперь с выводимыми данными не связаны никакие метки. Свойства WMI предназначены только для чтения, поэтому нельзя преобразовать непосредственно значение свойства FreeSpace. Если ввести:
| Get-WmiObject -Class Win32_LogicalDisk | ForEach-Object -Process {$_.FreeSpace = ($_.FreeSpace)/1024.0/1024.0} |
то будет получено сообщение об ошибке.
| "FreeSpace" является свойством ReadOnly. В строке:1 знак:70 + Get-WmiObject -Class Win32_LogicalDisk | ForEach-Object -Process {$_.F <<<< r eeSpace = ($_.FreeSpace)/1024.0/1024.0} |
Реорганизовать данные можно с помощью более сложных методов, но более простым решением является создание нового объекта с помощью командлета Select-Object.
Выделение частей объектов (командлет Select-Object)
Командлет Select-Object позволяет создавать новые объекты Windows PowerShell, которые содержат избранные свойства существующих объектов, используемых при создании новых. Чтобы создать новый объект, который содержит только свойства Name и FreeSpace WMI-класса Win32_LogicalDisk, введите следующее:
| PS> Get-WmiObject -Class Win32_LogicalDisk | Select-Object -Property Name,FreeSpace Name FreeSpace ---- --------- C: 50664845312 |
После выполнения этой команды нельзя увидеть тип данных; но если результат передать по конвейеру командлету Get-Member после ключевого слова Select-Object, то можно увидеть новый тип объекта PSCustomObject:
| PS> Get-WmiObject -Class Win32_LogicalDisk | Select-Object -Property Name,FreeSpace| Get-Member TypeName: System.Management.Automation.PSCustomObject Name MemberType Definition ---- ---------- ---------- Equals Method System.Boolean Equals(Object obj) GetHashCode Method System.Int32 GetHashCode() GetType Method System.Type GetType() ToString Method System.String ToString() FreeSpace NoteProperty FreeSpace=... Name NoteProperty System.String Name=C: |
Командлет Select-Object имеет достаточно широкое применение. Одним из примеров является репликация данных, которые затем можно изменить. Таким образом можно решить проблему, рассмотренную в предыдущей главе. Значение свойства FreeSpace вновь созданных объектов можно обновить, и выводимые данные будут содержать описательную метку:
| Get-WmiObject -Class Win32_LogicalDisk | Select-Object -Property Name,FreeSpace | ForEach-Object -Process {$_.FreeSpace = ($_.FreeSpace)/1024.0/1024.0; $_} Name FreeSpace ---- --------- C: 48317.7265625 |
Сортировка объектов
С помощью командлета 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 ... |
|
|
|
История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...
Кормораздатчик мобильный электрифицированный: схема и процесс работы устройства...
Эмиссия газов от очистных сооружений канализации: В последние годы внимание мирового сообщества сосредоточено на экологических проблемах...
История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...
© cyberpediasu.com 2017-2026 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!