Домашняя » как » 5 командлетов для начала работы с PowerShell

    5 командлетов для начала работы с PowerShell

    PowerShell быстро становится предпочтительным языком сценариев и CLI опытных пользователей, а также ИТ-специалистов. Для начала стоит изучить несколько команд, поэтому у нас есть 5 полезных командлетов, которые вы можете изучить сегодня..

    Get-Command

    Get-Command - один из самых полезных командлетов во всей PowerShell, поскольку он поможет вам разобраться с PowerShell, позволив вам искать определенные командлеты. Использование Get-Command само по себе, по общему признанию, не очень полезно, так как оно просто выплевывает каждую команду, имеющуюся в PowerShell..

    Но из этого мы можем видеть, что те объекты, которые выводит PowerShell, имеют как свойство Name, так и свойство ModuleName. Используя эту информацию, мы можем детализировать наш поиск путем поиска командлетов, которые содержат определенные термины. Например, если бы я хотел найти все командлеты, содержащие слово «IP», я мог бы сделать это:

    Get-Command -Name * IP *

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

    Get-Command -Module NetTCPIP -Имя * IP *

    Получить помощь

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

    ipconfig /?

    Что ж, это не работает в PowerShell, это потому, что в PowerShell используется пространство для отделения команды от ее параметров. Поэтому вместо этого мы используем Get-Help и передаем имя командлета в Get-Help в качестве параметра..

    Get-Help Get-Process

    Get-Member

    Get-Member позволяет нам получать информацию об объектах, возвращаемых командлетом. Смысл get-member в том, что он использует функцию конвейера PowerShell. Чтобы продемонстрировать это, мы можем использовать командлет Get-Process..

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

    Get-Process | Get-Member

    Хотя сейчас это может ничего не значить для вас, вам рано или поздно придется использовать Get-Member, и чем раньше вы научитесь использовать его, тем лучше. Например, используя информацию из вывода, мы можем сделать что-то вроде:

    Start-Process notepad.exe
    $ NotepadProc = Get-Process -Name notepad
    $ NotepadProc.WaitForExit ()
    Start-Process calc.exe

    Этот скрипт запускает блокнот, затем назначает вывод «Get-Process -Name notepad» переменной $ NotepadProc, затем мы вызываем метод WaitForExit в $ NotepadProc, который заставляет скрипт останавливаться, пока вы не закроете блокнот, как только вы закроете блокнот тогда калькулятор запустится.

    $ _ (Текущий объект конвейера)

    Хотя это и не командлет, он является одной из наиболее часто используемых специальных переменных в PowerShell. Официальное название для $ _ - «текущий объект конвейера». Он используется в блоках сценариев, фильтрах, в разделе функций процесса, где-объект, foreach-объект и переключатели. Однако это проще объяснить на примере, который приводит нас к следующему и последнему командлету Where-Object..

    Where-Object

    Where-Object делает именно то, на что это похоже, он выбирает объект на основе того, соответствует ли он определенным критериям. Это объединит $ _ и свойства, которые мы можем увидеть, используя Get-Member. Чтобы продемонстрировать это, мы передадим вывод Get-Process в командлет Where-Object.

    Get-Process | Where-Object $ _. Name -eq «iexplore»

    Так что здесь происходит, спросите вы? Ну, первое, что мы делаем, это получаем список процессов на нашем компьютере и передаем вывод (используя символ |) в наш командлет Where-Object, который принимает блок скрипта в качестве параметра. Блок сценария (определяемый фигурными скобками) инструктирует командлеты Where-Object только выбирать объекты, для которых их параметр name равен «iexplore», и поэтому мы получаем только список запущенных экземпляров IE. Вот и все, повеселись!