Повышение производительности с помощью сценариев Windows PowerShell
Windows

Повышение производительности с помощью сценариев Windows PowerShell

Что если бы вы могли перенести производительность Linux в Windows? Большинство дистрибутивов Linux поставляются с мощной оболочкой Bash.PowerShell – не менее мощный терминал для Windows

Что если бы вы могли перенести производительность Linux в Windows? Одно из главных различий между Windows и Linux заключается в том, что большинство дистрибутивов Linux поставляются с мощной оболочкой Bash; для сравнения, командная строка в Windows – это голый терминал. Что если бы в Windows был такой же мощный терминал?

С PowerShell эта мечта может стать реальностью

Отказ от ответственности: PowerShell не является ‘Bash для Windows’ и не предназначен для этого. Да, обе эти среды командной строки могут значительно повысить вашу производительность, но на этом их сходство заканчивается. Вы должны рассматривать PowerShell как отдельный подход к созданию мощной среды командной строки

Что такое PowerShell?

PowerShell можно рассматривать как модернизацию командной строки Windows. Он может выполнять многие из тех же задач (например.навигация по системе, взаимодействие с файлами, изменение свойств), но открывает весь фреймворк.NET для максимальной мощности. Чтобы понять, какие преимущества это дает, продолжайте читать

Есть два основных преимущества, которые делают PowerShell лучше традиционного командного интерпретатора: расширяемость и возможность написания сценариев

Хотя PowerShell поставляется с начальным набором команд, вы можете добавлять свои собственные команды, создавая командлеты. Команды – это классы, которые создаются с помощью языка C# и при вызове выполняются в среде PowerShell. Поскольку они написаны на языке C#, команды имеют доступ ко всей системе.NET

Фреймворк.NET содержит огромную библиотеку кода, предоставленную компанией Microsoft. При написании собственной команды вы получаете доступ ко всему этому коду. Извлечение информации о процессе? Криптографические алгоритмы? Подключение к базе данных? Сетевые коммуникации? Все это – и даже больше – обеспечивается фреймворком.NET, а значит, большая часть работы сделана за вас. Вам нужно только собрать ее воедино, вызывая нужные функции

Компания Microsoft ясно дала понять, что PowerShell не собирается уходить – более того, будущий менеджер пакетов в Windows 10 будет основан на PowerShell – поэтому всем стоит задуматься о его изучении как можно скорее

Почему PowerShell – это здорово

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

Среда PowerShell достаточно проста, чтобы каждый мог освоить ее в течение нескольких часов после прочтения. Кривая обучения есть, но она относительно неглубокая, и вам не нужно изучать ее всю, чтобы пользоваться ею

Подробная информация о процессе. Одно дело – использовать альтернативный диспетчер задач, но PowerShell позволяет выполнять некоторые аккуратные трюки в отношении управления процессами. Начните с родных командлетов Get-Process и Stop-Process

Простая автоматизация и создание сценариев. Базовая Windows не предоставляет простого способа автоматизации задач. До появления PowerShell пакетные файлы могли выполнять только примитивные сценарии, а для автоматизации требовались сторонние решения (например.Perl, AutoHotkey). Но с помощью PowerShell можно запланировать выполнение задач в определенное время или с определенным интервалом

Например, с помощью модуля ScheduledTasks можно вызвать выполнение определенной программы или процесса в соответствии с триггером (например.в определенное время, при возникновении системного события и т.д.), и вы можете определить контекст для этой задачи (например.ограничения безопасности)

В Bash (Linux) команды можно объединять в трубопроводы таким образом, что вывод одной команды может быть использован в качестве ввода для другой команды. Например, базовая команда Get-Process выводит информацию обо всех запущенных процессах. Что если вам нужна информация только о подмножестве процессов? Вы можете передать ее с помощью команды Where-Object, которая действует как фильтр процессов, чтобы выполнить Get-Process только для процессов, возвращенных командой Where-Object

PowerShell также предоставляет несколько собственных команд для условной логики (например.If, Else, For, Switch), которые можно использовать для управления потоком выполнения команд. Например, можно создать сценарий PowerShell, который будет выполнять определенные команды только при выполнении определенных условий (например.очищать процессы, когда оперативная память близка к заполнению)

Удаленные и фоновые задания. Не только команды могут выполняться как фоновые процессы (так что вы можете запускать несколько задач одновременно асинхронно), но многие команды также могут выполняться на удаленных машинах в сети, если они настроены для этого. Команды с удаленными возможностями часто предоставляют параметр ComputerName, который можно указать при выполнении команды

Для получения дополнительной информации ознакомьтесь с этой страницей TechNet о выполнении удаленных команд с помощью PowerShell

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

Где изучать PowerShell

Готовы испачкать руки в PowerShell? Вот несколько ресурсов, которые часто рекомендуют новичкам, желающим как можно скорее приступить к изучению:

PowerShell Tutorial by Don Jones. Эта серия видеороликов на YouTube посвящена PowerShell 2. 0 (версии, поставляемой в комплекте с Windows 7), которая уже немного устарела, но является хорошим введением для тех, кто не имеет абсолютно никакого опыта работы со сценариями. Каждое видео длится всего несколько минут, но их 99, поэтому оно довольно полное

Microsoft Virtual Academy. MVA предлагает множество бесплатных курсов, связанных с Microsoft, включая два по PowerShell 3. 0. Это курс ‘Начало работы’ и курс ‘Расширенные инструменты и сценарии’. Оба курса содержат 9 уроков, каждый из которых длится около 1 часа

TechNet Script Center. Раздел TechNet на сайте Microsoft содержит множество отличных ссылок на руководства и учебники по PowerShell. В качестве бонуса, если вы перейдете в раздел Repository, вы сможете просмотреть и загрузить различные сценарии PowerShell

Hey, Scripting Guy! Блог Broken URL Removed . Это блог ‘все о PowerShell’ с большим количеством отличной информации, которая появилась почти целое десятилетие назад. Новые сообщения публикуются каждый день, и для удобства просмотра они распределены по тегам. Если вы не знаете, с чего начать, начните с тега Getting Started Broken URL Removed

Подходит ли вам PowerShell?

Что вы думаете? Поможет ли PowerShell повысить вашу производительность в Windows? Или он слишком избыточен для ваших нужд?. Поделитесь с нами своими мыслями в комментариях!

Об авторе

Алексей Белоусов

Привет, меня зовут Филипп. Я фрилансер энтузиаст . В свободное время занимаюсь переводом статей и пишу о потребительских технологиях для широкого круга изданий , не переставая питать большую страсть ко всему мобильному =)

Комментировать

Оставить комментарий