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[]>]
[-UseFuzzyMatching]
[-FuzzyMinimumDistance <UInt32>]
[-UseAbbreviationExpansion]
[<CommonParameters>]
Описание
Командлет Get-Command
получает все команды, установленные на компьютере, включая командлеты, псевдонимы, функции, фильтры, скрипты и приложения. Get-Command
получает команды из модулей и команд PowerShell, импортированных из других сеансов. Чтобы получить только те команды, которые были импортированы в текущий сеанс, используйте параметр ListImported.
Без параметров Get-Command
получает все командлеты, функции и псевдонимы, установленные на компьютере. Get-Command *
получает все типы команд, включая все файлы, отличные от PowerShell, в переменной среды Path ($env:Path
), которые он перечисляет в типе команды application.
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. Получение команд в модуле
Эта команда использует параметр модуля для получения команд в модулях 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 и Синтаксис для получения синтаксиса командлета Get-ChildItem
при его использовании на диске Cert: Сертификат: диск PowerShell — это диск PowerShell, который поставщик сертификатов добавляет в сеанс.
Get-Command -Name 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 -Name $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. Получение командлетов с помощью имени параметра и типа
Эта команда получает командлеты с параметром, имя которого включает проверку подлинности и тип AuthenticationMechanism.
Get-Command -ParameterName *Auth* -ParameterType AuthenticationMechanism
Для поиска командлетов, которые позволяют указать метод, использующийся для проверки подлинности пользователя, можно использовать команду подобным образом.
Параметр ParameterType разделяет параметры, которые получают значение AuthenticationMechanism от тех параметров, которые получают параметр AuthenticationLevel, даже если они имеют одинаковые имена.
Пример 10. Получение псевдонима
В этом примере показано, как использовать Get-Command
командлет с псевдонимом.
Get-Command -Name dir
CommandType Name ModuleName
----------- ---- ----------
Alias dir -> Get-ChildItem
Хотя он обычно используется для командлетов и функций, Get-Command
также получает скрипты, функции, псевдонимы и исполняемые файлы.
В выходных данных команды показано специальное представление значения свойства Name для псевдонимов. В представлении показан псевдоним и полное имя команды.
Пример 11. Получение синтаксиса из псевдонима
В этом примере показано, как получить синтаксис вместе со стандартным именем псевдонима.
Выходные данные команды показывают помеченный псевдоним со стандартным именем, а затем синтаксис.
Get-Command -Name dir -Syntax
dir (alias) -> Get-ChildItem
dir [[-Path] <string[]>] [[-Filter] <string>] [-Include <string[]>] [-Exclude <string[]>] [-Recurse] [-Depth <uint>] [-Force] [-Name] [-Attributes <FlagsExpression[FileAttributes]>] [-FollowSymlink] [-Directory] [-File] [-Hidden] [-ReadOnly] [-System] [<CommonParameters>]
dir [[-Filter] <string>] -LiteralPath <string[]> [-Include <string[]>] [-Exclude <string[]>] [-Recurse] [-Depth <uint>] [-Force] [-Name] [-Attributes <FlagsExpression[FileAttributes]>] [-FollowSymlink] [-Directory] [-File] [-Hidden] [-ReadOnly] [-System] [<CommonParameters>]
Пример 12. Получение всех экземпляров команды Блокнота
В этом примере используется параметр All командлета Get-Command
для отображения всех экземпляров Notepad
команды на локальном компьютере.
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.
Пример 13. Получение имени модуля, содержащего командлет
Эта команда получает имя модуля, в котором Get-Date
был создан командлет.
Команда использует свойство ModuleName всех команд.
(Get-Command Get-Date).ModuleName
Microsoft.PowerShell.Utility
Этот формат команд работает над командами в модулях PowerShell, даже если они не импортируются в сеанс.
Пример 14. Получение командлетов и функций с типом вывода
Get-Command -Type Cmdlet | Where-Object OutputType | Format-List -Property Name, OutputType
Эта команда получает командлеты и функции, содержащие тип выходных данных и тип возвращаемых объектов.
Первая часть команды получает все командлеты. Оператор конвейера (|
) отправляет командлеты Where-Object
в командлет, который выбирает только те, в которых заполняется свойство OutputType . Другой оператор конвейера отправляет выбранные объекты Format-List
командлета в командлет, который отображает имя и выходной тип каждого командлета в списке.
Свойство OutputType объекта CommandInfo имеет значение, отличное от null, только если код командлета определяет для командлета атрибут OutputType.
Пример 15. Получение командлетов, которые принимают определенный тип объекта в качестве входных данных
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, команда использует нотацию массива, чтобы получить первый сетевой адаптер, который возвращает командлет.
Пример 16. Получение команд с помощью нечеткого совпадения
В этом примере имя команды намеренно имеет опечатку как get-commnd.
-UseFuzzyMatching
Используя переключатель, командлет определил, что за лучшим совпадением последовали Get-Command
другие собственные команды в системе, которые были аналогичным совпадением.
Get-Command get-commnd -UseFuzzyMatching
CommandType Name Version Source
----------- ---- ------- ------
Cmdlet Get-Command 6.2.0.0 Microsoft.PowerShell.Core
Application getconf 0.0.0.0 /usr/bin/getconf
Application command 0.0.0.0 /usr/bin/command
Параметры
-All
Указывает, что этот командлет получает все команды, включая команды одного типа с одинаковым именем. По умолчанию Get-Command
получает только команды, выполняемые при вводе имени команды.
Дополнительные сведения о методе, который PowerShell использует для выбора команды для выполнения, если несколько команд имеют одно и то же имя, см . в about_Command_Precedence. Сведения о именах команд, которые не выполняются по умолчанию из-за конфликта имен, см. в about_Modules.
Этот параметр впервые появился в Windows PowerShell 3.0.
В Windows PowerShell 2.0 Get-Command
по умолчанию получает все команды.
Тип: | SwitchParameter |
Position: | Named |
Default value: | False |
Обязательно: | False |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-ArgumentList
Задает массив аргументов. Этот командлет получает сведения о командлете или функции при использовании с указанными параметрами ("аргументы"). Псевдоним параметра ArgumentList — Args.
Чтобы определить динамические параметры, доступные только при использовании некоторых других параметров, задайте значение ArgumentList параметрам, которые активируют динамические параметры.
Чтобы определить динамические параметры, добавляемые поставщиком в командлет, задайте для параметра ArgumentList путь к пути на диске поставщика, например WSMan:, HKLM:или Cert:. Если команда является командлетом поставщика PowerShell, введите только один путь в каждой команде. Командлеты поставщика возвращают только динамические параметры для первого пути значение ArgumentList. Сведения о командлетах поставщика см. в about_Providers.
Тип: | Object[] |
Aliases: | Args |
Position: | 1 |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-CommandType
Указывает типы команд, которые получает этот командлет. Введите один или несколько типов команд. Используйте CommandType или его псевдоним Type. По умолчанию Get-Command
получает все командлеты, функции и псевдонимы.
Допустимые значения для этого параметра:
Alias
: получает псевдонимы всех команд PowerShell. Подробнее см. в статье about_Aliases.All
: возвращает все типы команд. Это значение параметра эквивалентноGet-Command *
.Application
: получает файлы, отличные от PowerShell, в пути, перечисленные в переменной среды path ($env:path
), включая.txt
,.exe
и.dll
файлы. Дополнительные сведения об переменной среды Path см. в about_Environment_Variables.Cmdlet
: возвращает все командлеты.ExternalScript
: получает все.ps1
файлы в путях, перечисленных в переменной среды Path ($env:path
).Filter
иFunction
: получает все расширенные и простые функции и фильтры PowerShell.Script
: возвращает все блоки скриптов. Чтобы получить скрипты PowerShell (.ps1
файлы), используйтеExternalScript
это значение.
Эти значения определяются как перечисление на основе флага. Можно объединить несколько значений, чтобы задать несколько флагов с помощью этого параметра. Значения можно передать параметру CommandType в виде массива значений или в виде строки, разделенной запятыми этих значений. Командлет объединяет значения с помощью операции binary-OR. Передача значений в виде массива является самым простым параметром, а также позволяет использовать завершение табуляции для значений.
Тип: | CommandTypes |
Aliases: | Type |
Допустимые значения: | Alias, Function, Filter, Cmdlet, ExternalScript, Application, Script, Workflow, Configuration, All |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-FullyQualifiedModule
Это значение может быть именем модуля, полной спецификацией модуля или путем к файлу модуля.
Если значение является путем, путь может быть полностью или относительным. Относительный путь разрешается относительно скрипта, содержащего инструкцию using.
Если значение является спецификацией имени или модуля, PowerShell выполняет поиск в PSModulePath для указанного модуля.
Спецификация модуля — это хэш-файл, имеющий следующие ключи.
ModuleName
- Обязательный указывает имя модуля.GUID
- Необязательный атрибут указывает GUID модуля.Также требуется указать по крайней мере один из трех приведенных ниже ключей.
ModuleVersion
— задает минимальную допустимую версию модуля.MaximumVersion
— задает максимальную допустимую версию модуля.RequiredVersion
— указывает точную, требуемую версию модуля. Это нельзя использовать с другими ключами версии.
Параметр FullyQualifiedModule нельзя указать в той же команде, что и параметр module. Два параметра являются взаимоисключающими.
Тип: | ModuleSpecification[] |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-FuzzyMinimumDistance
Этот параметр позволяет фильтровать нечеткие результаты более или менее точными. Расстояние вычисляется с помощью алгоритма расстояния Дамерау Левенштеина, который указывает, сколько шагов соответствует исходному значению. Более точное расстояние ниже. Расстояние от нуля — это точное совпадение.
Тип: | UInt32 |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-ListImported
Указывает, что этот командлет получает только команды в текущем сеансе.
Начиная с PowerShell 3.0, Get-Command
по умолчанию получает все установленные команды, включая, но не ограничивается, командами в текущем сеансе. В PowerShell 2.0 он получает только команды в текущем сеансе.
Этот параметр впервые появился в Windows PowerShell 3.0.
Тип: | SwitchParameter |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-Module
Задает массив модулей. Этот командлет получает команды, поступающие из указанных модулей. Введите имена модулей или объектов модулей.
Этот параметр принимает строковые значения, но значение этого параметра также может быть объектом PSModuleInfo, например объектами, Get-Module
возвращаемыми командлетами.Import-PSSession
Тип: | String[] |
Aliases: | PSSnapin |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | True |
-Name
Задает массив имен. Этот командлет получает только команды с указанным именем. Введите имя или шаблон имени. Можно использовать подстановочные знаки.
Чтобы получить команды с одинаковым именем, используйте параметр All. Если две команды имеют одинаковое имя, по умолчанию Get-Command
получает команду, которая выполняется при вводе имени команды.
Тип: | String[] |
Position: | 0 |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | True |
-Noun
Задает массив существительных команд. Этот командлет получает команды, включающие командлеты, функции и псевдонимы, содержащие имена, включающие указанное существительное. Введите одно или несколько существительных или шаблонов существительных. Можно использовать подстановочные знаки.
Тип: | String[] |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | True |
-ParameterName
Задает массив имен параметров. Этот командлет получает команды в сеансе с указанными параметрами. Введите имена параметров или псевдонимы параметров. Поддерживаются подстановочные знаки.
Параметры ParameterName и ParameterType ищут только команды в текущем сеансе.
Этот параметр впервые появился в Windows PowerShell 3.0.
Тип: | String[] |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | True |
-ParameterType
Задает массив имен параметров. Этот командлет получает команды в сеансе с параметрами указанного типа. Введите полное имя или частичное имя типа параметра. Поддерживаются подстановочные знаки.
Параметры ParameterName и ParameterType ищут только команды в текущем сеансе.
Этот параметр впервые появился в Windows PowerShell 3.0.
Тип: | PSTypeName[] |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | True |
-ShowCommandInfo
Указывает, что этот командлет отображает сведения о команде.
Этот параметр появился в Windows PowerShell 5.0.
Тип: | SwitchParameter |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-Syntax
Указывает, что этот командлет получает только следующие указанные данные о команде:
- Псевдонимы. Возвращает стандартное имя.
- Командлеты. Возвращает синтаксис.
- Функции и фильтры. Возвращает определение функции.
- Скрипты и приложения или файлы. Возвращает путь и имя файла.
Тип: | SwitchParameter |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-TotalCount
Указывает количество команд, которые нужно получить. Этот параметр можно использовать, чтобы ограничить выходные данные команды.
Тип: | Int32 |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-UseAbbreviationExpansion
Указывает использование сопоставления символов в команде для поиска с прописными символами в команде. Например, будет соответствовать Import-PowerShellDataFile
каждому из символов, i-psdf
чтобы найти совпадения с верхним регистром в результате. При использовании этого типа совпадения все подстановочные знаки не будут соответствовать.
Тип: | SwitchParameter |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-UseFuzzyMatching
Указывает использование нечеткого алгоритма сопоставления при поиске команд. Порядок выходных данных от ближайшего совпадения до наименьшего вероятного совпадения. Подстановочные знаки не следует использовать с нечетким сопоставлением, так как он попытается сопоставить команды, которые могут содержать эти подстановочные знаки.
Тип: | SwitchParameter |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-Verb
Задает массив командных команд. Этот командлет получает команды, включающие командлеты, функции и псевдонимы, содержащие имена, содержащие указанную команду. Введите один или несколько глаголов или шаблонов глаголов. Можно использовать подстановочные знаки.
Тип: | String[] |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | True |
Входные данные
Вы можете передать имена команд в этот командлет.
Выходные данные
Этот командлет возвращает объекты, производные от класса CommandInfo . Тип возвращаемого объекта зависит от типа команды, которая Get-Command
получает.
Представляет псевдонимы.
Представляет приложения и файлы.
Представляет командлеты.
Представляет функции и фильтры.
Примечания
PowerShell включает следующие псевдонимы для Get-Command
:
Для всех платформ.
gcm
Если для сеанса доступно несколько команд с одинаковым именем, возвращает команду,
Get-Command
которая выполняется при вводе имени команды. Чтобы получить команды с одинаковым именем, перечисленным в порядке выполнения, используйте параметр All . Дополнительные сведения см. в разделе about_Command_Precedence.При автоматическом импорте модуля эффект совпадает с использованием командлета
Import-Module
. Модуль может добавить команды, типы и файлы форматирования, а также запустить скрипты в сеансе. Чтобы включить, отключить и настроить автоматическое импортирование модулей, используйте$PSModuleAutoLoadingPreference
переменную предпочтения. Дополнительные сведения см. в about_Preference_Variables.
Связанные ссылки
PowerShell