Powershell уроки: Введение — PowerShell | Microsoft Learn
Содержание
Введение — PowerShell | Microsoft Learn
Twitter
LinkedIn
Facebook
Адрес электронной почты
-
Статья -
-
Этот материал был первоначально опубликован в книге PowerShell 101 (Основы PowerShell) Майка Роббинса. Мы благодарим Майка за возможность использовать его наработки в нашей документации. Содержимое было отредактировано. Сама книга PowerShell 101 доступна на сайте Leanpub. |
Для кого предназначена эта книга?
Это книга содержит вводные сведения и предназначена для всех желающих изучать PowerShell.
В ней рассматривается оболочка PowerShell версии 5.1, работающая в Windows 10 и Windows Server 2016 в доменной среде Microsoft Active Directory. Однако основные понятия применимы ко всем версиям PowerShell, выполняющимся на любой поддерживаемой платформе.
Об этой книге
В этой книге собрана информация, которую мне хотелось получить, когда я только начал изучать PowerShell, а также приведены советы, подсказки и рекомендации, которые стали мне известны на протяжении последних 10 лет использования PowerShell.
Здесь нет огромных объемов информации — в этой книге предпринимается попытка предоставить столько данных, сколько будет достаточно для успешного начала работы с PowerShell. Те, кому нужны более подробные сведения по темам, затрагиваемым в каждой главе, могут воспользоваться ссылками на соответствующие разделы справки.
Об авторе
Майк Роббинс — бывший Microsoft MVP, соавтор книг Windows PowerShell TFM 4th Edition и PowerShell Deep Dives. Майк был решительным сторонником сообщества PowerShell, а сейчас является ведущим автором материалов по Azure PowerShell в корпорации Майкрософт. Он блоги на mikefrobbins.com и можно найти на twitter @mikefrobbins.
Лабораторная среда
Примеры в этой книге были разработаны и протестированы в Windows 10 Anniversary Edition (сборка 1607) и Windows Server 2016 с помощью PowerShell версии 5.1. Если вы используете другую версию PowerShell или операционной системы, результаты могут отличаться от приведенных в этой документации.
POWER SHELL урок 1 | Windows IT Pro/RE
В наши дни с оболочкой Windows PowerShell знакомы уже едва ли не все администраторы. Многие загружали ее, экспериментировали с ней и решали нестандартные задачи, которые иногда выполняют в командной оболочке Windows через cmd.exe.
В наши дни с оболочкой Windows PowerShell знакомы уже едва ли не все администраторы. Многие загружали ее, экспериментировали с ней и решали нестандартные задачи, которые иногда выполняют в командной оболочке Windows через cmd.exe. Однако PowerShell — нечто гораздо большее, чем просто DOS-подобная командная оболочка. Это среда для работы с командной строкой и выполнения сценариев, построенная на основе Microsoft .NET Common Language Runtime (CLR) и .NET Framework. В среде PowerShell вы работаете с объектами .NET. Структуры папок, которые вы видите, или службы, к которым обращаетесь, в сущности, являются экземплярами объектов, которые представляют эти папки и службы; в этом и состоит отличие рассматриваемого продукта от других командных оболочек, которые способны только обрабатывать тексты. Таким образом, PowerShell по своей мощности и эффективности намного превосходит традиционные командные оболочки.
Чтобы помочь читателям воспользоваться всеми достоинствами данного инструмента, я подготовил серию статей, разъясняющих, как решать различные задачи с помощью PowerShell. На первом «уроке» я расскажу о том, как приступить к использованию PowerShell и как выполнять базовые команды. Кроме того, я разъясню, как получать справочную информацию в среде PowerShell при создании этих команд и как использовать в командах псевдонимы.
Первые шаги
Сейчас PowerShell не поставляется с Windows, но начиная с версии Windows Server 2008 положение изменится. Ссылки на ресурсы, где можно загрузить PowerShell, а также сведения об этой оболочке доступны на Web-странице Windows PowerShell (www.microsoft.com/powershell ). Перед загрузкой PowerShell необходимо установить на своей системе среду .NET Framework 2.0. Процесс установки PowerShell не занимает много времени и не представляет трудностей. Нужно только позаботиться о том, чтобы устанавливаемая версия PowerShell была совместима с используемой операционной системой. Microsoft выпускает версии для Windows Server 2008 beta 3, Windows Vista, Windows XP SP2 и Windows Server 2003. При подготовке данной статьи я пользовался версией PowerShell для Windows XP.
По завершении установки оболочки PowerShell можно сразу приступать к работе. Для запуска PowerShell в меню Start требуется выбрать пункт All Programs, затем выделить пункты Windows PowerShell 1.0 и Windows PowerShell. При появлении окна PowerShell в командной строке отображается текущая рабочая папка (на моей системе это каталог C). Теперь можно приступать к написанию и выполнению команд PowerShell.
Работа с командами
Разработчики PowerShell оснастили эту оболочку особым языком сценариев, построенным в соответствии со стандартом .NET Framework. Команда PowerShell, cmdlet подобна функции в том плане, что она выполняет конкретную задачу, например извлекает содержимое папки или обновляет запись реестра.
В оболочку PowerShell встроено свыше 100 команд. Можно создавать дополнительные команды, но при этом следует пользоваться языком стандарта .NET, таким как Visual Basic .NET или C#. В статьях о PowerShell речь будет идти только о встроенных командах. Каждый вариант команды представляет собой комбинацию «глагол-существительное»; объясняется это тем, что специалисты Microsoft хотели использовать единообразную схему именования и тем самым облегчить изучение, а также расширение оболочки PowerShell. Глагол указывает на действие, которое предстоит совершить, а существительное — на тип объекта, на который будет направлено действие. К примеру, команда Get-ChildItem считывает список элементов текущего рабочего каталога или контейнера, например реестра. Для выполнения команды нужно ввести ее в командной строке PowerShell и нажать клавишу ввода. Результаты отображаются под командной строкой. Вот и все, что требуется знать о выполнении элементарных команд.
Наверное, не во всех случаях известно, существует ли команда для решения задачи, которую предстоит выполнить, а иногда бывает трудно удержать в памяти имя той или иной команды. Список всех команд можно просмотреть, выполнив команду Get-Command. На экране 1 отображена часть этого списка; там можно увидеть имена команд и синтаксис, но не описание того, что именно делает соответствующая команда. Для получения этих сведений можно воспользоваться командой Get-Help.
Команды для получения справки
В комплект поставки PowerShell входит набор справочных файлов, к которым пользователь может обращаться напрямую из командного окна PowerShell с помощью команды Get-Help. Для получения справочной информации о той или иной команде нужно задействовать команду Get-Help с параметром -name. Вслед за этим параметром необходимо указать имя команды, информацию о которой требуется получить. Подобно параметрам команд процессора cmd.exe, параметры команд PowerShell предоставляют сведения, необходимые командам для выполнения их работы. Но в отличие от параметров команд в среде cmd.exe (которые могут начинаться с дефиса, косой черты или вообще не иметь предваряющего символа), параметры команд PowerShell всегда начинаются с дефиса, что служит еще одним подтверждением последовательности схемы именования, применяемой в PowerShell.
Теперь посмотрим, как все это работает. Обратимся к примеру. Одна из типичных задач системного администратора заключается в том, чтобы читать текстовые файлы. Просмотрев список команд, представленный командой Get-Command, вы приходите к выводу, что эту задачу может выполнить команда Get-Content, но уверенности у вас нет. Для отображения справочной информации о команде Get-Content нужно выполнить следующую команду:
Get-Help -name Get-Content
Как показано на экране 2, эта команда возвращает описание команды и сведения о синтаксисе. Команда возвращает содержимое элемента, которое в данном случае указывает на любой тип файла в системе. В прошлом администратору, возможно, пришлось бы воспользоваться командой For для работы с пакетными файлами или объектом File-SystemObject в сценарии Windows Script Host (WSH), но в среде PowerShell необходимо просто выполнять команду Get-Content. Чтобы получить более подробную информацию о синтаксисе, нужно добавить к команде параметр -full.
Get-Help -name Get-Content -full
Отметим, что параметр -full не принимает соответствующего значения. Параметры этого типа называются параметрами-переключателями, поскольку они как бы переключают линию поведения команд.
На экране 3 показана часть сведений, возвращенных этой командой. Администратору нужно будет прокрутить на своем компьютере окно или изменить его размеры так, чтобы можно было просмотреть все содержимое. В разделе PARAMETERS содержится информация, необходимая для того, чтобы включать в команду параметры. Обратите внимание на две важные категории информации для каждого параметра: Required и Position.
Сведения категории Required указывают на то, является данный параметр обязательным или факультативным. Когда переменная Required имеет значение true, параметр нужно включать в команду. Если же переменной Required задано значение false, данный параметр является факультативным.
Значение категории Position позволяет судить о том, нужно ли присваивать параметру имя или на него можно ссылаться по его позиции. Когда переменной Position присвоено значение named, из этого следует, что при ссылке на данный параметр необходимо указывать его имя. Когда же значение переменной Position выражено числом, на параметр можно ссылаться по его имени или просто указывать значение параметра в его корректной позиции.
К примеру, как показано на экране 3, при выполнении команды Get-Content требуется указывать параметр -path. Однако значение этого параметра можно указывать в первой позиции без ввода имени параметра, как в следующем примере:
Get-Content c:sample.txt
Если значение параметра содержит пробелы, такое значение следует заключать в кавычки.
В разделе PARAMETERS за именем каждого параметра следуют сведения, заключенные в угловые скобки (). Эти сведения указывают на тип данных, к которому должно относиться значение параметра. Как показано на экране 3, значение параметра -path должно быть строковым. Если за строкой слов следует набор скобок ([ ]), это означает, что в качестве значения параметра можно использовать строковый массив.
В случае использования параметров-переключателей, которые не принимают значений, данные будут иметь тип read. С таким типом данных определяется, к примеру, параметр -force команды Get-Content. Данный параметр отменяет ограничения, которые могли бы воспрепятствовать выполнению команды. Отмена происходит лишь в тех случаях, когда параметр включается в команду.
Следует отметить еще одну функцию PowerShell, имеющую отношение к параметрам, это функция автоматического завершения ввода комбинации «параметр-имя». Пользователь должен только ввести достаточное число букв, составляющих имя параметра, чтобы его можно было отличить от других параметров. Так, команда
Get-Content c:sample. txt -force
эквивалентна команде
Get-Content c:sample.txt -fo
Наряду со сведениями о параметрах, необходимыми для построения команд, справочный файл для команды Get-Content включает примеры, иллюстрирующие использование команды, полезные рекомендации в разделе Notes и ресурсы, где размещается дополнительная информация. Приятно отметить, что справочные файлы предусмотрены для всех команд — существуют даже справочные файлы с описанием общих концепций.
Получение справок по концепциям
В комплект поставки PowerShell входит набор справочных файлов, содержащих обзоры различных концепций. Каждый файл начинается с символов «about_» и заканчивается именем раздела. Для просмотра алфавитного списка разделов about запустите команду
Get-Help about*
Чтобы просмотреть информацию по конкретной теме, необходимо просто включить в значение параметра полное имя темы. К примеру, для считывания файла об управлении потоками данных необходимо выполнить команду
Get-Help about_flow_control
На экране 4 показана часть данных, которые могут быть получены в результате. Как мы видим, в файле содержится обзор действий, нацеленных на реализацию управления потоками данных в сценариях PowerShell.
Использование псевдонимов
Имена некоторых команд могут быть довольно длинными, а это не может не раздражать, если приходится раз за разом вводить команды с клавиатуры. К счастью, разработчики PowerShell предусмотрели возможность использования псевдонимов для обращения к командам. Псевдоним — альтернативное имя, которое обычно бывает намного короче, чем фактическое имя команды. PowerShell включает целый ряд встроенных псевдонимов, в дополнение к которым пользователи могут создавать собственные псевдонимы.
Чтобы просмотреть псевдонимы, доступные в ходе текущего сеанса, нужно запустить команду Get-Alias. Под текущим сеансом подразумевается текущее соединение с процессором PowerShell. При запуске PowerShell пользователь начинает новый сеанс работы; этот сеанс продолжается до тех пор, пока пользователь не закроет PowerShell, прерывая тем самым соединение. В дополнение ко всем встроенным псевдонимам и ассоциированным с ними командам, Get-Alias отображает все псевдонимы, созданные в ходе текущего сеанса, а также псевдонимы, заданные в профилях, которые представляют собой определяемые пользователем настройки конфигурации, загружаемые в PowerShell каждый раз при запуске оболочки. Профили мы рассмотрим в одной из следующих статей.
Если нужно просмотреть псевдонимы, ассоциированные с той или иной командой, точнее определите команду Get-Alias. К примеру, чтобы просмотреть псевдонимы, ассоциированные с Get-ChildItem, выполните команду
Get-Alias |
Where-Object {$_.definition `
–match «Get-ChildItem»}
Эта команда включает в себя несколько элементов, о которых я подробно расскажу на следующих уроках. Пока же необходимо знать только следующее: выходные данные команды Get-Alias направляются в команду Where-Object, где отфильтровываются все результаты, не соответствующие Get-ChildItem. Если вы хотите познакомиться с псевдонимами, выделенными для другой команды, замените имя Get-ChildItem именем этой команды.
Как показано на экране 5, PowerShell включает три псевдонима для обращения к команде Get-ChildItem, это gci, ls и dir. Вместо имени команды можно использовать любой из них. Таким образом, каждая из четырех следующих команд выдает список содержимого каталога C:Windows:
Get-ChildItem c:windows
dir c:windows
ls c:windows
gci c:windows
Для создания псевдонима в рамках текущего сеанса пользуйтесь командой Set-Alias. К примеру, чтобы создать псевдоним cnt для обращения к Get-Content, выполните команду
Set-Alias cnt Get-Content
После этого всякий раз, когда потребуется выполнить команду Get-Content, вы сможете использовать псевдоним cnt. Этим псевдонимом можно будет пользоваться до завершения сеанса (т.е. до закрытия оболочки PowerShell). Учтите, что при определении псевдонима возможность включения параметров не предусмотрена; можно использовать только имя команды. Если же вы хотите определить ссылку на команду и на ее параметры, следует создать специальную функцию.
Перспективы
Итак, на первом уроке я познакомил вас с фундаментальными компонентами, необходимыми для того, чтобы приступить к исследованию и использованию команд PowerShell, которые состоят из одной или из нескольких команд. В следующих статьях я расскажу о том, как использовать эти команды, а также о том, как создавать сценарии, позволяющие применять все имеющиеся в PowerShell возможности. Пока же просто начните работать с командами. С помощью справочного файла PowerShell создавайте команды и изучайте отдельные концепции. Экспериментируйте с различными параметрами и учитесь создавать, а также использовать псевдонимы. Пройдет совсем немного времени — и вы будете готовы задействовать PowerShell при выполнении своих повседневных задач.
Роберт Шелдон ([email protected] ) — технический консультант и автор большого количества книг по технологиям Microsoft Windows и базам данных
Учебное пособие по PowerShell — Javatpoint
следующий → Учебное пособие по PowerShell содержит базовые и расширенные концепции PowerShell. Наше руководство по PowerShell предназначено как для начинающих, так и для профессионалов. Windows PowerShell — это оболочка командной строки и связанный с ней язык сценариев, созданные Microsoft. Он построен на платформе .NET. Команды в Windows PowerShell называются cmdlets , которые позволяют управлять компьютером из командной строки. Наш учебник по PowerShell включает все темы PowerShell, такие как сценарии PowerShell, переменные, массивы, циклы, команды, включая объекты и классы. Что такое PowerShellWindows PowerShell — это автоматизированная оболочка командной строки на основе задач и связанный с ней язык сценариев, созданный Microsoft. Это новая оболочка Microsoft , которая сочетает в себе старую функциональность командной строки (CMD) с новым набором инструкций для сценариев со встроенными функциями системного администрирования. Разработан специально для системных администраторов. Его аналог в ОС Linux называется Bash-скриптингом. В отличие от других оболочек, которые принимают и возвращают текст, он построен на основе .NET framework, CLR (Common Language Runtime) и DLR (Dynamic Language Runtime) . Таким образом, он может принимать и возвращать объекты .NET Framework. Это помогает ИТ-специалистам контролировать и автоматизировать администрирование операционной системы Windows и других приложений, работающих в среде сервера Windows. PowerShell позволяет администраторам выполнять задачи в удаленной и локальной системе Windows благодаря полному доступу к COM и WMI. Команды в Windows PowerShell называются командлетами, произносится как «командлеты», где каждый командлет представляет определенную функцию или сценарий на основе задачи. Как и многие другие оболочки, он дает нам доступ к файловой системе в системе компьютера. Кроме того, поставщики Windows PowerShell позволяют нам получить доступ к другим хранилищам данных, таким как реестр и хранилища сертификатов цифровой подписи. Зачем использовать PowerShell?
Для запуска Windows PowerShellPowerShell доступен во всех последних версиях Windows. Нам нужно запустить PowerShell, выполнив указанные шаги: 1. Найдите Windows PowerShell. Выберите и нажмите. 2. Откроется окно PowerShell. Преимущества PowerShellВот несколько преимуществ PowerShell:
Недостатки PowerShellВот несколько недостатков PowerShell:
Обязательное условиеПрежде чем изучать PowerShell, вы должны иметь базовые знания о компьютерах и операционной системе Windows. АудиторияЭтот учебник полезен для тех студентов, изучающих информатику, которые хотят научиться контролировать и автоматизировать администрирование операционной системы Windows и других приложений. ПроблемыМы заверяем, что вы не найдете никаких проблем с этим руководством по PowerShell. Но если есть какая-либо ошибка, пожалуйста, сообщите о проблеме в контактной форме. Следующая тема Возможности PowerShell следующий → |
Учебное пособие по PowerShell: основы сценариев PowerShell
Иллюстрация: Лиза Хорнунг
Microsoft PowerShell, обычно называемая Windows PowerShell, предлагает удобный способ автоматизации различных рутинных операций независимо от того, работаете ли вы на Windows Server или на рабочей станции Windows.
Системным администраторам было бы полезно изучить этот язык сценариев в качестве навыка, с помощью которого можно автоматизировать задачи, особенно повторяющиеся, и разрабатывать расширенные административные задачи, чтобы облегчить их рабочую нагрузку и выполнять операции с помощью предсказуемых, проверенных команд. Эти команды можно запускать на локальных или удаленных системах с помощью функции удаленного взаимодействия PowerShell, например, для внесения обновлений в реестр Windows на нескольких системах.
ПОСМОТРЕТЬ: Сравнение функций: программное обеспечение и системы учета рабочего времени (ТехРеспублика Премиум)
Подробнее о программном обеспечении
Получите Microsoft Office Pro и пожизненный доступ к 5 лучшим приложениям за 59,99 долларов США.
Как вернуть первое и последнее время из временных меток в Microsoft Excel
Контрольный список: развертывание приложений и служб Microsoft 365 на компьютерах Mac
Google Workspace и Microsoft 365: параллельный анализ
PowerShell не совсем похож на языки программирования, которые вы привыкли использовать в IDE, таких как Visual Studio Code, также известный как VS Code. Переменные PowerShell, командлеты, модули и поставщики являются основой и представляют собой мощные инструменты PowerShell, помогающие выполнять работу.
- Переменная — это термин, обозначающий конкретное значение для удобства ссылки и повторного использования.
- Командлет — это встроенная команда PowerShell (командлет Get является одним из наиболее распространенных и имеет несколько применений, таких как получение существующих параметров или обращение за помощью с помощью командлета get-help).
- Модуль — это пакет, содержащий несколько объектов, таких как командлеты, переменные и т. д.
- Провайдер — это программа .NET, которая обеспечивает доступ к такой информации, как реестр, псевдонимы, функции, переменные, файловые системы и общая среда операционной системы.
Windows PowerShell, которая работает исключительно в ОС Windows, дополнена PowerShell Core, которая представляет собой расширенную версию, способную работать в операционных системах Windows, Mac и Linux так же, как это делает Visual Studio Code.
Это руководство по написанию сценариев Windows PowerShell, предназначенное для начинающих, чтобы проиллюстрировать основы создания сценариев, чтобы помочь новичкам, когда они начинают работать с существующими сценариями Windows PowerShell или командлетами PowerShell или создавать новые.
Вы можете запустить Windows PowerShell из меню «Пуск» в папке Windows PowerShell, чтобы сориентироваться в использовании этого руководства по PowerShell. Две программы для работы — это Windows PowerShell и Windows PowerShell ISE (интегрированная среда сценариев). Первый исполняемый файл — это интерфейс командной строки, а второй — интерфейс на основе графического интерфейса, который выглядит следующим образом:
Я предпочитаю использовать Windows PowerShell ISE для сценариев PowerShell, поскольку он предоставляет окно консоли PowerShell, позволяющее использовать функции командной строки, а также удобную ленту панели инструментов и ссылки на команды, перечисленные справа, которые можно щелкнуть, чтобы вставить команды PowerShell, а также узнать о них больше. .
Обратите внимание, что исполняемые файлы по умолчанию являются 64-разрядными, но в этой папке можно найти 32-разрядную версию PowerShell для обеспечения обратной совместимости.
1. Файлы PS1
Синтаксис
PowerShell может показаться немного сложным для новичка, поэтому давайте начнем с основ сценариев, которые также называются файлами PS1. Сценарий Windows PowerShell на самом деле представляет собой не что иное, как простой текстовый файл, который можно запустить либо в Windows PowerShell, либо в Windows PowerShell ISE. Язык сценариев PowerShell работает путем выполнения серии команд PowerShell (или одной), причем каждая команда отображается в отдельной строке. Чтобы текстовый файл рассматривался как сценарий PowerShell, его имя должно заканчиваться на .PS1, чтобы обозначать расширение PowerShell.
Самый простой пример PowerShell — это файл с именем Datecheck.ps1, который содержит следующую запись:
Дата получения
Запустив это, вы получите вывод, аналогичный следующему:
Вторник, 10 мая 2022 г. , 15:20:04
2. Разрешения на выполнение
Чтобы предотвратить выполнение вредоносных сценариев, PowerShell применяет политику выполнения. По умолчанию для политики выполнения установлено значение Restricted, что означает, что сценарии PowerShell не будут выполняться. Вы можете определить текущую политику выполнения с помощью следующего командлета:
Get-ExecutionPolicy
Вы можете использовать следующие политики выполнения:
- Restricted – Скрипты не запускаются.
- RemoteSigned — Сценарии, созданные локально, будут выполняться, а загруженные из Интернета — нет (если они не имеют цифровой подписи доверенного издателя).
- AllSigned — сценарии будут выполняться только в том случае, если они подписаны доверенным издателем.
- Без ограничений – Сценарии будут выполняться независимо от того, откуда они получены и подписаны ли они.
Вы можете установить политику выполнения PowerShell с помощью следующего командлета:
Set-ExecutionPolicy <имя политики>
Примечание: при вводе в командной строке PowerShell вы можете ввести часть команды и нажать Tab, чтобы автоматически заполнить остальную часть (или показать несколько вариантов, соответствующих тому, что вы ввели). Например, ввод Set-Ex и нажатие Tab автоматически заполнит всю команду Set-ExecutionPolicy и сэкономит вам время.
3. Запуск скрипта
В течение многих лет, если вы хотели запустить исполняемый файл из командной строки, практика заключалась в том, чтобы перейти к пути к файлу, а затем ввести имя исполняемого файла. Однако этот старый метод не работает для сценариев PowerShell.
Если вы хотите выполнить сценарий PowerShell, вам обычно придется ввести полный путь вместе с именем файла. Например, чтобы запустить сценарий с именем SCRIPT.PS1, введите:
.
C:\Scripts\Script.ps1
Большим исключением является то, что вы можете выполнить сценарий, просто введя его имя, если папка, содержащая сценарий, находится в системном пути. Существует также ярлык, который вы можете использовать, если вы уже находитесь в папке, содержащей скрипт. Вместо того, чтобы вводить полный путь к скрипту в такой ситуации, вы можете ввести .\ и имя скрипта. Например, вы можете ввести:
.\Script.ps1
4. Трубопровод
Конвейерная обработка — это термин, обозначающий передачу вывода одной команды в другую команду. Это позволяет второй команде воздействовать на полученный ввод. Чтобы передать две команды (или командлеты), просто разделите их вертикальной чертой (|).
Чтобы помочь вам понять, как работает конвейерная обработка, представьте, что вы хотите создать список процессов, запущенных на сервере, и отсортировать этот список по идентификационному номеру процесса. Вы можете получить список процессов с помощью командлета Get-Process, но этот список не будет отсортирован. Однако если вы направите выходные данные командлета в команду Sort-Object ID, список будет отсортирован. Строка используемых команд выглядит так:
Процесс получения | Идентификатор объекта сортировки
5.
Переменные
Хотя вы можете использовать конвейерную обработку для подачи вывода одной команды в другую команду, иногда одной конвейерной обработки недостаточно. Когда вы передаете выходные данные команды в другую команду, эти выходные данные используются немедленно. Иногда вам может потребоваться сохранить выходные данные на некоторое время, чтобы вы могли использовать (или повторно использовать) их позже. Здесь может помочь переменная PowerShell.
Легко представить переменную как репозиторий для хранения значения, но в PowerShell переменная может хранить полный вывод команды. Например, предположим, что вы хотите сохранить список процессов, запущенных на сервере, в виде переменной. Для этого вы можете использовать эту строку кода:
$a = Процесс получения
Здесь переменная называется $a. Если вы хотите использовать переменную, просто вызовите ее по имени. Например, ввод $a выводит содержимое переменной на экран.
Вы можете назначить переменную для конечного вывода нескольких команд, которые были объединены в конвейер. Просто заключите команды в круглые скобки. Например, чтобы отсортировать запущенные процессы по идентификатору процесса, а затем назначить результат переменной, вы можете использовать эту команду:
$a = (Get-Process | Sort-Object ID)
Запуск команды «echo $a» приведет к выполнению команды, которую вы присвоили переменной.
6. Символ @
Используя символ @, вы можете преобразовать содержимое списка в массив. Например, возьмите следующую строку кода, которая создает переменную с именем $Procs, содержащую несколько строк текста (массив):
.
$procs = @{name="explorer","svchost"}
Вы также можете использовать символ @ при использовании переменной, чтобы убедиться, что она обрабатывается как массив, а не как одно значение. Например, строка кода ниже запустит командлет Get-Process для переменной, которую я только что определил. При этом Windows отобразит все процессы, используемые Windows Explorer и Svchost. Обратите внимание, что перед именем переменной используется символ @, а не знак доллара, который мы обычно видим:
Процесс получения @procs
7.
Сплит
Оператор разделения разделяет текстовую строку на основе указанного вами символа. Например, предположим, что вы хотите разбить предложение на массив, состоящий из каждого отдельного слова в предложении. Вы можете сделать это с помощью такой команды:
"Это тест" - сплит " "
Результат будет выглядеть так:
Это
это
и
тест
8. Присоединяйтесь к
Точно так же, как функция split может разделить текстовую строку на несколько частей, оператор соединения может объединить несколько блоков текста в один. Например, эта строка создаст текстовую строку, состоящую из моего имени и фамилии:
.
"Скотт", "Маттесон" - соединение " "
Пробел между кавычками в конце команды сообщает Windows о необходимости вставить пробел между двумя текстовыми строками.
9. Точки останова
Запуск только что созданного сценария PowerShell может иметь непредвиденные последствия, если сценарий содержит ошибки. Один из способов защитить себя — вставить точки останова в стратегически важных местах вашего сценария. Таким образом, вы можете убедиться, что сценарий работает должным образом, прежде чем обрабатывать его целиком.
Самый простой способ вставить точку останова — по номеру строки. Например, чтобы вставить точку останова в 10-ю строку скрипта, вы можете использовать такую команду:
Set-PSBreakpoint -Script C:\Scripts\Script.ps1 -Line 10
Вы также можете привязать точку останова к переменной. Так что, если вы хотите, чтобы ваш скрипт ломался всякий раз, когда содержимое a$ изменялось, вы могли бы использовать команду, подобную этой:
Set-PSBreakpoint -Script C:\scripts\Script.ps1 -переменные a
Обратите внимание, что я не поставил знак доллара после имени переменной.
Существует ряд команд, которые можно использовать с PSBreakpoint, включая Get, Enable, Disable и Remove.
10. Шаг
При отладке скрипта иногда может потребоваться запустить скрипт построчно.