Возвращает базовые сведения о командлетах и о других элементах команд Windows PowerShell.

Синтаксис

Get-Command [[-Name] <string[]>] [-CommandType {<Alias> | <Function> | <Filter> | <Cmdlet> | <ExternalScript> | <Application> | <Script> | <All>}] [[-ArgumentList] <Object[]>] [-Module <string[]>] [-Syntax] [-TotalCount <int>] [<CommonParameters>]

Get-Command [-Noun <string[]>] [-Verb <string[]>] [[-ArgumentList] <Object[]>] [-Module <string[]>] [-Syntax] [-TotalCount <int>] [<CommonParameters>]

Описание

Командлет Get-Command возвращает базовые сведения о командлетах и других элементах команд Windows PowerShell в сеансе, таких как псевдонимы, функции, фильтры, скрипты и приложения.

Get-Command получает данные непосредственно из кода командлета, функции, скрипта или псевдонима в отличие от Get-Help, который получает информацию из файлов справки.

При вызове без параметров Get-Command получает все командлеты и функции в текущем сеансе. "Get-Command *" получает все элементы Windows PowerShell и все файлы, не относящиеся к Windows-PowerShell, в переменной среды Path ($env:path). Он группирует файлы в команде типа "Application".

Для поиска команд, добавленных в сеанс путем добавления оснастки Windows PowerShell или импорта модуля, можно использовать параметр Module Get-Command.

Параметры

-ArgumentList <Object[]>

Получает данные о командлете или функции, используемых с указанными параметрами ("аргументами"), такими как путь. Псевдоним ArgumentList — Args.

Для определения параметров, добавленных к командлету при его использовании с определенным провайдером, установите значение ArgumentList равным пути на диске поставщика, например "HKEY_LOCAL_MACHINE\Software" или "cert:\my".

Обязательно?

false

Позиция?

2

Значение по умолчанию

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

-CommandType <CommandTypes>

Получает только команды указанных типов. Используйте "CommandType" или псевдоним "Type". По умолчанию командлет Get-Command получает командлеты и функции.

Допустимые значения:

-- Alias: все псевдонимы Windows PowerShell в текущем сеансе.

-- All: команды всех типов. Эквивалентно "get-command *".

-- Application: все файлы, отличные от файлов Windows PowerShell, которые присутствуют в путях, указанных в переменной среды Path ($env:path), в том числе файлы TXT, EXE и DLL.

-- Cmdlet: командлеты в текущем сеансе. По умолчанию используется значение "Cmdlet".

-- ExternalScript: все файлы PS1, которые присутствуют в путях, указанных в переменной среды Path ($env:path).

-- Filter и Function: все функции Windows PowerShell.

-- Script: блоки скриптов в текущем сеансе.

Обязательно?

false

Позиция?

named

Значение по умолчанию

Принимать входные данные из конвейера?

true (ByPropertyName)

Принимать подстановочные знаки?

false

-Module <string[]>

Получает команды, которые поставляются с определенными модулями или оснастками. Введите имена модулей или оснасток или введите объекты оснасток или модулей.

Можно обращаться к этому параметру по его имени (Module) или его псевдониму (PSSnapin). Выбранное имя параметра не влияет на результаты выполнения команды или ее выходные данные.

Этот параметр принимает строковые значения, но также можно предоставить объект PSModuleInfo или PSSnapinInfo, например объекты, возвращаемые Get-Module, Get-PSSnapin и Import-PSSession.

Обязательно?

false

Позиция?

named

Значение по умолчанию

нет

Принимать входные данные из конвейера?

true (ByPropertyName)

Принимать подстановочные знаки?

false

-Name <string[]>

Получает сведения только о командлетах или элементах команды с указанным именем. <Строка> представляет целое имя или часть имени командлета или элемента команды. Подстановочные знаки разрешены.

Для перечисления команд с одинаковыми именами в порядке выполнения введите имя команды без подстановочных знаков. Дополнительные сведения см. в разделе "Примечания".

Обязательно?

false

Позиция?

1

Значение по умолчанию

Принимать входные данные из конвейера?

true (ByValue, ByPropertyName)

Принимать подстановочные знаки?

false

-Noun <string[]>

Получает командлеты или функции с именами, в которых содержится указанное существительное. <Строка> представляет одно или несколько существительных или шаблонов существительных, таких как "process" или "*item*". Подстановочные знаки разрешены.

Обязательно?

false

Позиция?

named

Значение по умолчанию

Принимать входные данные из конвейера?

true (ByPropertyName)

Принимать подстановочные знаки?

false

-Syntax

Получает только указанные данные об элементе команды.

* Для псевдонимов извлекается стандартное имя.

* Для командлетов извлекается синтаксис.

* Для функций и фильтров извлекается определение функции.

* Для скриптов и приложений (файлов) извлекаются путь и имя файла.

Обязательно?

false

Позиция?

named

Значение по умолчанию

Принимать входные данные из конвейера?

true (ByPropertyName)

Принимать подстановочные знаки?

false

-TotalCount <int>

Получает только указанное количество элементов команды. Этот параметр позволяет ограничить объем выходных данных команды.

Обязательно?

false

Позиция?

named

Значение по умолчанию

Принимать входные данные из конвейера?

true (ByPropertyName)

Принимать подстановочные знаки?

false

-Verb <string[]>

Получает данные о командлетах и функциях с именами, в которых содержится указанный глагол. <Строка> представляет один или несколько глаголов или шаблонов глаголов, таких как "remove" или "*et". Подстановочные знаки разрешены.

Обязательно?

false

Позиция?

named

Значение по умолчанию

Принимать входные данные из конвейера?

true (ByPropertyName)

Принимать подстановочные знаки?

false

<CommonParameters>

Данный командлет поддерживает общие параметры -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer и -OutVariable. Дополнительные сведения см. в разделе about_Commonparameters.

Ввод и вывод

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

Входные данные

System.String

Командлету Get-Command можно передать по конвейеру указанные свойства-существительные "Name", "Command" и "Verb" или строковый объект.

Выходные данные

Object

Тип возвращаемого объекта зависит от типа извлеченного элемента команды. Например, для командлета Get-Command возвращается объект CmdletInfo, а для DLL Get-Command возвращается объект ApplicationInfo.

Примечания

При вызове без параметров команда "Get-Command" возвращает сведения о командлетах и функциях Windows PowerShell. Для точного указания возвращаемых элементов воспользуйтесь параметрами.

В отличие от команды Get-Help, которая отображает содержимое разделов XML-файлов справки, команда Get-Command получает информацию о командлетах непосредственно из кода командлетов, установленных в системе.

Командлет Get-Command возвращает команды в алфавитном порядке. Когда в сеансе имеется более одной команды с одним и тем же именем, командлет Get-Command возвращает команды в порядке их выполнения. Первой возвращаемой командой является команда, выполняемая при вводе имени команды без указания ее полного имени. Дополнительные сведения см. в разделе about_Command_Precedence.

Пример 1

C:\PS>get-command

Description
-----------
Эта команда получает сведения обо всех командлетах и функциях Windows PowerShell. 

На экране по умолчанию указывается тип команды ("Cmdlet", "Function" или "Filter"), имя командлета или функции и синтаксис или определение функции.






Пример 2

C:\PS>get-command -verb set | format-list

Description
-----------
Эта команда получает сведения обо всех командлетах и функциях, содержащих глагол "set", и отображает список, содержащий часть этих сведений. 

В формате списка содержатся поля, которые пропущены в отображении этой таблицы, в том числе полный синтаксис вызова. Для отображения всех полей (всех свойств объекта) введите команду "get-command -verb set | format-list *".






Пример 3

C:\PS>get-command -type cmdlet | sort-object noun | format-table -group noun

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

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






Пример 4

C:\PS>get-command -module Microsoft.PowerShell.Security, TestModule

Description
-----------
Эта команда получает команды из оснастки Microsoft.PowerShell.Security и модуля Test-Module.

Параметр Module позволяет получить команды, которые были добавлены при импорте модулей или добавлении оснасток Windows PowerShell.






Пример 5

C:\PS>get-command get-childitem -args cert: -syntax

Description
-----------
Эта команда извлекает сведения о командлете Get-ChildItem при использовании Get-ChildItem с поставщиком Windows PowerShell Certificate. 

При сравнении отображаемого в результате синтаксиса вызова с синтаксисом вызова, который отображается, если пропустить параметр Args (ArgumentList), можно видеть, что при вызове командлета Get-ChildItem поставщик Certificate динамически добавляет параметр CodeSigningCert.






Пример 6

C:\PS>(get-command get-childitem -ArgumentList cert:).parametersets[0].parameters | where-object { $_.IsDynamic }

Description
-----------
Эта команда извлекает только параметры, динамически добавляемые при вызове командлета Get-ChildItem поставщиком Windows PowerShell Certificate. Этот метод альтернативен методу из предыдущего примера.

В данном случае сначала выполняется команда "get-command get-childitem -ArgumentList cert:". При помощи командлета Get-Command она извлекает данные о командлете Get-ChildItem при его использовании совместно с поставщиком Certificate. Конструкция ".parametersets[0]" выбирает первую последовательность параметров (последовательность 0) из результатов вызова "get-childitem -argumentList cert:", а конструкция ".parameters" выбирает параметры в этой последовательности параметров. Полученные в результате параметры передаются по конвейеру командлету Where-Object для проверки каждого параметра ("$_.") при помощи его свойства IsDynamic. Для нахождения свойств объектов в команде воспользуйтесь командлетом Get-Member.






Пример 7

C:\PS>get-command *

Description
-----------
Эта команда получает информацию о командлетах, функциях, фильтрах, скриптах и псевдонимах Windows PowerShell в текущей консоли.

Она также получает информацию обо всех файлах, которые присутствуют в путях, указанных в переменной среды Path ($env:path). Для каждого файла возвращается объект ApplicationInfo (System.Management.Automation.ApplicationInfo), а не объект FileInfo (System.IO.FileInfo)






Пример 8

C:\PS>get-command | where-object {$_.definition -like "*first*"}

CommandType	 Name						Definition
-----------	 ----						---------
Cmdlet		Select-Object			 Select-Object [[-Property]

Description
-----------
Эта команда находит командлет или функцию на основании имени одного из параметров. Эту команду можно использовать для определения командлета или функции, если удается вспомнить только имя одного из параметров.

В данном примере известно, что у одного командлета или функции есть параметр First, который позволяет получить первые "n" объектов в списке, но неизвестно имя командлета.

В команде используется командлет Get-Command, позволяющий получить объект CmdletInfo, который представляет все командлеты и функции в сеансе. У объекта CmdletInfo есть свойство Definition, в котором содержится синтаксис командлета или функции с указанием всех параметров. 

Оператор конвейера (|) используется для передачи объекта CmdletInfo командлету Where-Object, который анализирует определение (синтаксис) каждого объекта ($_) и выполняет поиск значения "first".

Результат выполнения команды показывает, что параметр First принадлежит командлету Select-Object.






Пример 9

C:\PS>get-command dir | format-list

Name			: dir
CommandType	 : Alias
Definition		: Get-ChildItem
ReferencedCommand : Get-ChildItem
ResolvedCommand   : Get-ChildItem

Description
-----------
В этом примере показано, как использовать командлет Get-Command для псевдонима. Хотя командлет Get-Command обычно используется для командлетов, он также отображает информацию о коде в скриптах, функциях, псевдонимах и исполняемых файлах.

Эта команда удаляет отображает псевдоним "dir" в текущей консоли. Результат передается по конвейеру командлетам Format-List.






Пример 10

C:\PS>get-command notepad

CommandType	 Name		 Definition
-----------	 ----		 ----------
Application	 notepad.exe	C:\WINDOWS\system32\notepad.exe
Application	 NOTEPAD.EXE	C:\WINDOWS\NOTEPAD.EXE

Description
-----------
В этом примере показано, как использовать командлет Get-Command для определения команды, выполняемой Windows PowerShell в случае, если доступны несколько команд с одинаковым именем. При использовании параметра Name без подстановочных знаков командлет Get-Command перечисляет команды с указанным именем в порядке выполнения.

Это команда показывает, какая программа Notepad будет запущена Windows PowerShell при вводе "Notepad" без полного пути. В команде используется параметр Name без подстановочных знаков. 

Пример выходных данных показывает команды с именем "Notepad" в текущей консоли. Из приведенных данных можно сделать вывод, что Windows PowerShell запустит экземпляр Notepad.exe из каталога C:\Windows\System32.






Пример 11

C:\PS>(get-command get-date).pssnapin

C:\PS> (get-command remove-gpo).module

Description
-----------
Эти команды показывают, как найти оснастку или модуль, к которому принадлежит определенный командлет.

В первой команде для определения оснастки, добавившей командлет Get-Date, используется свойство PSSnapin объекта CmdletInfo. 

Во второй команде для определения модуля, добавившего командлет Remove-GPO, используется свойство Module объекта CmdletInfo.






См. также