Обязательно ознакомьтесь с нашей первой статьей, посвященной PowerShell, и оставайтесь с нами в течение всей нашей недели всю неделю.
Анатомия командлета
В первой части серии мы увидели командлет, который выглядел примерно так:
Update-Help
Командлеты PowerShell имеют синтаксис Verb-Noun, который можно увидеть выше. Важно отметить, что существительное всегда сингулярно, хотя командлет может возвращать более одного результата. Чтобы просмотреть список юридических глаголов в PowerShell, вы можете использовать командлет Get-Verb.
Знание юридических глаголов и запоминание правила единственного существительного действительно помогают угадывать имена командлетов. Например, предположим, что вы хотите получить список Сервисы и их статус - это правильно, это так же просто, как Get-Service. Как вы думаете, мы бы получить список запусков процессы - Правильно, Get-Process сделает трюк.
Get-Process
Get-Mailbox
Однако есть исключение. Отмените обмен, все другие команды, относящиеся к конкретным технологиям, потребуют префикс. Например, если мы хотим получить пользователей, которые в настоящее время вошли в систему через Remote Desktop, мы будем вводить:
Get-RDUserSession
Это можно увидеть на скриншоте ниже.
Примечание. Этот снимок экрана был снят в окне Server 2012, так как именно там вы найдете большинство модулей, относящихся к технологиям.
Псевдонимы
Еще одна особенность PowerShell - возможность иметь несколько способов запуска одних и тех же командных псевдонимов, если хотите. Замечательная вещь о них заключается в том, что они включали в себя множество команд, которые вы могли использовать в командной строке, а также некоторые псевдонимы Linux. Например, в PowerShell мы можем получить список каталогов, используя:
Get-ChildItem
Get-Alias –Name ls
Get-ChildItem –Definition Get-ChildItem
New-Alias –Name icanhazfilez –Value Get-ChildItem
Очевидно, вам нужно будет заменить «icanhazfilez» на имя вашего нового псевдонима и Get-ChildItem командлетом, который вы хотите запустить под капотом.
Усечение параметров
Windows PowerShell также позволяет обрезать имена параметров до момента, когда они становятся двусмысленными, то есть до тех пор, пока PowerShell больше не сможет определить, какой параметр вы говорите. Например:
Get-Service -Name ‘Apple Mobile Device’ -ComputerName localhost
Get-Service -Na ‘Apple Mobile Device’ -Com localhost
Устаревшие команды
Наконец, команды, которые вы знаете и любите, по-прежнему будут работать в PowerShell.
ping www.google.com
Просто помните, что унаследованные приложения, такие как ping, выводят строку, и часто бывает лучше сделать то же самое с помощью командлета PowerShell.