Классы в Powershell. Введение, свойства

Начиная с версии 5.0 в Powershell появилась возможность использовать свои собственные классы для создания объектов. Естественно, перед тем как создавать объект пользовательского класса, его (класс) нужно определить. Этим сегодня и займёмся.

Тег «Далее»

Рубрики:Powershell Метки: ,

Использование выражения Using Namespace в Powershell

В Powershell при обращении к .NET классам нужно указывать их полное имя. Например:

[System.Net.Dns]::GetHostByAddress('192.168.1.1')
[System.IO.Path]::GetRandomFileName()
[System.IO.Path]::GetTempFileName()
[System.IO.Path]::GetTempPath()

Если это единичное обращение к .NET-классу можно обойтись и так. Но если в скрипте приходится часто обращаться к .NET-классам, такое обращение усложняет восприятие кода, из-за большого количества букв, скобок и точек.

Тег «Далее»

Рубрики:Powershell Метки: ,

Работа с локальными учётными записями в Powershell

Я когда-то уже рассказывал как неудобно работать с локальными учётными записями пользователей в Powershell. Раньше для этого приходилось использовать не совсем удобный ADSI. С выходом Powershell 5.1, наконец-то, появились стандартные командлеты для управления учётными записями.

Тег «Далее»

Рубрики:Powershell Метки:

Использование пользовательских областей в Powershell

При написании скриптов Powershell бывают случаи, когда нужно на время изменить значение переменной, а затем восстановить исходное значение. Например, переопределить реакцию Powershell на возникновение не прерывающей ошибки. За это отвечает переменная $ErrorActionPreference. (Подробнее об этой и других переменных, которые задают поведение Powershell можно почитать, например на Technet.) Как правило в таком случае сохраняют исходное значение во временной переменной, а после выполнения определённых действий – восстанавливают:

"Исходное значение ErrorActionPreference - $ErrorActionPreference"

# Сохраняем исходное значение переменной во временную переменную
$ErrorActionPreferenceOLD = $ErrorActionPreference

# Меняем значение переменной на нужное
$ErrorActionPreference = 'stop'

"Изменённое значение ErrorActionPreference - $ErrorActionPreference"
# Выполняем какие-то действия...

# Восстанавливаем исходное значение переменной
$ErrorActionPreference = $ErrorActionPreferenceOLD

"Восстановленное значение ErrorActionPreference - $ErrorActionPreference"

В результате получим изменённое на время значение переменной:

Исходное значение ErrorActionPreference         - Continue
Изменённое значение ErrorActionPreference       - Stop
Восстановленное значение ErrorActionPreference  - Continue

Этого же результата можно добиться более простым путём.

Тег «Далее»

Рубрики:Powershell Метки:

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

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

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

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

Тег «Далее»

Рубрики:Powershell Метки: ,

Изменение цветов системных сообщений в Powershell

Небольшая заметка о том, как можно изменить стандартные цвета системных сообщений в Powershell.

Тег «Далее»

Рубрики:Powershell Метки:

Перезапуск службы печати на удалённом ПК

Недавно ко мне обратился человек с просьбой помочь в написании скрипта для перезапуска службы печати для того, чтобы очистить очередь печати от “застрявших” заданий – которые не печатаются, не отменяются и не удаляются. Мне это показалось банальным и скучным, поэтому я предложил сделать это сразу для удалённого компьютера.

Тег «Далее»

Рубрики:Powershell Метки: , , ,