2013-06-18 101 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將獲得集合中第一個對象的類型名稱 –

相關問題