Урок 2.2 Основы PowerShell. Толкование справочной информации

Файлы помощи PowerShell описывают использование командлетов по определённым правилам. Изучение этих правил позволит получить максимум информации и даст возможность использовать командлеты более эффективно.

Наборы параметров и обычные параметры

Большинство командлетов могут работать различным образом в зависимости от того что вы хотите сделать. Ниже представлен раздел синтаксиса справочной информации по командлету Get-EventLog.

PowerShell
СИНТАКСИС
    Get-EventLog [-LogName] <System.String> [[-InstanceId] <System.Int64[]>] [-After <System.DateTime>] [-AsBaseObject] [-Before <System.DateTime>] [-ComputerName <System.String[]>] [-EntryType {Error | Information | FailureAudit | SuccessAudit | Warning}] [-Index <System.Int32[]>] [-Message System.String>] [-Newest <System.Int32>] [-Source <System.String[]>] [-UserName <System.String[]>] [<CommonParameters>]

    Get-EventLog [-AsString] [-ComputerName <System.String[]>] [-List] [<CommonParameters>]

Обратите внимание, что синтаксис команды указан дважды, что говорит о том, что команда поддерживает два набора параметров, то есть команду можно использовать двумя различными способами. Некоторые параметры присутствуют в обоих наборах, например параметр —ComputerName. В то же время каждый набор имеет уникальные параметры, которые присутствуют только в одном наборе. Например, второй набор параметров поддерживает параметры —List и —AsString, которых нет в первом наборе. И наоборот: первый набор параметров содержит большое количество параметров, которых нет во втором наборе.

Теперь как это работает: если вы используете параметр, который входит только в один набор, то вы ограничиваете себя этим набором и далее можете использовать только те параметры, которые входят в этот набор. Если вы выбрали для командлета Get-EventLog параметр —AsString, то далее вы сможете использовать только параметры —List и —ComputerName, потому что остаются только эти два параметра, входящие в набор с параметром —AsString. Таким образом параметры —List и —LogName взаимоисключающие — вы не можете использовать их вместе, так как они принадлежат различным наборам параметров.

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

В конце каждого набора команд присутствует запись [<CommonParameters>]. Это отсылка на набор из восьми параметров, которые доступны для всех командлетов, вне зависимости от того как вы их используете. Эти параметры будут описаны позже.

Обязательные и необязательные параметры

Не обязательно использовать все параметры, чтобы запустить командлет. Необязательные параметры в справочной информации PowerShell обозначены в квадратных скобках. Например, запись [-ComputerName <System.String[]>] говорит о том, что параметр —ComputerName является необязательным. Его можно не указывать и тогда командлет будет выполнен на локальном компьютере. [<CommonParameters>] в квадратных скобках и поэтому команды можно запускать без этих параметров.

Почти у всех командлетов есть хотя бы один необязательный параметр. Имейте в виду, что выбрав использование какого-то параметра, достаточно написать первые символы этого параметра, которые бы однозначно определяли его. Например, написав -L для параметра —List, не будет достаточным для его однозначного определения, потому что -L будет также обозначать параметр —LogName. Но, написав -Li, будет достаточно для определения параметра —List, так как нет других параметров, начинающихся с -Li.

Посмотрите справку по командлету Get-EventLog и вы увидите, что параметр —LogName является обязательным, так как он не указан в квадратных скобках. Что случится, если запустить командлет и забыть указать обязательный параметр? PowerShell напомнит вам о необходимости указать обязательный параметр:

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

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