Главная > Powershell > Использование IntelliSense в Powershell ISE

Использование IntelliSense в Powershell ISE

Так получилось, что с самого появления Powershell у меня не получилось дружбы с встроенным редактором скриптов Powershell ISE, и почти все скрипты я писал используя сторонние редакторы. С каждой новой версией Powershell рос и обрастал функционалом и Powershell ISE, я за его развитием следил, но издалека – при появлении каждой новой фишки каждый раз говорил себе: “Прикольно, нужно будет попробовать”. Этим дело и ограничивалось.

Как говорится не было счастья, да несчастье помогло. Случилось так, что мне понадобилось срочно набросать небольшую конфигурацию на чужом компьютере, на котором не было не только какого-либо стороннего редактора скриптов, но даже интернета. А так как последние несколько месяцев конфигурации я не писал, и вообще голова была забита другими проблемами, то вполне очевидно, что структуру конфигурации, которую я подробно разбирал в одной из предыдущих статей я подзабыл. Поэтому ничего не оставалось кроме как воспользоваться советом, который услышал в каком-то курсе от Мастера джедая Powershell Джеффри Сновера: “Use IntelliSense, my friend, use IntelliSense”.

Сегодняшняя небольшая статья будет посвящена тому как можно использовать IntelliSense в Powershell ISE при написании скриптов. Для тех, кто постоянно работает с Powershell ISE, наверное, будет неинтересно, остальные, надеюсь, найдут для себя что-то новое.

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

Поэтому, так и пишем:

Configuration MyConfiguraion
{
    
}

Дальше начинается самое интересное: ставим курсор внутрь фигурных скобок и нажимаем Ctrl+Пробел:

Configuration

Открывается вспомогательное окно, листаем его до тех пор, пока не вспоминаем, что далее нужно указать имя узла, для которого предназначается конфигурация (ключевое слово Node), выбираем его (Enter) и указываем имя узла. В всплывающей подсказке видно, что после указания имени узла нужны фигурные скобки. Ставим их, заходим внутрь и снова вызываем IntelliSense (сочетанием клавиш Ctrl+Пробел):

Configuration | Node

Рассматривая появившееся окно, вспоминаем, что дальше идёт описание ресурсов. Выбираем требуемый ресурс, указываем его имя, заходим в тело описания ресурса (в фигурные скобки) и снова вызываем IntelliSense:

Configuration | Node | Resource

Как видно сейчас IntelliSense подсказывает все возможные свойства для данного ресурса.

Кстати, как только выберем ресурс, Powershell ISE подсветит его как ошибку. “Это не баг, это фича” Smile Подведя курсор можно увидеть, что таким образом он просто напоминает нам обязательное поле, которое должно быть заполнено:

Configuration | Node | Resource - Prompt

Если же стать курсором на название самого ресурса и нажать Ctrl+Пробел, то в появившемся окне будут видны все доступные свойства, и их типы. В квадратных скобках – необязательные свойства:

Configuration | Node | Resource - Content

Кстати, IntelliSense подсказывает не только сами свойства, но зачастую и значения, которые они могут принимать:

Configuration | Node | Resource - Properties

И, кстати, IntelliSense можно использовать не только в конфигурациях:

Get-Date | IntelliSense

Хотя в случаях с командлетами, лучше нажать F1, это равносильно вызову команды

Get-Help 'Get-Date'ShowWindow

 

Напоследок, ещё одно замечание, не имеющее отношения к IntelliSense; касательно предыдущей статьи по DSC. В той статье я делал примечание:

перед тем, как компилировать лучше задать текущим какой-нибудь удобный путь (например тот же, где лежит конфигурационный скрипт), в таком случае .mof-файл будет помещён в каталог с названием конфигурации, по этому пути. В противном случае для успешного результата нужно запускать Powershell от имени администратора, так как по умолчанию Powershell пытается положить mof-файл в каталог %systemroot%/system32.

То-ли я тогда ещё мало знал про DSC, то-ли это появилось в версии WMF 5.0, но у конфигурации есть параметр –OutputPath, с помощью которого можно задать путь к итоговому .mof-файлу:

MyConfiguraion -OutputPath C:\temp
Реклама
Рубрики:Powershell Метки: ,
  1. Комментариев нет.
  1. No trackbacks yet.

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

%d такие блоггеры, как: