Get-Command
Получает все команды.
Синтаксис
Get-Command
[-Verb <String[]>]
[-Noun <String[]>]
[-Module <String[]>]
[-FullyQualifiedModule <ModuleSpecification[]>]
[-TotalCount <Int32>]
[-Syntax]
[-ShowCommandInfo]
[[-ArgumentList] <Object[]>]
[-All]
[-ListImported]
[-ParameterName <String[]>]
[-ParameterType <PSTypeName[]>]
[<CommonParameters>]
Get-Command
[[-Name] <String[]>]
[-Module <String[]>]
[-FullyQualifiedModule <ModuleSpecification[]>]
[-CommandType <CommandTypes>]
[-TotalCount <Int32>]
[-Syntax]
[-ShowCommandInfo]
[[-ArgumentList] <Object[]>]
[-All]
[-ListImported]
[-ParameterName <String[]>]
[-ParameterType <PSTypeName[]>]
[<CommonParameters>]
Описание
Командлет Get-Command
получает все команды, установленные на компьютере, включая командлеты, псевдонимы, функции, фильтры, скрипты и приложения. Get-Command
получает команды из модулей PowerShell и команды, импортированные из других сеансов. Чтобы получить только те команды, которые были импортированы в текущий сеанс, используйте параметр ListImported.
Без параметров Get-Command
получает все командлеты, функции и псевдонимы, установленные на компьютере. Get-Command *
получает все типы команд, включая все файлы, не относящиеся к PowerShell, в переменной среды Path ($env:Path
), которая указана в типе команды Приложения.
Get-Command
если используется точное имя команды без подстановочных знаков, автоматически импортируется модуль, содержащий команду, чтобы можно было использовать команду немедленно. Чтобы включить, отключить и настроить автоматический импорт модулей, используйте $PSModuleAutoLoadingPreference
переменную предпочтения. Дополнительные сведения см. в разделе about_Preference_Variables.
Get-Command
получает данные непосредственно из командного кода, в отличие от Get-Help
, который получает сведения из разделов справки.
Начиная с Windows PowerShell 5.0 результаты командлета Get-Command
по умолчанию отображают столбец Версия. В класс CommandInfo добавлено новое свойство Version.
Примеры
Пример 1. Получение командлетов, функций и псевдонимов
Эта команда возвращает командлеты PowerShell, функции и псевдонимы, установленные на компьютере.
Get-Command
Пример 2. Получение команд в текущем сеансе
Эта команда использует параметр ListImported, чтобы получить только команды в текущем сеансе.
Get-Command -ListImported
Пример 3. Получение командлетов и их отображение по порядку
Эта команда получает все командлеты, сортирует их в алфавитном порядке по существительным в имени командлета, а затем отображает их в группах на базе существительных. Это помогает найти командлеты для задачи.
Get-Command -Type Cmdlet | Sort-Object -Property Noun | Format-Table -GroupBy Noun
Пример 4. Получение команд в модуле
Эта команда использует параметр Module для получения команд в модулях Microsoft.PowerShell.Security и Microsoft.PowerShell.Utility.
Get-Command -Module Microsoft.PowerShell.Security, Microsoft.PowerShell.Utility
Пример 5. Получение сведений о командлете
Эта команда получает сведения о командлете Get-AppLockerPolicy
. Она также импортирует модуль AppLocker, который добавляет все команды в модуле AppLocker в текущий сеанс.
Get-Command Get-AppLockerPolicy
Если модуль импортируется автоматически, результат аналогичен результату при использовании командлета Import-Module.
Модуль может добавить команды, типы и файлы форматирования, а также запустить скрипты в сеансе. Чтобы включить, отключить и настроить автоматический импорт модулей, используйте $PSModuleAutoLoadingPreference
переменную предпочтения. Дополнительные сведения см. в разделе about_Preference_Variables.
Пример 6. Получение синтаксиса командлета
Эта команда использует параметры ArgumentList и Syntax для получения синтаксиса командлета Get-ChildItem
при его использовании на диске Cert: . Диск Cert: — это диск PowerShell, который поставщик сертификатов добавляет в сеанс.
Get-Command Get-Childitem -Args Cert: -Syntax
При сравнении синтаксиса, отображаемого в выходных данных, с синтаксисом, отображаемым при пропуске параметра Args (ArgumentList), вы увидите, что поставщик сертификата добавляет динамический параметр CodeSigningCert в Get-ChildItem
командлет.
Дополнительные сведения о поставщике сертификатов см. в разделе about_Certificate_Provider.
Пример 7. Получение динамических параметров
Команда в примере использует функцию Get-DynamicParameters
для получения динамических параметров, которые поставщик сертификатов добавляет в Get-ChildItem
командлет при использовании на диске Cert:.
function Get-DynamicParameters
{
param ($Cmdlet, $PSDrive)
(Get-Command $Cmdlet -ArgumentList $PSDrive).ParameterSets | ForEach-Object {$_.Parameters} | Where-Object { $_.IsDynamic } | Select-Object -Property Name -Unique
}
Get-DynamicParameters -Cmdlet Get-ChildItem -PSDrive Cert:
Name
----
CodeSigningCert
Функция Get-DynamicParameters
в этом примере получает динамические параметры командлета. Это альтернативный метод, использованный в предыдущем примере. Динамический параметр можно добавить в командлет с помощью другого командлета или поставщика.
Пример 8. Получение всех команд всех типов
Эта команда получает все команды всех типов на локальном компьютере, включая исполняемые файлы в путях переменной среды Path ($env:path
).
Get-Command *
Она возвращает для каждого файла объект ApplicationInfo (System.Management.Automation.ApplicationInfo), а не объект FileInfo (System.IO.FileInfo).
Пример 9. Получение командлетов с помощью имени
Эта команда получает командлеты с параметром, имя которого включает auth и типОм AuthenticationMechanism.
Get-Command -ParameterName *Auth* -ParameterType AuthenticationMechanism
Для поиска командлетов, которые позволяют указать метод, использующийся для проверки подлинности пользователя, можно использовать команду подобным образом.
Параметр ParameterType разделяет параметры, которые получают значение AuthenticationMechanism от тех параметров, которые получают параметр AuthenticationLevel, даже если они имеют одинаковые имена.
Пример 10. Получение псевдонима
В этом примере показано, как использовать Get-Command
командлет с псевдонимом.
Get-Command dir
CommandType Name ModuleName
----------- ---- ----------
Alias dir -> Get-ChildItem
Хотя он обычно используется в командлетах и функциях, Get-Command
также получает скрипты, функции, псевдонимы и исполняемые файлы.
В выходных данных команды показано специальное представление значения свойства Name для псевдонимов. В представлении показан псевдоним и полное имя команды.
Пример 11. Получение всех экземпляров команды Блокнота
В этом примере используется параметр All командлета Get-Command
для отображения всех экземпляров команды "Блокнот" на локальном компьютере.
Get-Command Notepad -All | Format-Table CommandType, Name, Definition
CommandType Name Definition
----------- ---- ----------
Application notepad.exe C:\WINDOWS\system32\notepad.exe
Application NOTEPAD.EXE C:\WINDOWS\NOTEPAD.EXE
Параметр All полезен, если в сеансе есть больше одной команды с одинаковым именем.
Начиная с Windows PowerShell 3.0, по умолчанию, когда сеанс включает несколько команд с одинаковым именем, получает только команду, Get-Command
которая выполняется при вводе имени команды. С помощью параметра Get-Command
All получает все команды с указанным именем и возвращает их в порядке очередности выполнения. Чтобы запустить команду, которая не является первой в списке, введите полный путь к команде.
Дополнительные сведения о приоритете команд см. в разделе about_Command_Precedence.
Пример 12. Получение имени модуля, содержащего командлет
Эта команда возвращает имя модуля, в котором Get-Date
был создан командлет.
Команда использует свойство ModuleName всех команд.
(Get-Command Get-Date).ModuleName
Microsoft.PowerShell.Utility
Этот формат команд работает с командами в модулях PowerShell, даже если они не импортированы в сеанс.
Пример 13. Получение командлетов и функций с типом выходных данных
Get-Command -Type Cmdlet | Where-Object OutputType | Format-List -Property Name, OutputType
Эта команда получает командлеты и функции, содержащие тип выходных данных и тип возвращаемых объектов.
Первая часть команды получает все командлеты.
Оператор конвейера (|) отправляет командлеты в Where-Object
командлет , который выбирает только те, в которых заполняется свойство OutputType .
Другой оператор конвейера отправляет выбранные объекты командлета командлету Format-List
, который отображает имя и тип выходных данных каждого командлета в списке.
Свойство OutputType объекта CommandInfo имеет значение, отличное от NULL, только если код командлета определяет для командлета атрибут OutputType.
Пример 14. Получение командлетов, которые принимают определенный тип объекта в качестве входных данных
Get-Command -ParameterType (((Get-NetAdapter)[0]).PSTypeNames)
CommandType Name ModuleName
----------- ---- ----------
Function Disable-NetAdapter NetAdapter
Function Enable-NetAdapter NetAdapter
Function Rename-NetAdapter NetAdapter
Function Restart-NetAdapter NetAdapter
Function Set-NetAdapter NetAdapter
Эта команда находит командлеты, которые получают объекты сетевого адаптера в качестве выходных данных. Этот формат команды можно использовать для поиска командлетов, которые принимают тип объектов, возвращаемый любой командой.
Команда использует внутреннее свойство PSTypeNames всех объектов, которые получают типы, описывающие объект. Чтобы получить свойство сетевого адаптера PSTypeNames, а не свойство коллекции сетевых адаптеров PSTypeNames, команда использует нотацию массива, чтобы получить первый сетевой адаптер, который возвращает командлет. Чтобы получить свойство сетевого адаптера PSTypeNames, а не свойство коллекции сетевых адаптеров PSTypeNames, команда использует нотацию массива, чтобы получить первый сетевой адаптер, который возвращает командлет.
Параметры
-All
Указывает, что этот командлет получает все команды, включая команды одного типа с одинаковым именем. По умолчанию получает только команды, Get-Command
которые выполняются при вводе имени команды.
Дополнительные сведения о методе, который PowerShell использует для выбора команды для выполнения, если несколько команд имеют одинаковые имена, см. в разделе about_Command_Precedence. Сведения об именах команд с указанием модуля и выполнении команд, которые не выполняются по умолчанию из-за конфликта имен, см. в разделе about_Modules.
Этот параметр впервые появился в Windows PowerShell 3.0.
В Windows PowerShell 2.0 Get-Command
по умолчанию получает все команды.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-ArgumentList
Задает массив аргументов. Этот командлет получает сведения о командлете или функции при их использовании с указанными параметрами ("аргументами"). Псевдоним для ArgumentList — Args.
Чтобы определить динамические параметры, доступные только при использовании некоторых других параметров, задайте для argumentList значение параметров, которые активируют динамические параметры.
Чтобы определить динамические параметры, добавляемые поставщиком в командлет, задайте для параметра ArgumentList путь на диске поставщика, например WSMan:, HKLM:или Cert:. Если команда является командлетом поставщика PowerShell, введите только один путь в каждой команде. Командлеты поставщика возвращают только динамические параметры для первого пути значение ArgumentList. Сведения о командлетах поставщика см. в разделе about_Providers.
Type: | Object[] |
Aliases: | Args |
Position: | 1 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-CommandType
Указывает типы команд, которые получает этот командлет. Введите один или несколько типов команд. Используйте параметр CommandType или его псевдоним Type. По умолчанию Get-Command
получает все командлеты, функции и псевдонимы.
Допустимые значения для этого параметра:
- Alias. Возвращает псевдонимы всех команд PowerShell. Подробнее см. в статье about_Aliases.
- Все. Получает все типы команд. Это значение параметра эквивалентно
Get-Command *
. - приложение. Возвращает файлы, не относящиеся к PowerShell, по путям, перечисленным в переменной среды Path ($env:path), включая файлы .txt, .exe и .dll. Дополнительные сведения о переменной среды Path см. в разделе about_Environment_Variables.
- Командлет. Получает все командлеты.
- ExternalScript. Получает все PS1-файлы в путях, указанных в переменной среды Path ($env:path).
- Фильтр и функция. Возвращает все расширенные и простые функции и фильтры PowerShell.
- Скрипт. Получает все блоки скриптов. Чтобы получить скрипты PowerShell (.ps1 файлы), используйте значение ExternalScript.
- Рабочий процесс. Получает все рабочие процессы. Дополнительные сведения о рабочих процессах см. в статье "Общие сведения о рабочем процессе Windows PowerShell".
Type: | CommandTypes |
Aliases: | Type |
Accepted values: | Alias, Function, Filter, Cmdlet, ExternalScript, Application, Script, Workflow, Configuration, All |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-FullyQualifiedModule
Задает модули с именами, указанными в виде объектов ModuleSpecification, описанных в разделе Примечанияв конструкторе moduleSpecification (hashtable). Например, параметр FullyQualifiedModule принимает имя модуля, указанное в одном из следующих форматов:
@{ModuleName = "modulename"; ModuleVersion = "version_number"}
@{ModuleName = "modulename"; ModuleVersion = "version_number"; Guid = "GUID"}
Параметры ModuleName и ModuleVersion обязательны, а Guid — нет.
Параметр FullyQualifiedModule нельзя указать в той же команде, что и параметр Module . Эти два параметра являются взаимоисключающими.
Type: | ModuleSpecification[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-ListImported
Указывает, что этот командлет получает только команды в текущем сеансе.
Начиная с PowerShell 3.0, по умолчанию Get-Command
получает все установленные команды, включая, помимо прочего, команды в текущем сеансе. В PowerShell 2.0 он получает только команды в текущем сеансе.
Этот параметр впервые появился в Windows PowerShell 3.0.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Module
Задает массив модулей. Этот командлет получает команды, полученные из указанных модулей или оснастки. Введите имена модулей или оснастки.
Этот параметр принимает строковые значения, но значение этого параметра также может быть объектом PSModuleInfo или PSSnapinInfo , например объектами, возвращаемыми Get-Module
командлетами , Get-PSSnapin
и Import-PSSession
.
На этот параметр можно ссылаться по его имени, Module или псевдониму PSSnapin. Выбранное имя параметра не влияет на выходные данные команды.
Type: | String[] |
Aliases: | PSSnapin |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | True |
-Name
Задает массив имен. Этот командлет получает только команды с указанным именем. Введите имя или шаблон имени. Можно использовать подстановочные знаки.
Чтобы получить команды с одинаковым именем, используйте параметр All. Если две команды имеют одинаковые имена, по умолчанию получает команду, Get-Command
которая выполняется при вводе имени команды.
Type: | String[] |
Position: | 0 |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | True |
-Noun
Задает массив существительных команд. Этот командлет получает команды, в том числе командлеты, функции и псевдонимы с именами, включающими указанное существительное. Введите одно или несколько существительных или шаблонов существительных. Можно использовать подстановочные знаки.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | True |
-ParameterName
Задает массив имен параметров. Этот командлет получает команды в сеансе с указанными параметрами. Введите имена параметров или псевдонимы параметров. Поддерживаются подстановочные знаки.
Параметры ParameterName и ParameterType ищут только команды в текущем сеансе.
Этот параметр впервые появился в Windows PowerShell 3.0.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-ParameterType
Задает массив имен параметров. Этот командлет получает команды в сеансе с параметрами указанного типа. Введите полное имя или частичное имя типа параметра. Поддерживаются подстановочные знаки.
Параметры ParameterName и ParameterType ищут только команды в текущем сеансе.
Этот параметр впервые появился в Windows PowerShell 3.0.
Type: | PSTypeName[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-ShowCommandInfo
Указывает, что этот командлет отображает сведения о команде.
Этот параметр появился в Windows PowerShell 5.0.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Syntax
Указывает, что этот командлет получает только следующие указанные данные о команде:
- Псевдонимы. Возвращает стандартное имя.
- Командлеты. Возвращает синтаксис.
- Функции и фильтры. Возвращает определение функции.
- Скрипты, приложения или файлы. Возвращает путь и имя файла.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-TotalCount
Указывает количество команд для получения. Этот параметр можно использовать, чтобы ограничить выходные данные команды.
Type: | Int32 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Verb
Задает массив командных команд. Этот командлет получает команды, в том числе командлеты, функции и псевдонимы с именами, включающими указанную команду. Введите один или несколько глаголов или шаблонов глаголов. Можно использовать подстановочные знаки.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | True |
Входные данные
Вы можете передать имена команд в этот командлет.
Выходные данные
Этот командлет возвращает объекты, производные от класса CommandInfo . Тип возвращаемого объекта зависит от типа возвращаемой Get-Command
команды.
Представляет псевдонимы.
Представляет приложения и файлы.
Представляет командлеты.
Представляет функции и фильтры.
Представляет рабочие процессы.
Примечания
- Если сеансу доступно несколько команд с одинаковыми именами, возвращает команду,
Get-Command
которая выполняется при вводе имени команды. Чтобы получить команды с одинаковым именем, перечисленные в порядке выполнения, используйте параметр All . Дополнительные сведения см. в разделе about_Command_Precedence. - При автоматическом импорте модуля результат будет таким же, как и при использовании командлета
Import-Module
. Модуль может добавить команды, типы и файлы форматирования, а также запустить скрипты в сеансе. Чтобы включить, отключить и настроить автоматический импорт модулей, используйте$PSModuleAutoLoadingPreference
переменную предпочтения. Дополнительные сведения см. в разделе about_Preference_Variables.