2013-06-18 67 views
2
get-service| get-member #gives output. 

虽然PowerShell的:不同的输出,同时使用管道和对象

$a= get-service 
get-member $a # generates error 
"get-member : No object has been specified to the get-member cmdlet. 
At line:1 char:1 
+ get-member $a 
+ ~~~~~~~~~~~~~ 
    + CategoryInfo   : CloseError: (:) [Get-Member], InvalidOperationException 
    + FullyQualifiedErrorId : NoObjectInGetMember,Microsoft.PowerShell.Commands.GetMemberCommand" 

为什么会这样?

回答

2

get-service| get-member将每个服务对象一次一个地发送到Get-Member cmdlet,每个对象都绑定到InputObject参数(ByValue)并进行相应处理。

当你做get-member $a时,你传递$ a给第一个参数,它是Name参数,而不是InputObject参数。为了得到$ a的成员(收集本身):

Get-Member -InputObject $a 
+0

谢谢谢谢。 正如你提到的$ a将返回对象的集合。如何在Get-Member中使用时获取单个对象的类型而不是集合? – user1755746

+0

将其管理到Get-Member cmdlet –

+0

顺便说一句,$ a [0] .GetType()。FullName将获得集合中第一个对象的类型名称 –

相关问题