管道
上个命令中的输出,通过管道作为下个命令的输入。Linux中的管道传递的是text,但ps中传递的是object。但是命令究竟返回的是什么类型呢?以下命令回答了这个问题:
get-service | get-member
这样就获取到get-service的返回类型:
TypeName: System.ServiceProcess.ServiceController
于是,我们必须找到**从pipeline中获取 System.ServiceProcess.ServiceController 对象的命令:
Get-Command -ParameterType System.ServiceProcess.ServiceController
结果中有Stop-Service命令,查看其帮助文档
Get-Help –Name Stop-Service
看到第一个参数是:[-InputObject] <ServiceController[]> ,一般来说,参数叫做InputObject,都可以从管道中接收输入。通过以下命令查看完整帮助:
Get-Help –Name Stop-Service -Full
于是可以试验,获取服务,并停止服务:
Get-Service -Name ‘Apple Mobile Device’ | Stop-Service
以上命令:通过名字获取服务,返回的结果是
ServiceController 类型的,通过管道传给Stop-Service作参数。