PowerShell 1.0 – основы для администраторов

Этой публикацией я открываю небольшой цикл, в котором расскажу о командной строке – Windows PowerShell 1.0. Я ставлю перед собой задачу дать начальное представление, что это такое и как устроено, и показать простые примеры использования, которые могут пригодиться администраторам в реальной работе. Я намеренно оставляю за кадром архитектуру PowerShell и возможности программирования на нем (скрипты, использование .NET объектов), сосредоточившись исключительно на интерактивном применении простых команд.

 

Часть 1

 

Windows PowerShell - что это такое? 

  • Windows PowerShell (далее WPS) - это продвинутая командная строка, подобная UNIX shell, но с поддержкой .NET, COM и WMI.
  • Команды, которые вы вызываете в WPS, называются commandlets (в русской документации они называются командлеты, я же далее буду называть их команды)
  • Команды поддерживают конвейеры (pipelines), т.е. могут передавать результат своей работы другим командам в рамках одной строки вызова

 Где взять?

В Windows 2008 поставляется в дистрибутиве, но требует отдельной установки через добавление роли. Для других ОС нужно скачать дистрибутив с сайта Microsoft. Поддерживаемые ОС:

  • Windows XP with Service Pack 2
  • Windows Server 2003 with Service Pack 1
  • Windows Vista

WPS является .NET приложением и требует наличия .NET 2.0 в системе. WPS может работать в двух режимах – интерактивном и скриптовом. Мы будем рассматривать работу в интерактивном режиме.

Первые команды

Откройте консоль WPS и наберите следующие команды (WPS регистронезависим):

get-process  - вы получите список всех процессов в системе

get-service ms* – вы получите список всех сервисов, имена которых начинаются с ms

get- и нажмите клавишу tab – вы воспользовались функцией автозавершения (нажимая клавишу несколько раз, вы перебираете возможные варианты команд)

Get-Eventlog – эта команда требует ввода параметров, ответьте на приглашение LogName: и введите  Application – будет выведен системный журнал событий Application

 

Структура команд

Команда WPS состоит из трех элементов – глагола, существительного и списка параметров (опционально). Глагол и существительное разделены дефисом, например:

get-process

Список параметров передается через пробел, например:

Get-childitem c:\ (будет выведено содержимое корневого каталога)

Если параметр содержит пробел, его надо заключать в кавычки:

Get-childitem “c:\Program Files”

Параметры можно передавать по имени или по порядку. В случае передачи по порядку, он должен соответствовать порядку параметров в документации, иначе будет ошибка. Например:

Get-ChildItem C:\mydata *.doc

Get-ChildItem -Path C:\mydata -Filter *.doc

Get-ChildItem -Filter *.doc -Path C:\mydata

Get-ChildItem *.doc C:\mydata  - эта строка даст ошибку

 

Параметр без значения называется свитчем, и по смыслу является функцией:

Get-ChildItem с:\mydata\docs –recurse

Автозавершение  также работает с параметрами. Попробуйте это на примере get-childitem +tab. Также при задании параметров поддерживаются стандартные символы заместители (*, ?, интервалы [a-v] и т.п.) , например:

Get-process ?i*

 

В следующей части я расскажу про псевдонимы и работу с конвейерами.