Справочник командлетов Windows PowerShell

Цель работы – знакомство с основными возможностями оболочки командной строки Windows PowerShell 2.0

Как запустить PowerShell в Windows 10

Достаточно нажать сочетание Win+X и в контекстном меню Пуск выбрать Windows PowerShell (администратор). В последних версиях операционной системы командная строка была заменена на Windows PowerShell. Можно в параметрах заменить командную строку оболочкой Windows PowerShell в меню, которое появляется при щелчке правой кнопкой мыши по кнопке Пуск.

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

А также можно запустить Windows PowerShell в определённой папке. Достаточно зажать клавишу Shift и в контекстном меню выбрать Открыть окно PowerShell здесь. В предыдущих версиях операционной системы вместо PowerShell был доступный пункт командной строки. Для перехода в командную строку в окне Windows PowerShell выполняем команду Cmd.

Как управлять PowerShell

Для выполнения задач используются cmdlets, или командлеты. Это небольшие команды, записанные в виде исполняемых файлов. В версии 2.0 PowerShell для Windows XP и Server 2008 R2 создатели добавили модули, позволяющие управлять большим количеством ресурсов, включая Active Directory и Exchange Server.

Сейчас в средство автоматизации PowerShell встроено свыше 130 модулей и команд. Они обеспечивают доступ к файлам, сетям, реестру, администрированию и другим возможностям системы:

  • установка времени и даты;
  • работа с папками и отдельными файлами;
  • получение помощи и дополнительной информации;
  • импорт и хранение данных;
  • методы создания сценариев;
  • отдельные скрипты и приложения;
  • проверка безопасности системы и работа с дескрипторами;
  • системное администрирование;
  • проверка дискового пространства.

Учитывая, что Windows PowerShell – это расширяемая среда, пользователи могут создавать свои команды, писать «авторские» модули с использованием языка .Net.

Цели и задачи создания новой оболочки

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

Для достижения этих целей были решены следующие задачи:

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

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

  • Разработка интуитивно понятной унифицированной структуры встроенных команд, основанной на их функциональном назначении. В новой оболочке имена всех внутренних команд (в PowerShell они называются командлетами) соответствуют шаблону «глагол-существительное», например, Get-Process (получить информацию о процессе), Stop-Service (остановить службу), Clear-Host (очистить экран консоли) и т.д. Для одинаковых параметров внутренних команд используются стандартные имена, структура параметров во всех командах идентична, все команды обрабатываются одним синтаксическим анализатором. В результате облегчается запоминание и изучение команд.

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

  • Организация поддержки знакомых команд из других оболочек. В PowerShell на уровне псевдонимов собственных внутренних команд поддерживаются наиболее часто используемые стандартные команды из оболочки и Unix-оболочек. Например, если пользователь, привыкший работать с Unix-оболочкой, выполнит ls, то он получит ожидаемый результат: список файлов в текущем каталоге (то же самое относится к команде dir).

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

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

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

Импорт и экспорт

PowerShell позволяет импортировать и экспортировать данные в разных распространенных форматах, например, CSV или XML, а также перенаправлять вывод результата работы команды во внешний файл или на принтер.

  • Export-Csv – экспорт данных в формат CSV;
  • Import-Csv – импортирует данные из CSV файла;
  • Export-Clixml — экспорт данных в формат XML;
  • Import-Clixml — импортирует файл CLIXML и создает соответствующие объекты в оболочке Windows PowerShell;
  • Out-File — посылает вывод результата работы командлета во внешний файл (например, в TXT);
  • Out-Printer — вывод результата работы команды на принтер;
  • Import-Module — добавляет модули в текущей сессии.

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

Так как PowerShell работает с объектами, он позволяет выполнять некие действия над этими объектами, например:

  • Measure-Object – командлет позволяет рассчитывать на основе свойств объектов такие числовые агрегирующие параметры как: минимальное, максимальное, среднее значение, сумму и количество. Например, Вы хотите узнать максимальный или средний размер файла в определенном каталоге, или просто узнать количество файлов (запущенных процессов, служб и так далее);
  • Select-Object – с помощью данного командлета можно выбрать определенные объекты или свойства этих объектов, например Вы хотите выводить только название файла и его размер;
  • Sort-Object — сортирует объекты по значениям свойств;
  • Where-Object – командлет для того чтобы ставить условие для выборки объектов на основе значений их свойств;
  • Group-Object – группирует объекты, которые содержат одинаковое значение для заданных свойств;
  • ForEach-Object – перебор объектов с целью выполнения определенной операции над каждым из этих объектов.

Использование XML-файлов

В последнее время XML-файлы все чаще используются для хранения конфигурационной информации. По мере того как данные в XML-файле накапливаются, он становится все менее удобным для прочтения. Далее мы рассмотрим, как применять функции Windows PowerShell для работы с XML-файлами.

Для примера возьмем конфигурационный файл Windows Calendar, который выглядит так (рис. 18):

и выполним над ним манипуляции, представленные на рис. 19.

В первой строке мы загружаем содержимое всего XML-файла в переменную, используя команду get-content :

PS C:\> $doc = get-content ‘.\’

Использование XML-файлов

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

Во второй строке мы выбираем определенную ветвь XML-файла — для этого применяется метод selectnodes объекта, хранящего XML-данные и XPath-описание адреса ветви:

PS C:\> $settings = $(‘CalendarSettings/X-Root/VCalendar’)

После этого мы используем команду foreach-object для получения значения свойства Name для всех элементов в данной ветви.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...
Понравилась статья? Поделиться с друзьями:
Adblock
detector