Система псевдонимов в Powershell
Чтобы упростить жизнь начинающим пользователям powershell, разработчики реализовали возможность выполнения некоторых базовых команд из CMD или терминала операционной системы Linux. Это становится возможным благодаря системы псевдонимов команд или алиасов. В консоли powershell так же успешно будут работать такие команды как CD, DIR, LS, COPY, CP, CURL, DEL и прочие. Но по своей сути они являются лишь ссылками на командлеты powershell, схожие по их функционалу.
Для просмотра всего списка алиасов необходимо выполнить команду 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. Как мы видим, наш алиас добавлен в общий список:
Модули Powershell
Powershell представляет из себя модульную систему команд. Команды группируются в модули по функциональным или техническим областям их применения. Например, это могут быть модули для работы с Active Directory, DHCP, DNS или для работы со специфическим ПО таким как MS Exchange Server, MS Sharepoint. Как правило, если программным продуктом можно управлять с помощью powershell, с этим ПО так же устанавливается модуль для управления через консоль.
Чтобы посмотреть, какие модули Вы можете использовать в текущей сессии по умолчанию, сразу после запуска консоли выполните команду Get-Module -ListAvailable. Вы увидите базовый достаточно большой “набор джентльмена”.
Для возможности использования нестандартных модулей, их файлы необходимо положить по одному из стандартных расположений. Эти пути Вы можете увидеть, обратившись к переменной окружения $env:PSModulePath. После чего выполнить импорт модуля в сессию командой Import-Module, указав его имя.
Стоит отметить, что расположения 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
Еще одним достаточно удобным способом просмотра состава модулей является использование дополнительного компонента в Powershell ISE – “Команды”
При выборе нужного модуля в окне появляется список его команд. Так же этот интерфейс предоставляет возможность формировать и выполнять команду в графическом режиме. При выборе командлета Вы можете видеть ряд полей, которые являются параметрами. Помеченные звездочками – обязательные к указанию. Данный способ не очень практичен, но достаточно нагляден.
Анонс следующей статьи: “Синтаксис команд, множественные и общие параметры”