Выполнение команд PowerShell
Как отмечалось ранее, команды PowerShell называются командлетами. Командлеты группируются в модули PowerShell, которые можно загружать по требованию. Командлеты могут быть написаны на любом компилируемом языке .NET или на собственном языке скриптов PowerShell.
Команды PowerShell, которые активируют выполнение других команд
Оператор вызова PowerShell () позволяет выполнять команды, хранящиеся в переменных и представленные строками или блоками скриптов. С его помощью можно выполнять любые собственные команды или команды PowerShell. Такая возможность полезна в скрипте, если нужно динамически создавать параметры командной строки для собственной команды. Дополнительные сведения см. в разделе .
С помощью командлета можно выполнять собственные команды, но его следует использовать, только если нужно управлять выполнением команды. В командлете есть параметры для поддержки следующих сценариев:
- выполнение команды с использованием разных учетных данных;
- скрытие окна консоли, созданного новым процессом;
- перенаправление потоков stdin, stdout и stderr;
- использование другой рабочей папки для команды.
В следующем примере выполняется собственная команда с перенаправленными потоками ввода и вывода.
Дополнительные сведения см. в статье Start-Process.
В Windows командлет выполняет действие по умолчанию для указанного элемента. Например, он запускает исполняемый файл или открывает файл документа с использованием приложения, связанного с этим типом файла. Действие по умолчанию зависит от типа элемента и разрешается поставщиком PowerShell, который предоставляет доступ к элементу.
В следующем примере в веб-браузере по умолчанию открывается репозиторий исходного кода PowerShell.
Windows PowerShell как калькулятор
В командной строке PowerShell можно вычислять выражения, то есть пользоваться командной строкой как калькулятором (в оболочке cmd.exe эта возможность отсутствовала).
PS C:\> 2+9 11
Результат сразу появляется на экране и нет нужды использовать для вычислений дополнительные команды. В командной строке можно также вычислять значения с плавающей точкой:
PS C:\> 203 6,66666666666667
PowerShell способен выполнять и более сложные математические вычисления. Например вычисление квадратного корня из числа 327:
PS I:\> System.Math::Sqrt(327) 18,0831413200251
В этом примере используется метод Sqrt() класса System.Math Результаты вычислений можно сохранять в переменную и пользоваться ими в рамках текущей сессии:
$a=302 $a 15 $a*10 15050
Как написать скрипт
Скрипт может содержать любые допустимые команды PowerShell, включая отдельные команды, команды, использующие конвейер, функции и структуры управления, такие как операторы If и циклы For.
Чтобы написать скрипт, откройте новый файл в текстовом редакторе, введите команды и сохраните их в файле с допустимым именем файла с расширением файла.
В следующем примере показан простой сценарий, который получает службы, работающие в текущей системе, и сохраняет их в файл журнала. Имя файла журнала создается с текущей даты.
Чтобы создать этот скрипт, откройте текстовый редактор или редактор скриптов, введите эти команды и сохраните их в файле с именем .
Параметры в скриптах
Чтобы определить параметры в скрипте, используйте инструкцию Param. Оператор должен быть первым оператором в скрипте, за исключением комментариев и любых операторов.
Параметры скрипта работают как параметры функции. Значения параметров доступны для всех команд в скрипте. Все функции параметров функции, включая атрибут Parameter и его именованные аргументы, также допустимы в скриптах.
При запуске скрипта пользователи скрипта вводит параметры после имени скрипта.
В следующем примере показан сценарий с параметром ComputerName . Обе функции скрипта могут получить доступ к значению параметра ComputerName .
Чтобы запустить этот скрипт, введите имя параметра после имени скрипта. Пример:
Дополнительные сведения об операторе Param и параметрах функции см. в about_Functions и about_Functions_Advanced_Parameters.
Написание справки по скриптам
Раздел справки для сценария можно написать с помощью одного из двух следующих методов:
-
Comment-Based справку по скриптам
-
XML-Based справку по скриптам
Создайте раздел справки на основе XML, например тип, который обычно создается для командлетов. При переводе разделов справки на несколько языков требуется справка на основе XML.
Чтобы связать скрипт с разделом справки на основе XML, используйте .. Ключевое слово comment externalHelp Help. Дополнительные сведения о ключевом слове ExternalHelp см. в about_Comment_Based_Help. Дополнительные сведения о справке на основе XML см. в статье «Написание справки по командлетам».
Возвращение значения выхода
По умолчанию скрипты не возвращают состояние выхода при завершении скрипта. Для возврата кода выхода из скрипта необходимо использовать инструкцию. По умолчанию инструкция возвращает . Вы можете указать числовое значение, чтобы вернуть другое состояние выхода. Код выхода, отличный от нуля, обычно сигнализирует о сбое.
В Windows любое число между и разрешено.
В Unix разрешены только положительные числа от (0) до (255). Отрицательное число в диапазоне отсчета автоматически преобразуется в положительное число путем добавления 256. Например, преобразуется в .
В PowerShell инструкция задает значение переменной . В командной оболочке Windows (cmd.exe) инструкция exit задает значение переменной среды.
Любой аргумент, который не является числовым или за пределами диапазона, зависящее от платформы, преобразуется в значение .
Копирование элементов
Если вы знакомы с операциями копирования в других оболочках, поведение командлета в PowerShell может оказаться необычным. При копировании элемента из одного расположения в другое не копирует его содержимое по умолчанию.
Например, если скопировать каталог с диска C: в каталог, команда будет выполнена успешно, но файлы в каталоге New.Directory не будут скопированы.
Если отобразить содержимое , там не будет файлов:
Почему командлет не копирует содержимое в новое расположение?
Командлет был разработан как универсальный; он предназначен не только для копирования файлов и папок.
Кроме того, даже при копировании файлов и папок может потребоваться копировать только контейнер без элементов внутри него.
Чтобы скопировать все содержимое папки, включите параметр Recurse командлета в команду. Если вы уже скопировали каталог без содержимого, добавьте параметр Force, который позволит перезаписать пустую папку.
Остановка процессов
PowerShell обеспечивает гибкость при перечислении процессов, но как насчет остановки процесса?
Командлет принимает имя или идентификатор , чтобы указать процесс, который необходимо остановить. Возможность остановки процессов зависит от ваших разрешений. Некоторые процессы не могут быть остановлены. Например, при попытке остановить неактивный процесс возникает ошибка:
Можно также принудительно вывести запрос с помощью параметра Confirm. Этот параметр особенно удобен, если при указании имени процесса используется подстановочный знак, так как вы можете случайно сопоставить некоторые процессы, которые не нужно останавливать:
Сложную обработку процессов можно реализовать с помощью командлетов фильтрации объектов. Так как объект Process имеет свойство Responding , которое имеет значение true, если он больше не отвечает, вы можете остановить все неотвечивые приложения с помощью следующей команды:
Аналогичный подход возможен и в других ситуациях. Предположим, например, что приложение дополнительной области уведомлений запускается автоматически при открытии другого приложения. Вы можете обнаружить, что это не работает правильно в сеансах служб терминалов, но вы по-прежнему хотите сохранить его в сеансах, которые выполняются на консоли физического компьютера. Сеансы, подключенные к рабочему столу физического компьютера, всегда имеют идентификатор сеанса 0, поэтому можно остановить все экземпляры процесса, находящиеся в других сеансах, с помощью и SessionId процесса:
Командлет не имеет параметра ComputerName . Поэтому для выполнения команды остановки процесса на удаленном компьютере необходимо использовать командлет . Например, чтобы остановить процесс PowerShell на удаленном компьютере Server01, введите:
Работа с журналами сообщений
После настройки систем и сервисов роль админа сводится к наблюдению за их правильной работой и отслеживанию текущих параметров. В PS заложен целый ряд *-Eventlog командлетов, позволяющих легко считать записи в журнале событий как на локальной, так и удаленной системе. Данные легко сортируются и отбираются по нужным критериям. Например, чтобы вывести только последние события из журнала безопасности на двух компьютерах, используем параметр «Nevest» с указанием числового аргумента:
Теперь выведем только события, имеющие определенный статус:
А вот так можно собрать все данные об успешной регистрации пользователей (события с EventID=4624):
Получение справки Windows PowerShell
Краткую справку по командлетам Windows PowerShell можно получить введя «-?» сразу после имени командлета, более подробную информацию о командлете можно получить при помощи команд help или get-help с ключами -detailed или -full. При использовании ключа -detailed некоторые технические детали опускаются.
help -full ConvertTo-Html ИМЯ ConvertTo-Html ОПИСАНИЕ Преобразует объекты Microsoft .NET Framework в код HTML, который может отображаться в веб-браузере. СИНТАКСИС ConvertTo-Html -Head <string> -Title <string> -Body <string> -CssUri <Uri> -Property <Object> -As <string> -InputObject <psobject> -PostContent <string> -PreContent <string> <CommonParameters> ConvertTo-Html -Fragment -Property <Object> -As <string> -InputObject <psobject> -PostContent <string> -PreContent <string> <CommonParameters> ОПИСАНИЕ Командлет ConvertTo-Html преобразует объекты .NET Framework в код HTML, который может отображаться в веб-браузере. Этот командлет можно использовать для вывода результатов выполнения команды на веб-страницу. Параметры командлета ConvertTo-Html позволяют выбирать свойства объектов, задавать формат таблиц или списков, определять заголовок HTML-страницы, добавлять текст перед объектом и после него, а также возвращать только фрагмент с таблицей или списком, а не полную страницу. При передаче командлету ConvertTo-Html нескольких объектов Windows PowerShell создает таблицу (или список) на основании свойств первого переданного объекта. Если у оставшихся объектов нет одного из указанных свойств, то значению этого свойства для такого объекта будет соответствовать пустая ячейка. Если же у оставшихся объектов имеются дополнительные свойства, значения этих свойств будут проигнорированы. ПАРАМЕТРЫ ............................ -Body Задает текст для добавления после открывающего тега . По умолчани ю в этом месте нет текста. Требуется? false Позиция? 4 Значение по умолчанию Нет текста. Принимать входные данные конвейера?false Принимать подстановочные знаки?false
Как видим некоторые параметры командлетов например как «-Body» требуют ввода атрибутов (значений), в полной справке с ключом «-full» даётся пояснение про их использование:
- Требуется? — Указывает, будет ли командлет выполнятся при отсутствии этого параметра. Если значение True, значит параметр обязателен. Если он не указан, система запросит его значение
- Позиция? — Показывает, используется ли параметр как именованный или позиционный (под номером). Позиционные параметры должны появляться в указанном месте команды. Если 0 или named, это значит, что при задании значения параметра необходимо указывать его имя. Если атрибут Позиция? имеет целое ненулевое значение, то имя параметра можно не указывать, в этом случае это так званый позиционный параметр. Например, «2» означает, что при отсутствии имени параметра этот параметр должен быть вторым. Если используется имя параметра, параметр может располагаться в любом месте команды.
- Значение по умолчанию — Содержит значение по умолчанию, в случае когда значение не определено явно. Часто обязательным параметрам, так же как и многим необязательным, никогда не присваивается значение по умолчанию. Например, многие команды, чьим входным значением является параметр -path, при отсутствии значения используют текущее местоположение.
- Принимать входные данные конвейера? — Показывает, можно ли (да) или нельзя (нет) посылать объекты в этот параметр по конвейеру. «По имени свойства» означает, что конвейеризованный объект должен иметь свойство с тем же именем, что и имя данного параметра.
- Принимать подстановочные знаки? — Показывает, может ли значение параметра включать подстановочные знаки, такие как «*» и «?».
Можно также получить справку не связанную с командлетами. Для просмотра всех доступных разделов справки используйте команду: Список тем обсуждение которых представлено в справочной службе Windows PowerShell, можно увидеть с помощью команды:
Отметим, что Get-Help выводит содержимое раздела справки на экран сразу целиком. man и help позволяют выводить справочную информацию поэкранно, аналогично команде more интерпретатора cmd.exe.
Аналог cat, tail и head в PowerShell
В Linux имеется несколько команд для чтения файла:
- cat — считывает весь файл
- tail — считывает указанное количество строк (по умолчанию 10) от конца файла
- head — считывает указанное количество строк (по умолчанию 10) от начала файла
Для всего этого в PowerShell используется командлет Get-Content.
Пример считывания содержимого файла C:\PS\InstalledRoles.csv (при этом содержимое будет передано по конвейеру или если это последний командлет, то будет выведено в стандартный вывод, на экран):
Get-Content C:\PS\InstalledRoles.csv
Командлет Get-Content получает содержимое элемента не только файлов, но также может получить содержимое функции. Для файлов содержимое считывается по одной строке за раз и возвращает набор объектов, каждый из которых представляет собой строку содержимого.
Начиная с PowerShell 3.0, Get-Content может также получать указанное количество строк от начала или до конца элемента.
Для последующих примеров создадим текстовый файл, в который запишем перечень папок и файлов текущей директории:
Get-ChildItem > current_dir.txt
Подробное описание
Поставщик FileSystem PowerShell позволяет получать, добавлять, изменять, очищать и удалять файлы и каталоги в PowerShell.
Диски FileSystem — это иерархическое пространство имен, содержащее каталоги и файлы на компьютере. Диск FileSystem может быть логическим или физическим диском, каталогом или сопоставленным сетевым ресурсом.
Начиная с PowerShell версии 7.0, вызываемая диск сопоставляется с временным путем к каталогу пользователя. PowerShell использует метод GetTempPath() .NET для определения расположения временной папки. В Windows расположение совпадает с расположением. В системах, отличных от Windows, расположение совпадает с расположением или если переменная среды не определена.
Поставщик FileSystem поддерживает следующие командлеты, описанные в этой статье.
- Get-Location
- Set-Location
- Get-Item
- Get-ChildItem
- Invoke-Item
- Move-Item
- New-Item
- Remove-Item
- Get-ItemProperty
- Set-ItemProperty
- Clear-Item
- Clear-ItemProperty
- Remove-Item
- Remove-ItemProperty
- Get-Acl
- Set-Acl
- Get-AuthenticodeSignature
- Set-AuthenticodeSignature
Команды диагностики
PowerShell использует класс System.Management.Automation.VerbsDiagnostic для определения действий, которые применяются к обработке данных. В следующей таблице перечислено большинство определенных команд.
Команда (псевдоним) | Действие | Неподходящие синонимы |
---|---|---|
Debug (db) | Изучает ресурс для диагностики проблем в работе. | Диагностика |
Measure (ms) | Определяет ресурсы, используемые указанной операцией, или получает статистику по ресурсу. | Calculate, Determine, Analyze |
Ping (pi) | Не рекомендуется — используйте команду теста. | |
Repair (rp) | Восстанавливает ресурс в пригодном для использования состоянии. | Fix, Restore |
Resolve (rv) | Сопоставляет сокращенное представление ресурса с более полным представлением. | Expand, Determine |
Test (t) | Проверяет операцию или согласованность ресурса. | Diagnose, Analyze, Salvage, Verify |
Trace (tr) | Отслеживает действия ресурса. | Track, Follow, Inspect, Dig |
Как написать скрипт
Скрипт может содержать любые допустимые команды PowerShell, включая отдельные команды, команды, использующие конвейер, функции и структуры управления, такие как операторы If и циклы For.
Чтобы написать скрипт, откройте новый файл в текстовом редакторе, введите команды и сохраните их в файле с допустимым именем файла с расширением файла.
В следующем примере показан простой сценарий, который получает службы, работающие в текущей системе, и сохраняет их в файл журнала. Имя файла журнала создается с текущей даты.
Чтобы создать этот скрипт, откройте текстовый редактор или редактор скриптов, введите эти команды и сохраните их в файле с именем .
Параметры в скриптах
Чтобы определить параметры в скрипте, используйте инструкцию Param. Оператор должен быть первым оператором в скрипте, за исключением комментариев и любых операторов.
Параметры скрипта работают как параметры функции. Значения параметров доступны для всех команд в скрипте. Все функции параметров функции, включая атрибут Parameter и его именованные аргументы, также допустимы в скриптах.
При запуске скрипта пользователи скрипта вводит параметры после имени скрипта.
В следующем примере показан сценарий с параметром ComputerName . Обе функции скрипта могут получить доступ к значению параметра ComputerName .
Чтобы запустить этот скрипт, введите имя параметра после имени скрипта. Пример:
Дополнительные сведения об операторе Param и параметрах функции см. в about_Functions и about_Functions_Advanced_Parameters.
Написание справки по скриптам
Раздел справки для сценария можно написать с помощью одного из двух следующих методов:
-
Comment-Based справку по скриптам
-
XML-Based справку по скриптам
Создайте раздел справки на основе XML, например тип, который обычно создается для командлетов. При переводе разделов справки на несколько языков требуется справка на основе XML.
Чтобы связать скрипт с разделом справки на основе XML, используйте .. Ключевое слово comment externalHelp Help. Дополнительные сведения о ключевом слове ExternalHelp см. в about_Comment_Based_Help. Дополнительные сведения о справке на основе XML см. в статье «Написание справки по командлетам».
Возвращение значения выхода
По умолчанию скрипты не возвращают состояние выхода при завершении скрипта. Для возврата кода выхода из скрипта необходимо использовать инструкцию. По умолчанию инструкция возвращает . Вы можете указать числовое значение, чтобы вернуть другое состояние выхода. Код выхода, отличный от нуля, обычно сигнализирует о сбое.
В Windows любое число между и разрешено.
В Unix разрешены только положительные числа от (0) до (255). Отрицательное число в диапазоне отсчета автоматически преобразуется в положительное число путем добавления 256. Например, преобразуется в .
В PowerShell инструкция задает значение переменной . В командной оболочке Windows (cmd.exe) инструкция exit задает значение переменной среды.
Любой аргумент, который не является числовым или за пределами диапазона, зависящее от платформы, преобразуется в значение .
Как получить справку о команде PowerShell
Чтобы получить справку по командлету выполните команду:
Get-Help КОМАНДЛЕТ
Например:
Get-Help Get-Module
Чтобы посмотреть примеры использования команды:
Get-Help КОМАНДЛЕТ -Examples
Следующая конструкция также выводит примеры использования КОМАНДЛЕТА, но вывод чуть отличается (в выводе, отсутствует название и синопсис):
(Get-Help КОМАНДЛЕТ).examples
Для вывода дополнительной информации используйте:
Get-Help КОМАНДЛЕТ -Detailed
Чтобы получить техническую информацию (полную справку), используйте команду вида:
Get-Help КОМАНДЛЕТ -Full
Справка PowerShell описывает командлеты, функции, сценарии и модули PowerShell и объясняет концепции, включая элементы языка PowerShell.
PowerShell не включает файлы справки, но вы можете прочитать разделы справки в Интернете или использовать командлет Update-Help для загрузки файлов справки на свой компьютер, а затем использовать командлет Get-Help для отображения разделов справки в командной строке.
Вы также можете использовать командлет Update-Help для загрузки обновлённых файлов справки по мере их выпуска, чтобы ваш локальный справочный контент никогда не устарел.
Без файлов справки Get-Help отображает автоматически созданную справку для командлетов, функций и сценариев.
Онлайн помощь
Вы можете найти справку по PowerShell в Интернете по адресу https://go.microsoft.com/fwlink/?LinkID=108518.
Чтобы открыть онлайн справку для любого командлета или функции, введите:
Get-Help КОМАНДЛЕТ -Online
В результате будет открыт веб-браузер со страницей документации по интересующей вас команде.
Выполнение команд PowerShell
Как отмечалось ранее, команды PowerShell называются командлетами. Командлеты группируются в модули PowerShell, которые можно загружать по требованию. Командлеты могут быть написаны на любом компилируемом языке .NET или на собственном языке скриптов PowerShell.
Команды PowerShell, которые активируют выполнение других команд
Оператор вызова PowerShell () позволяет выполнять команды, хранящиеся в переменных и представленные строками или блоками скриптов. С его помощью можно выполнять любые собственные команды или команды PowerShell. Такая возможность полезна в скрипте, если нужно динамически создавать параметры командной строки для собственной команды. Дополнительные сведения см. в разделе .
С помощью командлета можно выполнять собственные команды, но его следует использовать, только если нужно управлять выполнением команды. В командлете есть параметры для поддержки следующих сценариев:
- выполнение команды с использованием разных учетных данных;
- скрытие окна консоли, созданного новым процессом;
- перенаправление потоков stdin, stdout и stderr;
- использование другой рабочей папки для команды.
В следующем примере выполняется собственная команда с перенаправленными потоками ввода и вывода.
Дополнительные сведения см. в статье Start-Process.
В Windows командлет выполняет действие по умолчанию для указанного элемента. Например, он запускает исполняемый файл или открывает файл документа с использованием приложения, связанного с этим типом файла. Действие по умолчанию зависит от типа элемента и разрешается поставщиком PowerShell, который предоставляет доступ к элементу.
В следующем примере в веб-браузере по умолчанию открывается репозиторий исходного кода PowerShell.
Работа с объектами
Так как PowerShell работает с объектами, он позволяет выполнять некие действия над этими объектами, например:
- Measure-Object – командлет позволяет рассчитывать на основе свойств объектов такие числовые агрегирующие параметры как: минимальное, максимальное, среднее значение, сумму и количество. Например, Вы хотите узнать максимальный или средний размер файла в определенном каталоге, или просто узнать количество файлов (запущенных процессов, служб и так далее);
- Select-Object – с помощью данного командлета можно выбрать определенные объекты или свойства этих объектов, например Вы хотите выводить только название файла и его размер;
- Sort-Object — сортирует объекты по значениям свойств;
- Where-Object – командлет для того чтобы ставить условие для выборки объектов на основе значений их свойств;
- Group-Object – группирует объекты, которые содержат одинаковое значение для заданных свойств;
- ForEach-Object – перебор объектов с целью выполнения определенной операции над каждым из этих объектов.
Примеры
Пример 1. Запуск процесса, использующего значения по умолчанию
В этом примере запускается процесс, использующий файл в текущей папке. Команда использует все значения по умолчанию, включая стиль окна по умолчанию, рабочую папку и учетные данные.
Пример 3. Запуск процесса сортировки элементов в новый файл
В этом примере запускается процесс, который сортирует элементы в файле и возвращает отсортированные элементы в файлах . Все ошибки записываются в файл. Параметр UseNewEnvironment указывает, что процесс выполняется с собственными переменными среды.
В этом примере используется сплаттинг для передачи параметров командлету . Дополнительные сведения см. в разделе about_Splatting.
Пример 6. Использование разных команд для запуска процесса
В этом примере показано, как найти команды, которые можно использовать при запуске процесса. Доступные команды определяются расширением имени файла, который запускается в процессе.
В примере используется для создания объекта System.Diagnostics.ProcessStartInfo для , файла, который выполняется в процессе PowerShell. Свойство Verbs объекта ProcessStartInfo показывает, что команды Open и можно использовать с или с любым процессом, выполняющим файл.
Пример 7. Указание аргументов для процесса
Обе команды запускают интерпретатор команд Windows, выдавая команду в папке
Так как это имя папки содержит пробел, значение должно быть заключено в экранированные кавычки.
Обратите внимание, что первая команда указывает строку как ArgumentList. Вторая команда представляет собой массив строк
В Windows можно запустить , чтобы запустить процесс с повышенными разрешениями.
Это повышает уровень контекста текущего пользователя. Параметр Credential позволяет указать альтернативное имя пользователя и пароль, что позволяет запустить процесс в другом пользовательском содержимом.
Однако параметры Credential и Verb нельзя использовать вместе.
Чтобы запустить процесс с повышенными правами, используя альтернативные учетные данные, необходимо сначала запустить PowerShell с помощью альтернативных учетных данных, а затем использовать для запуска процесса с повышенными правами.
Пример начинается с повышенных разрешений из сеанса PowerShell, который выполняется с альтернативными учетными данными.
Пример 9. Создание отсоединяемого процесса в Linux
В Windows создает независимый процесс, который продолжает выполняться независимо от запускаемой оболочки. На платформах, отличных от Windows, только что запущенный процесс присоединяется к запущенной оболочке. Если запущенная оболочка закрыта, дочерний процесс завершается.
Чтобы избежать завершения дочернего процесса на unix-подобных платформах, можно объединить с . В следующем примере запускается фоновый экземпляр PowerShell в Linux, который остается активным даже после закрытия сеанса запуска. Команда собирает выходные данные в файле в текущем каталоге.
В этом примере выполняет команду Linux , которая запускается как отсоединяемый процесс. Дополнительные сведения см. в статье nohup в Википедии.
Чтение текстового файла в массив
Одним из наиболее общих форматов хранения текстовых данных является файл, отдельные строки которого рассматриваются как отдельные элементы. Командлет используется для чтения всего файла за один шаг, как показано далее:
обрабатывает данные, считанные из файла, как массив с одним элементом в каждой строке содержимого файла. Убедиться в этом можно, проверив свойство Length полученного содержимого:
Эта команда наиболее полезна для получения списков сведений в PowerShell. Например, можно сохранить список имен компьютеров или IP-адресов в файле с одним именем в каждой строке файла. Вы можете использовать командлет , чтобы извлечь содержимое файла и поместить его в переменную :
Форматируем вывод
При большом количестве данных их визуальный анализ становится затруднительным: например, очень трудно найти сообщения об ошибке во множестве записей. Но в PS довольно просто выделить вывод цветом, что удобнее для восприятия. Для этого используется командлет Write-Host, которому в качестве параметра передаем два параметра:
В результате получим список процессов на белом фоне зелеными буквами. К сожалению, Write-Host никак не различает вывод других утилит. То есть если в выводе другого командлета присутствует, например Error, о цветовой раскраске такого сообщения необходимо позаботиться самостоятельно.