Powershell что такое: Что такое Windows PowerShell и с чем его едят? Часть 1: основные возможности / Хабр

Windows powershell: что это?

Первые операционные системы не содержали никакого интерфейса взаимодействия с пользователем, кроме командной строки. MS-DOS, например, позволяла общаться с собой только так. Графический интерфейс пользователя требовал от машины значительно большей мощности, чем имелось у компьютеров того времени. Появление GUI, казалось бы, устранило потребность в консоли. Однако командная строка – лишь кажущееся излишество.

Поясним это на примере. Любую отдельную команду к ОС можно обернуть интерфейсом из окошек и элементов управления, наподобие флажков, списков выбора и кнопок. Но что делать, если команд таких несколько? То есть тогда, когда нужно последовательно выполнять команду за командой. Очевидно, графический интерфейс для такой задачи окажется сильно перегруженным. И тем более сложным, чем больше команд потребуется выполнить.

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

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

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

PowerShell на смену «батникам»

Со временем командные оболочки сильно эволюционировали. Процессору «батников» (.bat-файлов) DOS пришел на смену командный процессор 4DOS, в Windows происходили аналогичные изменения – перечень исполнимых инструкций значительно расширился, приобретая сходство с современными скриптовыми языками программирования.

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

Также у них появились конкуренты, наподобие скриптов JScript и VBScript, функционирующих на базе языковой машины WHS(Windows Script Host). Казалось бы, эволюция «батников» зашла в тупик, и они должны были вымереть, как динозавры. Но не тут то было.

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

Net со всеми вытекающими из этого последствиями (что такое классы в современном программировании, думается, объяснять не нужно) и получили новое имя – «командлеты». Можно еще много рассуждать на тему отличий оболочки PowerShell от прочих скриптовых оболочек, но лучше предложить краткий перечень ее функций, чтобы вы поняли, что такое PS.

Функциональность PowerShell

Функциональность оболочки такова:

  • Командлеты предоставляют интерфейс для работы с сущностями из следующего списка: реестром, процессами, журналом, службами, WMI. То есть идеально подходят для нужд системного администратора.
  • PowerShell – это развитый скриптовый язык программирования на основе объектной парадигмы.
  • Унифицированный дизайн языка PowerShell на концепции хранилищ системных данных с единообразной структурой. Для программиста это означает возможность использовать одни и те же командлеты при работе с различными хранилищами.
  • В язык включена мощная система навигации по файловой системе и системным хранилищам. Причем навигация по тем и другим осуществляется одинаково.
  • Ориентация на объекты означает не только инкапсуляцию различных методов в одном объекте, но и возможность сохранять экземпляры объектов на диске или в СУБД.
  • Интерфейс PowerShell может быть легко расширен разработчиком, что означает возможность создавать целые программные пакеты PoweShell для решения специальных прикладных задач системного программирования.

Что такое powershell.exe?

РЕКОМЕНДУЕМ: Нажмите здесь, чтобы исправить ошибки Windows и оптимизировать производительность системы

Подлинный файл powershell. exe является одним из компонентов программного обеспечения Microsoft Windows, разработанного Microsoft .

Microsoft Windows — это операционная система. PowerShell — это среда управления конфигурацией и автоматизации задач от Microsoft. Powershell.exe — это исполняемый файл, связанный с PowerShell, и не представляет никакой угрозы для ПК пользователя. PowerShell — это инфраструктура управления конфигурацией и автоматизации задач Microsoft, которая состоит из оболочки командной строки и связанного языка сценариев. Это было доступно через платформы и в настоящее время с открытым исходным кодом. PowerShell позволяет администраторам выполнять административные задачи как удаленно, так и в локальных системах Windows, и впервые был выпущен как неотъемлемая часть операционных систем Windows 7 и Windows Server 2008 R2.

Microsoft Corporation — американская многонациональная технологическая компания, основанная Биллом Гейтсом и Полом Алленом в 1975 году. Компания известна несколькими крупными приобретениями, включая LinkedIn за 26, 2 млрд долларов в 2016 году и Skype Technologies. Компания предлагает широкий спектр продуктов, таких как операционные системы Windows, Microsoft Xbox и планшеты Surface.

Что такое психолог�…

Please enable JavaScript

Что такое психология? Изучение концепций

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

Процесс Powershell.exe в диспетчере задач Windows

Процесс, известный как Windows PowerShell, принадлежит программному обеспечению Microsoft Windows Operating System от Microsoft (www.microsoft.com).

Описание: оригинальный powershell.exe является важной частью Windows и редко вызывает проблемы. Powershell.exe находится в подпапках C: \ Windows \ System32, в основном C: \ Windows \ System32 \ WindowsPowerShell \ v1. 0 \ . Известные размеры файлов в Windows 10/8/7 / XP составляют 452 608 байт (60% всех вхождений), 461 312 байт, 431 616 байт, 460 288 байт или 448 000 байт.

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

Если powershell.exe находится в подпапках C: \ Windows, тогда рейтинг надежности 4% опасности . Размер файла составляет 451 072 байта (50% всех вхождений) или 452 608 байтов. Файл powershell.exe — это системный файл Windows. Файл powershell.exe — это файл, подписанный Microsoft. Программа не видна.

Важно: Некоторые вредоносные программы маскируют себя как powershell.exe, особенно если они находятся в папке C: \ Windows или C: \ Windows \ System32. Таким образом, вы должны проверить файл powershell.exe на вашем ПК, чтобы убедиться, что это угроза. Мы рекомендуем Security Task Manager для проверки безопасности вашего компьютера. Это был один из лучших вариантов загрузки The Washington Post и PC World .

Аккуратный и опрятный компьютер — это главное требование для избежания проблем с powershell. Это означает запуск сканирования на наличие вредоносных программ, очистку жесткого диска с использованием 1 cleanmgr и 2 sfc / scannow, 3 удаления ненужных программ, проверку наличия программ автозапуска (с использованием 4 msconfig) и включение автоматического обновления Windows 5. Всегда не забывайте выполнять периодическое резервное копирование или, по крайней мере, устанавливать точки восстановления.

Если у вас возникла реальная проблема, попробуйте вспомнить последнее, что вы сделали, или последнее, что вы установили до того, как проблема появилась впервые. Используйте команду 6 resmon для определения процессов, которые вызывают вашу проблему. Даже для серьезных проблем, вместо переустановки Windows, лучше восстановить вашу установку или, для Windows 8 и более поздних версий, выполнить команду 7 DISM. exe / Online / Cleanup-image / Restorehealth. Это позволяет восстановить операционную систему без потери данных.

Чтобы помочь вам проанализировать процесс powershell.exe на вашем компьютере, оказались полезными следующие программы: Менеджер задач безопасности отображает все запущенные задачи Windows, включая встроенные скрытые процессы, такие как мониторинг клавиатуры и браузера или записи автозапуска. Уникальный рейтинг риска безопасности указывает на вероятность того, что процесс является потенциальным шпионским ПО, вредоносным ПО или трояном. B Malwarebytes Anti-Malware обнаруживает и удаляет спящие шпионские, рекламные программы, трояны, клавиатурные шпионы, вредоносные программы и трекеры с вашего жесткого диска.

Связанный файл:

timountermonitor.exe wsxservice.exe flcomserv.exe powershell.exe fubtool.exe dacore.exe tppaldr.exe windows driver.exe gmouseservice.exe safeguard32.dll pctsgui.exe

Введение — PowerShell | Microsoft Узнайте

Редактировать

Твиттер

LinkedIn

Фейсбук

Электронная почта

  • Статья
Этот контент первоначально появился в книге Майка Ф. Роббинса PowerShell 101 . Мы благодарим
Майку за предоставление нам разрешения на повторное использование его контента здесь. Контент был отредактирован с
оригинальная публикация. Вы по-прежнему можете получить оригинальную книгу в Leanpub по адресу
PowerShell 101.

Для кого эта книга?

Это книга начального уровня для всех, кто хочет изучить PowerShell.

В этой книге основное внимание уделяется PowerShell версии 5.1, работающей в Windows 10 и Windows Server 2016 в
Среда домена Microsoft Active Directory. Однако основные понятия применимы ко всем версиям
PowerShell работает на любой поддерживаемой платформе.

Об этой книге

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

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

Об авторе

Майк Ф. Роббинс — бывший MVP Microsoft, соавтор Windows PowerShell TFM 4th Edition и
пишущий автор в Книга PowerShell Deep Dives . Майк был активным сторонником
сообщества PowerShell, а сейчас является ведущим писателем по Azure PowerShell в Microsoft. Он ведет блог на
mikefrobbins.com и его можно найти в твиттере @mikefrobbins.

Лабораторная среда

Примеры в этой книге были разработаны и протестированы на Windows 10 Anniversary Edition (сборка 1607)
и Windows Server 2016 с использованием PowerShell версии 5.1. Если вы используете другую версию
PowerShell или операционной системы, ваши результаты могут отличаться от показанных здесь.

Обратная связь

Просмотреть все отзывы о странице

Что такое PowerShell и зачем его использовать?

Многие технические специалисты мирятся с повторяющимися задачами и управляют вещами с помощью метода «укажи и щелкни», когда они могут сэкономить так много времени за счет автоматизации. PowerShell, оболочка и язык сценариев от Microsoft, могут помочь. Что такое PowerShell?

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

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

У нас есть сотни сообщений в блогах о PowerShell. Если вы новичок в этом языке, ознакомьтесь со всеми другими сообщениями, которые у нас есть здесь.

Что такое PowerShell?

PowerShell — это оболочка с открытым исходным кодом и язык сценариев, созданные на основе технологии Microsoft .NET. Он призван помочь техническим специалистам, которые могут не быть разработчиками программного обеспечения, создавать эффективные сценарии и инструменты, которые помогут им лучше выполнять свою работу.

Развиваясь из таких языков, как VBScript и пакетных файлов, PowerShell был разработан, чтобы предоставить первоклассный интерфейс командной строки и язык сценариев, которые легко понять и использовать.

PowerShell является объектно-ориентированным и сильно зависит от объектов, подобно объектно-ориентированному программированию (ООП). Почти все в PowerShell — это объекты, о которых вы скоро узнаете больше.

PowerShell — это две вещи; это оболочка командной строки, которая позволяет пользователям запускать команды в командной строке, аналогичной устаревшей командной строке (cmd. exe). Это также надежный язык сценариев, который может создавать инструменты и автоматизировать практически все, что вы можете придумать.

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

Эволюция PowerShell

В 2002 году Джеффри Сновер из Microsoft понял, что Windows не имеет хорошего интерфейса командной строки и возможностей сценариев, как ее конкурент Linux. Чтобы изменить это, Сновер выпустил Monad Manifesto, документ, в котором изложены его планы относительно того, что в конечном итоге станет PowerShell.

С 2002 по 2005 год PowerShell назывался Monad и все еще находился на ранней стадии разработки. В 2006 году слово «PowerShell» впервые появилось с выпуском PowerShell 1. 0. С этого момента команда PowerShell в Microsoft использовала манифест в качестве руководства для постоянного добавления новых функций в PowerShell.

Первоначально доступный только как часть Windows Management Framework, до Windows XP и Windows Server 2012 PowerShell устанавливался отдельно. Но начиная с Windows 7 и Windows Server 2012 R2 PowerShell стал устанавливаться по умолчанию во всех операционных системах Windows.

Переход на кроссплатформенность

С 2006 по 2016 год PowerShell был доступен только в Windows под названием Windows PowerShell до версии 5.1. PowerShell был построен на основе .NET Framework, который был доступен только в Windows. В 2016 году Microsoft решила сделать смелый шаг и открыть PowerShell с открытым исходным кодом на GitHub, где она отказалась от «Windows» и перешла к «PowerShell» в шестой версии.

С тех пор PowerShell доступен не только для Windows, но и для macOS, Linux и других операционных систем *nix, где используется .NET Core.

PowerShell/PowerShell Core обратно совместим с Windows PowerShell. Обе версии могут быть установлены рядом.

Будущее PowerShell

По состоянию на 2021 год PowerShell уже приложил максимум усилий для разработки. Достигнув цели, поставленной в манифесте Monad, команда PowerShell в Microsoft управляет продуктом. Хотя большинство, если не все, новаторские функции уже выпущены, Microsoft и сообщество разработчиков открытого исходного кода все еще активно их поддерживают.

Команды

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

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

В отличие от командлетов, которые разработчики программного обеспечения создают на других языках, таких как C#, обычные рабочие могут создавать свои собственные команды. Встроенные в язык PowerShell функции позволяют тем, кто знает PowerShell, создавать команды, аналогичные командлетам.

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

Используйте командлет Get-Command , чтобы обнаружить все доступные команды в вашей системе.

Синтаксис команд

Одной из уникальных частей PowerShell является синтаксис. PowerShell имеет синтаксис, который читается во время выполнения для ИТ-специалистов.

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

Названные в синтаксисе глагол-существительное , имена команд всегда начинаются с глагола, за которым следует тире и существительное.

A Хотя PowerShell не требует от вас использования синтаксиса глагол-существительное для ваших пользовательских функций, Microsoft настоятельно рекомендует это.

Глаголы

Наиболее важной частью имени командлета является глагол. Эта часть должна точно описывать, какое действие выполняет командлет. Например, Get-Content получает текст из файла, а Copy-Item копирует файл. Вы даже можете найти все «утвержденные» команды, выполнив команду Get-Verb в консоли PowerShell, как показано ниже.

Запуск Get-Verb для поиска утвержденных глаголов

Существительные

В отличие от глаголов, в PowerShell нет «одобренных» существительных. Объект, над которым выполняется действие, может сильно различаться. Но PowerShell отделяет глагол от существительного внутри движка. Вы можете увидеть пример этого, запустив Команда Get-Command с использованием параметра Noun .

Указав параметр Noun и указав значение A* . PowerShell «разделит» все доступные команды на глагол и существительное и покажет вам только команды с существительным, начинающимся с буквы A.

Запуск команды Get-Command для поиска всех существительных, начинающихся с буквы A , вы видели вывод команды Get-Command . В этом выводе вы могли видеть столбец с именем Источник . Чтобы разделить команды, PowerShell требует, чтобы все командлеты были частью «корзины» или модуля.

Модули представляют собой группы команд, объединенных общей функцией. Например, многие основные командлеты PowerShell находятся в модуле Microsoft.PowerShell.Management , а такие командлеты, как Write-Host и Write-Debug , — в модуле Microsoft.PowerShell.Utility .

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

Вы можете найти все модули, установленные на вашем компьютере, запустив Get-Module -ListAvailable . Команда Get-Module находит все модули, которые были загружены (импортированы в текущий сеанс). Параметр ListAvailable указывает Get-Module также искать модули, установленные в вашей файловой системе, но не импортированные.

Поиск всех доступных модулей PowerShell с помощью Get-Module

Используйте Find-Module для поиска в галерее PowerShell, чтобы обнаружить тысячи других модулей.

Объекты

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

Чтобы понять PowerShell, вы должны сначала понять, как работают объекты.

Объекты реального мира

Подумайте об одном «объекте» реального мира. Поработаем с кошкой. Кошка — это вещь с различными атрибутами (свойствами), такими как цвет, размер, возраст и т. д., которые определяют характеристики кошки.

Каждый кот — это объект с определенными атрибутами, которые его описывают. Эти атрибуты являются свойствами.

Предметы

Итак, кошка — это не какой-то неподвижный объект. Он делает что-то вроде бега, прыжков, моргания глазами или мурлыканья. Кошка (предмет) выполняет какое-то действие. В PowerShell объект cat имеет различные методы, которые выполняют действия, что-то делают.

Типы объектов

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

Кошка — это тип, собака — это тип, а машина — это тип. Каждый объект имеет определенный набор атрибутов и действий, которые он может выполнять.

Свойства и методы объекта

Если о кошке можно думать как об объекте со свойствами и методами, как вы представляете это в коде? Чтобы объяснить это, давайте сначала начнем с общего типа объекта, строки.

Если вы введете приведенный ниже текст в консоль и нажмете Enter, он вернет вам значение, но в фоновом режиме происходит больше.

 «Это обычный текст, и это объект» 

Когда вы нажимаете Enter на клавиатуре, PowerShell создает объект, в частности объект с типом System.String . Этот строковый объект имеет различных «членов», что является термином PowerShell для всех свойств и методов.

Вы можете увидеть всех членов, назначенных этому строковому объекту, направив (подробнее об этом позже) вывод строки в командлет Get-Member . Командлет Get-Member — это удобная команда, которая проверяет объекты PowerShell.

Некоторые свойства и методы членов для объекта String

Длина — это одно из свойств строки, указывающее ее длину. Вы можете ссылаться на значение свойства, используя запись через точку, как показано ниже.

 «Это обычный текст и его объект». Длина 

Вы можете видеть, что PowerShell возвращает значение 39 , что указывает на то, что этот сценарий содержит 39 символов.

Проблема с 39 символами

Вы бы ссылались на метод объекта аналогичным образом. Но вместо набора буквенно-цифровых символов методы требуют использования круглых скобок.

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

Строковый объект имеет метод с именем Upper() , который делает все символы в строке заглавными, как показано ниже.

 «Это обычный текст и его объект». ToUpper() 

Метод преобразования всех букв в заглавные

Дополнительные сведения о Get-Member, свойствах и методах см. на веб-сайте Microsoft.com

PSDrives

Одной из уникальных особенностей этой оболочки является концепция PSDrive. Диски PowerShell или PSDrives — это «диски», к которым вы обычно привыкли, например C:\, но с изюминкой. Типичный C:\ — это диск с файловой системой, состоящий из папок с файлами внутри. PSDrive может быть этим, но также может быть кустом реестра, Active Directory или контейнером сертификата.

Диски PSDrive обеспечивают абстракцию от фактического источника данных и позволяют иерархически перемещаться по нескольким типам данных. Используйте 9Командлет 0119 Get-PSDrive для поиска всех доступных дисков на вашем компьютере.

Get-PSDrive

В PowerShell есть набор командлетов с существительным Item , ChildItem и ItemProperty . Каждый из этих командлетов работает с любым PSDrive.

Набор командлетов

Например, чтобы прочитать куст реестра, вы можете запустить Get-ChildItem -Path HKLM:\ или, возможно, вы хотите найти атрибуты файла. Для этого вы должны использовать Get-ItemProperty -Path C:\file.txt .

Обработка ошибок

Как и все другие языки программирования, PowerShell также поддерживает обработку ошибок и исключений. Используя обработку ошибок .NET, например try , catch и устаревшие команды trap , вы можете перехватывать исключения по мере их возникновения в ваших сценариях.

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

Например, возможно, вам нужно прочитать содержимое текстового файла по адресу C:\NonExistingFile.txt , а этот файл не существует. По умолчанию Get-Content возвращает ошибку мягкого завершения, если файл не существует. Ошибки мягкого завершения не вызывают исключений в блоке catch .

Ошибки мягкого завершения просто возвращают ошибку на консоль и завершают работу, как показано ниже.

 Попробуйте{
    Get-Content-Path "C:\NonExistingFile.txt"
} Ловить{
    Write-Host "Я нашел ошибку и поймал ее..." - ForegroundColor Yellow
} 

Get-Content

Все командлеты PowerShell поставляются с параметром ErrorAction для переопределения поведения командлета по умолчанию. Возможно, я хочу, чтобы PowerShell вошел в мой блок catch , когда файл не найден. Для этого Get-Content должен вернуть исключение или принудительную завершающую ошибку.

Чтобы «преобразовать» ошибки мягкого завершения в ошибки жесткого завершения для ссылки на командлет, используйте значение Stop с параметром ErrorAction , как показано ниже.

 Попробуйте{
    Get-Content -Path "C:\NonExistingFile. txt" -ErrorAction Stop
} Ловить{
    Write-Host "Я нашел ошибку и поймал ее..." - ForegroundColor Yellow
} 

Stop Value with ErrorAction

Конвейер

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

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

Например, возможно, у вас есть работающий браузер Mozilla Firefox, работающий под управлением процесса с именем firefox . PowerShell имеет встроенный командлет Get-Process для обнаружения запущенных процессов.

 Get-Process firefox 

В PowerShell также есть командлет Stop-Process , который останавливает запущенные процессы. В традиционной оболочке вам пришлось бы делать что-то подобное, занимая две строки и добавляя сложности.

 $процесс = Получить-Процесс firefox
Stop-Process $process 

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

 # Найдите процесс с именем Firefox и передайте его команде Stop-Process, которая завершит его
Получить-процесс firefox | Stop-Process 

Pipeline

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

Удаленная связь

PowerShell не просто привязан к компьютеру, на котором он установлен. Он может так же легко запускать команды на удаленных компьютерах. Для этого используется удаленное взаимодействие PowerShell (PSRemoting). PSRemoting — это функция, которая подключается к удаленным компьютерам и выполняет команды так же, как если бы компьютер был локальным.