02.12.2021
Windows Powershell

Что такое Powershell?

Здравствуйте, коллеги!

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

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

Немного о языке Powershell

Простейшими единицами в powershell являются командлеты. Командлет – это объект класса Cmdlet. Он содержит в себе последовательность инструкций, необходимых для выполнения конкретной узко направленной задачи. Все командлеты именуются по так называемому принципу “глагол”-“существительное”. Что означает – “какое действие мы хотим сделать”-“над каким объектом”. Например, чтобы получить список запущенных на текущий момент процессов необходимо использовать командлет Get-Process. В качестве глагола могут использоваться такие действия как “Set”, “Remove”, “Add”, “Restart”, “Stop”, “New” и другие. О синтаксисе и общей структуре команд читайте здесь.

Одно из основных преимуществ PowerShell над своими предшественниками (CMD, WMIC, WSH) – конвейеризация. Это передача результата выполнения предшествующего командлета на вход для обработки последующему командлету. Например, таким образом мы можем быстро и точно определить процесс, наиболее утилизирующий оперативную память и завершить его. Для чего выполним следующий нехитрый код:

Get-Process | Sort-Object WS -Descending | Select-Object -First 1 | Stop-Process -Force

Что мы сделали? С помощью командлета Get-Process получили список всех запущенных процессов. Отсортировали список по убыванию по параметру WS(Рабочий набор) при помощи Sort-Object. Выбрали из списка только самый первый после сортировки благодаря Select-Object и ключа -first. И принудительно завершили процесс командой Stop-Process. Ключ -force указывает на принудительное выполнение данной команды, игнорируя возражения со стороны операционной системы. Для передачи вывода одного командлета на вход следующему используется символ “|” (PipeLine).

В операционной системе Windows Powershell представлен в двух вариантах:

  • в виде простой консоли (в отличие от аналогичной CMD в строке приглашения “PS C:\WINDOWS\system32>” указаны буквы “PS”)
Консоль Windows Powershell
Консоль Windows Powershell
  • в виде полноценной среды разработки и выполнения сценариев Powershell ISE
Консоль Powershell ISE
Консоль Powershell ISE

Возможности этих инструментов и будут обозреваться в рубрике – Основы Powershell.

Игорь Чердаков

Мне 32 года. На текущий момент я являюсь администратором систем Microsoft в одной из крупнейших компаний в России. За моими плечами практически 7 лет опыта работы в IT, последние 3 из которых в администрировании. Сопровождая немалую инфраструктуру, в ежедневной деятельности я сталкиваюсь с необходимостью автоматизации рутинных процессов, в чем мне успешно помогает Powershell. Данный блог основывается на моем личном опыте и знаниях. Мои статьи не являются истиной в последней инстанции и я положительно отношусь к обоснованной и конструктивной критике. По этому я приглашаю Вас обсуждать волнующие нас вопросы, связанные с Powershell.

Посмотреть все записи автора Игорь Чердаков →

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *