Домашняя » как » Geek School учится использовать командлеты в PowerShell

    Geek School учится использовать командлеты в PowerShell

    Если вы использовали ipconfig или ping через командную строку, вы на полпути к тому, чтобы стать ниндзя PowerShell. Присоединяйтесь к нам, когда мы обнаружим командлеты в этой установке Geek School.

    Обязательно ознакомьтесь с нашей первой статьей, представляющей PowerShell, и следите за обновлениями до конца нашей серии всю неделю.

    Анатомия командлета

    В первой части серии мы увидели командлет, который выглядел примерно так:

    Обновление-Help

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

    Знание допустимых глаголов и запоминание единственного числа существительного действительно помогает угадывать имена командлетов. Например, предположим, что вы хотите получить список Сервисы и их статус - это верно, это так же просто, как Get-Service. Как вы думаете, мы бы получить список бега процессы - это верно, Get-Process сделает свое дело.

    Get-Process

    Это позволяет действительно легко работать с любой технологией. Например, если вы загрузили командлеты Exchange, мы могли бы легко получить список почтовых ящиков на сервере, используя:

    Get-Mailbox

    Однако есть исключение. Помимо Exchange, все другие специфичные для технологии команды требуют префикса. Например, если мы хотим получить пользователей, которые в данный момент входят в систему с помощью удаленного рабочего стола, мы набрали бы:

    Get-RDUserSession

    Который можно увидеть на скриншоте ниже.

    Примечание. Этот снимок экрана был сделан на сервере Server 2012, поскольку там вы найдете большинство модулей, специфичных для технологии..

    Некоторое время назад я прочитал статью Дона Джонса, крестного отца PowerShell, в которой он объяснил, что Exchange поставляется до того, как этот префикс был добавлен в командлеты, поэтому он никогда не реализовывал их и никогда не будет.

    Псевдонимы

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

    Get-ChildItem

    Используется для использования командной строки? Не волнуйся, они тебя покроют.

    У вас есть опыт работы с Linux? Они тебя там тоже прикрыли.

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

    Get-Alias ​​-Name ls

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

    Get-ChildItem -Definition Get-ChildItem

    Если вы пришли из какой-то другой среды, вы можете добавить свои собственные псевдонимы, выполнив следующие действия:

    New-Alias ​​-Имя icanhazfilez -Значение Get-ChildItem

    Очевидно, вам нужно будет заменить «icanhazfilez» именем вашего нового псевдонима, а Get-ChildItem - командлетом, который вы хотите запустить из-под капота..

    Стоит отметить, что при закрытии оболочки вы теряете все псевдонимы, которые вы определили. Вы можете обойти это, добавив их определение в ваш профиль скрипта.

    Усеченные параметры

    Windows PowerShell также позволяет обрезать имена параметров до точки, где они становятся неоднозначными, то есть до точки, когда PowerShell больше не может определить, о каком параметре вы говорите. Например:

    Get-Service -Name 'Apple Mobile Device' -ComputerName localhost

    Такой же как:

    Get-Service -На Apple Mobile Device -Com localhost

    Если вы случайно сделаете имена параметров слишком двусмысленными, вы получите ошибку.

    Унаследованные Команды

    Наконец, команды, которые вы знаете и любите, будут по-прежнему работать в PowerShell.

    пинг www.google.com

    Просто помните, что устаревшие приложения, такие как ping, выводят строку, и часто есть лучший способ сделать то же самое с помощью командлета PowerShell..

    Вместо вывода длинной строки текста у нас теперь есть объект, который мы рассмотрим в завтрашнем выпуске Geek School..