02.12.2021
Post Logo #3

Знакомые команды из CMD, модули и их обзор в консоли ISE

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

Система псевдонимов в Powershell

Чтобы упростить жизнь начинающим пользователям powershell, разработчики реализовали возможность выполнения некоторых базовых команд из CMD или терминала операционной системы Linux. Это становится возможным благодаря системы псевдонимов команд или алиасов. В консоли powershell так же успешно будут работать такие команды как CD, DIR, LS, COPY, CP, CURL, DEL и прочие. Но по своей сути они являются лишь ссылками на командлеты powershell, схожие по их функционалу.

Для просмотра всего списка алиасов необходимо выполнить команду Get-Alias:

Вывод команды Get-Alias
Вывод команды Get-Alias

Здесь Вы можете видеть, какая команда будет выполнена фактически, если будет выполнен алиас CD. Это будет командлет – Set-Location. Если сравнивать выполнение команды CD в CMD и в powershell, то отличаться они будут лишь составом и наименованием ключей, и что важно, в powershell на выходе мы получим список объектов, с которыми можно в дальнейшем взаимодействовать, а не просто текст на экране.

Так же одним из применений алиасов является сокращение для удобства длинных имен команд. Например, командлет Add-Content можно вызвать просто сочетанием – AC, Get-ChildItem – gci он же Dir. Использование сокращений является как плюсом, так и минусом. Если Вы пишете скрипт для себя, я бы рекомендовал все же их использовать – это может сэкономить Вам немного времени. Но, если скрипт пишется для общественного пользования, рекомендуется использовать стандартные наименования команд, потому что большинство пользователей powershell могут быть не знакомы с сокращениями, что введет их в ступор.

Если говорить об экономии времени, здесь так же может прийти на помощь табуляция. Powershell умеет дополнять введенные Вами неполные имена команд. К примеру, если ввести Get-Serv и нажать TAB, консоль дополнит текст в командлет Get-Service. Использование этой возможности я настоятельно рекомендую довести до автоматизма.

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

Если выполнить такой код:

New-Alias -Name A -Value Get-Service

в последствии мы сможем получать информацию о службах просто выполняя команду A. Как мы видим, наш алиас добавлен в общий список:

Вывод команды Get-Alias после создания кастомного алиаса
Вывод команды Get-Alias после создания кастомного алиаса

Модули Powershell

Powershell представляет из себя модульную систему команд. Команды группируются в модули по функциональным или техническим областям их применения. Например, это могут быть модули для работы с Active Directory, DHCP, DNS или для работы со специфическим ПО таким как MS Exchange Server, MS Sharepoint. Как правило, если программным продуктом можно управлять с помощью powershell, с этим ПО так же устанавливается модуль для управления через консоль.

Чтобы посмотреть, какие модули Вы можете использовать в текущей сессии по умолчанию, сразу после запуска консоли выполните команду Get-Module -ListAvailable. Вы увидите базовый достаточно большой “набор джентльмена”.

Для возможности использования нестандартных модулей, их файлы необходимо положить по одному из стандартных расположений. Эти пути Вы можете увидеть, обратившись к переменной окружения $env:PSModulePath. После чего выполнить импорт модуля в сессию командой Import-Module, указав его имя.

Вывод значения системной переменной $env:PSModulePath
Вывод значения системной переменной $env:PSModulePath

Стоит отметить, что расположения C:\Program Files\WindowsPowerShell\Modules и C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules являются системными и видны для всех пользователей. В то время как путь C:\Users\Administrator\Documents\WindowsPowerShell\Modules доступен только текущему пользователю, в данном случае это пользователь – Администратор.

Так же предусмотрена возможность создания своих модулей из наборов Ваших функций и команд. Это может быть удобным при переезде на другой компьютер или когда есть необходимость поделиться своими наработками с коллегами. Для этого существует командлет New-Module. Подробнее

Посмотреть какие команды входят в состав модуля Вы можете обратившись к свойству ExportedCommands модуля. Возьмем например модуль Storage (Список команд будет немалым).

(Get-Module -ListAvailable Storage).ExportedCommands

Консоль ISE

Еще одним достаточно удобным способом просмотра состава модулей является использование дополнительного компонента в Powershell ISE – “Команды”

Дополнительный компонент "Команды"
Дополнительный компонент “Команды”

При выборе нужного модуля в окне появляется список его команд. Так же этот интерфейс предоставляет возможность формировать и выполнять команду в графическом режиме. При выборе командлета Вы можете видеть ряд полей, которые являются параметрами. Помеченные звездочками – обязательные к указанию. Данный способ не очень практичен, но достаточно нагляден.

Анонс следующей статьи: “Синтаксис команд, множественные и общие параметры

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

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

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

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

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