如果我在PowerShell(版本4和5)中编写service
,我会得到与编写get-service
时相同的结果,但服务不是别名,而get-command service
表示它是&#39 ; s未被识别为cmdlet。
答案 0 :(得分:2)
它是一个帮助功能"在PowerShell中。当PowerShell搜索路径时,它会搜索cmdlet,可执行文件,然后它会预先设置" Get - "对于您输入的命令,它将尝试再次搜索cmdlet。
我不喜欢这个功能。它为已经拥有相当数量的系统增加了歧义。我建议不要故意使用它。
答案 1 :(得分:1)
The answer from Bacon Bits是完全正确的,由此产生的关于它的评论令人困惑且难以辨别。
我想跟进,展示如何使用Trace-Command
来了解发生了什么:
Trace-Command -Name CommandDiscovery -PSHost -Expression { random }
使用CommandDiscovery
将显示PowerShell引擎在尝试解析您提供的命令时所做的一切。您可以看到预先挂起的Get-
是最后一步,您可以看到之前的所有步骤。
跟踪输出的最后3行:
DEBUG: CommandDiscovery Information: 0 : The command [random] was not found, trying again with get- prepended DEBUG: CommandDiscovery Information: 0 : Looking up command: get-random DEBUG: CommandDiscovery Information: 0 : Cmdlet found: Get-Random Microsoft.PowerShell.Commands.GetRandomCommand