[玩转系统] Get-Command (Microsoft.PowerShell.Core)
作者:精品下载站 日期:2024-12-14 02:16:12 浏览:11 分类:玩电脑
Get-Command (Microsoft.PowerShell.Core)
Get-Command
模块 :Microsoft.PowerShell.Core获取所有命令。
句法
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
cmdlet 获取计算机上安装的所有命令,包括 cmdlet、别名、函数、筛选器、脚本和应用程序。 Get-Command
获取来自 PowerShell 模块的命令以及从其他会话导入的命令。要仅获取已导入到当前会话中的命令,请使用 ListImported 参数。
如果没有参数,Get-Command
会获取计算机上安装的所有 cmdlet、函数和别名。 Get-Command *
获取所有类型的命令,包括 Path 环境变量 ($env:Path
) 中的所有非 PowerShell 文件(它在应用程序中列出)命令类型。
Get-Command
使用命令的确切名称(不带通配符),会自动导入包含该命令的模块,以便您可以立即使用该命令。要启用、禁用和配置模块的自动导入,请使用 $PSModuleAutoLoadingPreference
首选项变量。有关详细信息,请参阅 about_Preference_Variables。
Get-Command
直接从命令代码获取数据,这与 Get-Help
不同,后者从帮助主题获取信息。
从 Windows PowerShell 5.0 开始,Get-Command
cmdlet 的结果默认显示版本 列。 CommandInfo 类中添加了新的 Version 属性。
示例
示例 1:获取 cmdlet、函数和别名
此命令获取计算机上安装的 PowerShell cmdlet、函数和别名。
Get-Command
示例2:获取当前会话中的命令
此命令使用 ListImported 参数仅获取当前会话中的命令。
Get-Command -ListImported
示例 3:获取 cmdlet 并按顺序显示它们
此命令获取所有 cmdlet,按 cmdlet 名称中的名词字母顺序对它们进行排序,然后将它们显示在基于名词的组中。此显示可以帮助您找到任务的 cmdlet。
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:获取有关 cmdlet 的信息
此命令获取有关 Get-AppLockerPolicy
cmdlet 的信息。它还导入AppLocker模块,该模块将AppLocker模块中的所有命令添加到当前会话。
Get-Command Get-AppLockerPolicy
自动导入模块时,效果与使用 Import-Module cmdlet 相同。该模块可以添加命令、类型和格式化文件,并在会话中运行脚本。要启用、禁用和配置模块自动导入,请使用 $PSModuleAutoLoadingPreference
首选项变量。有关详细信息,请参阅 about_Preference_Variables。
示例 6:获取 cmdlet 的语法
此命令使用 ArgumentList 和 Syntax 参数来获取在 Cert: 驱动器中使用 Get-ChildItem
cmdlet 的语法。 Cert: 驱动器是证书提供程序添加到会话中的 PowerShell 驱动器。
Get-Command -Name Get-Childitem -Args Cert: -Syntax
将输出中显示的语法与省略 Args (ArgumentList) 参数时显示的语法进行比较时,您会看到证书提供程序 将动态参数 CodeSigningCert 添加到 Get-ChildItem
cmdlet。
有关证书提供程序的更多信息,请参阅 about_Certificate_Provider。
示例7:获取动态参数
示例中的命令使用 Get-DynamicParameters
函数来获取证书提供程序在 Cert: 驱动器中使用时添加到 Get-ChildItem
cmdlet 的动态参数。
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
函数获取 cmdlet 的动态参数。这是上一个示例中使用的方法的替代方法。动态参数可以由另一个 cmdlet 或提供程序添加到 cmdlet。
示例8:获取所有类型的所有命令
此命令获取本地计算机上所有类型的所有命令,包括 Path 环境变量 ($env:path
) 路径中的可执行文件。
Get-Command *
它为每个文件返回一个 ApplicationInfo 对象 (System.Management.Automation.ApplicationInfo),而不是 FileInfo 对象 (System.IO.FileInfo)。
示例 9:使用参数名称和类型获取 cmdlet
此命令获取具有名称包含 Auth 且类型为 AuthenticationMechanism 的参数的 cmdlet。
Get-Command -ParameterName *Auth* -ParameterType AuthenticationMechanism
您可以使用类似这样的命令来查找可让您指定用于对用户进行身份验证的方法的 cmdlet。
ParameterType 参数可区分采用 AuthenticationMechanism 值的参数和采用 AuthenticationLevel 参数的参数,即使它们具有相似的名称。
示例 10:获取别名
此示例演示如何使用带有别名的 Get-Command
cmdlet。
Get-Command -Name dir
CommandType Name ModuleName
----------- ---- ----------
Alias dir -> Get-ChildItem
虽然 Get-Command 通常用于 cmdlet 和函数,但它还可以获取脚本、函数、别名和可执行文件。
该命令的输出显示别名的 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:获取 Notepad 命令的所有实例
此示例使用 Get-Command
cmdlet 的 All 参数来显示本地计算机上 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
仅获取在您键入命令名称时运行的命令。使用 All 参数,Get-Command
获取具有指定名称的所有命令,并按执行优先顺序返回它们。要运行列表中第一个命令以外的命令,请键入该命令的完全限定路径。
有关命令优先级的详细信息,请参阅 about_Command_Precedence。
示例 13:获取包含 cmdlet 的模块的名称
此命令获取 Get-Date
cmdlet 所在的模块的名称。该命令使用所有命令的 ModuleName 属性。
(Get-Command Get-Date).ModuleName
Microsoft.PowerShell.Utility
此命令格式适用于 PowerShell 模块中的命令,即使它们未导入到会话中也是如此。
示例 14:获取具有输出类型的 cmdlet 和函数
Get-Command -Type Cmdlet | Where-Object OutputType | Format-List -Property Name, OutputType
此命令获取具有输出类型以及它们返回的对象类型的 cmdlet 和函数。
命令的第一部分获取所有 cmdlet。管道运算符 (|
) 将 cmdlet 发送到 Where-Object
cmdlet,后者仅选择填充了 OutputType 属性的 cmdlet。另一个管道运算符将选定的 cmdlet 对象发送到 Format-List
cmdlet,后者在列表中显示每个 cmdlet 的名称和输出类型。
仅当 cmdlet 代码定义了 cmdlet 的 OutputType 属性时,CommandInfo 对象的 OutputType 属性才具有非空值。
示例 15:获取将特定对象类型作为输入的 cmdlet
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
此命令查找将网络适配器对象作为输入的 cmdlet。您可以使用此命令格式来查找接受任何命令返回的对象类型的 cmdlet。
该命令使用所有对象的 PSTypeNames 内在属性,该属性获取描述该对象的类型。要获取网络适配器的 PSTypeNames 属性,而不是网络适配器集合的 PSTypeNames 属性,该命令使用数组表示法来获取 cmdlet 运行的第一个网络适配器。返回。
示例 16:使用模糊匹配获取命令
在此示例中,命令名称故意拼写错误为“get-commnd”。使用 -UseFuzzyMatching
开关,cmdlet 确定最佳匹配是 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
指示此 cmdlet 获取所有命令,包括具有相同名称的相同类型的命令。默认情况下,Get-Command
仅获取在您键入命令名称时运行的命令。
有关多个命令具有相同名称时 PowerShell 用于选择要运行的命令的方法的详细信息,请参阅 about_Command_Precedence。有关模块限定命令名称和运行由于名称冲突而默认不运行的命令的信息,请参阅 about_Modules。
此参数是在 Windows PowerShell 3.0 中引入的。
在 Windows PowerShell 2.0 中,Get-Command
默认情况下获取所有命令。
SwitchParameter
位置:命名
默认值:False
必需的:False
接受管道输入:True
接受通配符:False
-ArgumentList
指定参数数组。当与指定参数(“参数”)一起使用时,此 cmdlet 会获取有关 cmdlet 或函数的信息。 ArgumentList 的别名是Args。
要检测仅在使用某些其他参数时才可用的动态参数,请将 ArgumentList 的值设置为触发动态参数的参数。
要检测提供程序添加到 cmdlet 的动态参数,请将 ArgumentList 参数的值设置为提供程序驱动器中的路径,例如 WSMan:、HKLM: 或 Cert:。当命令是 PowerShell 提供程序 cmdlet 时,在每个命令中仅输入一个路径。提供程序 cmdlet 仅返回 ArgumentList 值的第一个路径的动态参数。有关提供程序 cmdlet 的信息,请参阅 about_Providers。
类型 :Object[]
别名:Args
位置:1
默认值:None
必需的:False
接受管道输入:False
接受通配符:False
-CommandType
指定此 cmdlet 获取的命令类型。输入一种或多种命令类型。使用CommandType或其别名Type。默认情况下,Get-Command
获取所有 cmdlet、函数和别名。
该参数可接受的值为:
别名
:获取所有PowerShell命令的别名。有关更多信息,请参阅 about_Aliases。All
:获取所有命令类型。此参数值相当于Get-Command *
。Application
:获取 Path 环境变量 ($env:path
) 中列出的路径中的非 PowerShell 文件,包括.txt
、.exe
和.dll
文件。有关 Path 环境变量的详细信息,请参阅 about_Environment_Variables。Cmdlet
:获取所有 cmdlet。ExternalScript
:获取 Path 环境变量 ($env:path
) 中列出的路径中的所有.ps1
文件。Filter
和Function
:获取所有 PowerShell 高级和简单函数和过滤器。Script
:获取所有脚本块。要获取 PowerShell 脚本(.ps1
文件),请使用ExternalScript
值。
这些值被定义为基于标志的枚举。您可以使用此参数将多个值组合在一起以设置多个标志。这些值可以作为值数组或这些值的逗号分隔字符串传递给 CommandType 参数。该 cmdlet 将使用二进制 OR 运算组合这些值。将值作为数组传递是最简单的选项,并且还允许您对值使用制表符补全。
类型 :CommandTypes
别名:Type
接受的值:别名、函数、筛选器、Cmdlet、ExternalScript、应用程序、脚本、工作流、配置、全部
位置:命名
默认值:None
必需的:False
接受管道输入:True
接受通配符:False
-FullyQualifiedModule
该值可以是模块名称、完整模块规范或模块文件的路径。
当该值是路径时,该路径可以是完全限定的或相对的。相对路径是相对于包含 using 语句的脚本进行解析的。
当该值为名称或模块规范时,PowerShell 会在 PSModulePath 中搜索指定的模块。
模块规范是一个具有以下键的哈希表。
ModuleName
- 必需 指定模块名称。GUID
- 可选 指定模块的 GUID。还必需至少指定以下三个键之一。
ModuleVersion
- 指定模块的最低可接受版本。
MaximumVersion
- 指定模块可接受的最大版本。RequiredVersion
- 指定模块的准确、必需的版本。它不能与其他版本密钥一起使用。
您不能在同一命令中将 FullyQualifiedModule 参数指定为 Module 参数。这两个参数是互斥的。
类型 :模块规格[]
位置:命名
默认值:None
必需的:False
接受管道输入:True
接受通配符:False
-FuzzyMinimumDistance
该参数允许过滤模糊结果或多或少准确。该距离是使用 Damerau Levenshtein Distance 算法计算的,该算法表示与原始值相匹配的步数。距离越短越准确。距离为零是完全匹配。
类型 :UInt32
位置:命名
默认值:None
必需的:False
接受管道输入:False
接受通配符:False
-ListImported
指示此 cmdlet 仅获取当前会话中的命令。
从 PowerShell 3.0 开始,默认情况下,Get-Command
获取所有已安装的命令,包括但不限于当前会话中的命令。在 PowerShell 2.0 中,它仅获取当前会话中的命令。
此参数是在 Windows PowerShell 3.0 中引入的。
类型 :SwitchParameter
位置:命名
默认值:None
必需的:False
接受管道输入:True
接受通配符:False
-Module
指定模块数组。此 cmdlet 获取来自指定模块的命令。输入模块或模块对象的名称。
该参数采用字符串值,但该参数的值也可以是 PSModuleInfo 对象,例如 Get-Module
和 Import-PSSession
cmdlet 返回。
String[]
别名:PSSnapin
位置:命名
默认值:None
必需的:False
接受管道输入:True
接受通配符:True
-Name
指定名称数组。此 cmdlet 仅获取具有指定名称的命令。输入名称或名称模式。允许使用通配符。
要获取具有相同名称的命令,请使用All 参数。当两个命令具有相同名称时,默认情况下,Get-Command
会获取在您键入命令名称时运行的命令。
String[]
位置:0
默认值:None
必需的:False
接受管道输入:True
接受通配符:True
-Noun
指定命令名词数组。此 cmdlet 获取命令,其中包括 cmdlet、函数和别名,这些命令的名称包含指定的名词。输入一个或多个名词或名词模式。允许使用通配符。
类型 :String[]
位置:命名
默认值:None
必需的:False
接受管道输入:True
接受通配符:True
-ParameterName
指定参数名称的数组。此 cmdlet 获取会话中具有指定参数的命令。输入参数名称或参数别名。支持通配符。
ParameterName 和 ParameterType 参数仅搜索当前会话中的命令。
此参数是在 Windows PowerShell 3.0 中引入的。
类型 :String[]
位置:命名
默认值:None
必需的:False
接受管道输入:False
接受通配符:True
-ParameterType
指定参数名称的数组。此 cmdlet 获取会话中具有指定类型参数的命令。输入参数类型的全名或部分名称。支持通配符。
ParameterName 和 ParameterType 参数仅搜索当前会话中的命令。
此参数是在 Windows PowerShell 3.0 中引入的。
类型 :PS类型名称[]
位置:命名
默认值:None
必需的:False
接受管道输入:False
接受通配符:True
-ShowCommandInfo
指示此 cmdlet 显示命令信息。
此参数是在 Windows PowerShell 5.0 中引入的。
类型 :SwitchParameter
位置:命名
默认值:None
必需的:False
接受管道输入:False
接受通配符:False
-Syntax
指示此 cmdlet 仅获取有关该命令的以下指定数据:
- 别名。获取标准名称。
- Cmdlet。获取语法。
- 功能和过滤器。获取函数定义。
- 脚本和应用程序或文件。获取路径和文件名。
SwitchParameter
位置:命名
默认值:None
必需的:False
接受管道输入:True
接受通配符:False
-TotalCount
指定要获取的命令数。您可以使用此参数来限制命令的输出。
类型 :整数32
位置:命名
默认值:None
必需的:False
接受管道输入:True
接受通配符:False
-UseAbbreviationExpansion
表示使用命令中的字符匹配来查找命令中的大写字符。例如,i-psdf
将匹配 Import-PowerShellDataFile
,因为要查找的每个字符都与结果中的大写字符匹配。使用这种类型的匹配时,任何通配符都将导致不匹配。
SwitchParameter
位置:命名
默认值:None
必需的:False
接受管道输入:True
接受通配符:False
-UseFuzzyMatching
表示在查找命令时使用模糊匹配算法。输出的顺序是从最接近的匹配到最不可能的匹配。通配符不应与模糊匹配一起使用,因为它将尝试匹配可能包含这些通配符的命令。
类型 :SwitchParameter
位置:命名
默认值:None
必需的:False
接受管道输入:False
接受通配符:False
-Verb
指定命令动词数组。此 cmdlet 获取命令,其中包括 cmdlet、函数和别名,这些命令的名称包含指定的动词。输入一个或多个动词或动词模式。允许使用通配符。
类型 :String[]
位置:命名
默认值:None
必需的:False
接受管道输入:True
接受通配符:True
输入
字符串
您可以通过管道将命令名称传递给此 cmdlet。
输出
命令信息
此 cmdlet 返回从 CommandInfo 类派生的对象。返回的对象类型取决于 Get-Command
获取的命令类型。
别名信息
代表别名。
应用信息
代表应用程序和文件。
CmdletInfo
代表 cmdlet。
功能信息
代表函数和过滤器。
笔记
PowerShell 包含以下 Get-Command
别名:
所有平台:
gcm
当会话可以使用多个同名命令时,Get-Command
将返回您键入命令名称时运行的命令。要获取按运行顺序列出的同名命令,请使用 All 参数。有关详细信息,请参阅 about_Command_Precedence。
自动导入模块时,效果与使用 Import-Module
cmdlet 相同。该模块可以添加命令、类型和格式化文件,并在会话中运行脚本。要启用、禁用和配置模块自动导入,请使用 $PSModuleAutoLoadingPreference
首选项变量。有关详细信息,请参阅 about_Preference_Variables。
猜你还喜欢
- 03-30 [玩转系统] 如何用批处理实现关机,注销,重启和锁定计算机
- 02-14 [系统故障] Win10下报错:该文件没有与之关联的应用来执行该操作
- 01-07 [系统问题] Win10--解决锁屏后会断网的问题
- 01-02 [系统技巧] Windows系统如何关闭防火墙保姆式教程,超详细
- 12-15 [玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话
- 12-15 [玩转系统] 查找 Exchange/Microsoft 365 中不活动(未使用)的通讯组列表
- 12-15 [玩转系统] 如何在 Windows 上安装远程服务器管理工具 (RSAT)
- 12-15 [玩转系统] 如何在 Windows 上重置组策略设置
- 12-15 [玩转系统] 如何获取计算机上的本地管理员列表?
- 12-15 [玩转系统] 在 Visual Studio Code 中连接到 MS SQL Server 数据库
- 12-15 [玩转系统] 如何降级 Windows Server 版本或许可证
- 12-15 [玩转系统] 如何允许非管理员用户在 Windows 中启动/停止服务
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[影视] 黑道中人 Alto Knights(2025)剧情 犯罪 历史 电影
[古装剧] [七侠五义][全75集][WEB-MP4/76G][国语无字][1080P][焦恩俊经典]
[实用软件] 虚拟手机号 电话 验证码 注册
[电视剧] 安眠书店/你 第五季 You Season 5 (2025) 【全10集】
[电视剧] 棋士(2025) 4K 1080P【全22集】悬疑 犯罪 王宝强 陈明昊
[软件合集] 25年6月5日 精选软件22个
[软件合集] 25年6月4日 精选软件36个
[短剧] 2025年06月04日 精选+付费短剧推荐33部
[短剧] 2025年06月03日 精选+付费短剧推荐25部
[软件合集] 25年6月3日 精选软件44个
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电视剧] 欢乐颂.5部全 (2016-2024)
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[影视] 【稀有资源】香港老片 艺坛照妖镜之96应召名册 (1996)
[剧集] 神经风云(2023)(完结).4K
[剧集] [BT] [TVB] [黑夜彩虹(2003)] [全21集] [粤语中字] [TV-RMVB]
[实用软件] 虚拟手机号 电话 验证码 注册
[资源] B站充电视频合集,包含多位重量级up主,全是大佬真金白银买来的~【99GB】
[影视] 内地绝版高清录像带 [mpg]
[书籍] 古今奇书禁书三教九流资料大合集 猎奇必备珍藏资源PDF版 1.14G
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电影] 美国队长4 4K原盘REMUX 杜比视界 内封简繁英双语字幕 49G
[电影] 死神来了(1-6)大合集!
[软件合集] 25年05月13日 精选软件16个
[精品软件] 25年05月15日 精选软件18个
[绝版资源] 南与北 第1-2季 合集 North and South (1985) /美国/豆瓣: 8.8[1080P][中文字幕]
[软件] 25年05月14日 精选软件57个
[短剧] 2025年05月14日 精选+付费短剧推荐39部
[短剧] 2025年05月15日 精选+付费短剧推荐36部
- 最新评论
-
- 热门tag