前一篇博文我们提到Get-Command输出的类型(CommandType)有三类(别名,功能和命令),但通过查看帮助我们却发现命令类型似乎不只这三种,如下图:

PowerShell原生命令Get-Command探索_PowerShell

从输出的帮助信心我们看到命令类型还有Filter,ExternalScript,application 和Script。

通过执行如下命令:

get-command -CommandType application |get-member

我们看到输出的类型就ApplicationInfo

PowerShell原生命令Get-Command探索_microsoft_02

然后执行

get-command -CommandType application

我们看到如下输出

PowerShell原生命令Get-Command探索_环境变量_03

我们会发现application 类型的command基本上都是指向C:\Windows\System32下的DLL和exe。

我们查看官方说明https://learn.microsoft.com/zh-cn/powershell/module/microsoft.powershell.core/get-command?view=powershell-7.4

Application:获取在 Path 环境变量 ($env:path) 中列出的路径中的非 PowerShell 文件,包括 .txt.exe.dll 文件。 有关 Path 环境变量的详细信息,请参阅 about_Environment_Variables

原来Application就是我们在dos下打开一个命令行窗口可直接执行的命令(原来的exe以及调用的DLL)。只要环境变量path 指向了某个路径,那么通过get-command 命令使用命令类型application 就能列出来了。其实字面意思就是我们直接可以使用的应用程序。