什么是PowerShell中的命令服务

时间:2016-12-14 17:42:26

标签: powershell

如果我在PowerShell(版本4和5)中编写service,我会得到与编写get-service时相同的结果,但服务不是别名,而get-command service表示它是&#39 ; s未被识别为cmdlet。

2 个答案:

答案 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