2012-12-12 8 views
5

Get-Memberを使用するときにメソッドMemberTypeのパラメータを取得する方法はありますか?PowerShellでメソッドのパラメータを取得する

例:

Get-Process | Get-Member -MemberType Method 

私はこの例から、必要なものは、リスト内の各メンバーのパラメータとパラメータの型です。

この目的は、COM +オブジェクトのメンバ、パラメータ、およびパラメータの型を取得してドキュメントを作成することです。したがって、例はネット固有ではありません。

私は適切なhtmlを生成するために、メンバーとパラメータ情報をひげ剃りテンプレートに配管します。

編集: より良い例は、(もしあれば)私は返される各メソッドのパラメータ名を取得する必要があります。この例では、この...

$comObj = New-Object -ComObject COMAdmin.COMAdminCatalog 
$comObj | Get-Member -MemberType Method 

だろう。

答えて

6

Get-Memberは、.NETタイプをPowerShellコマンドより詳細に調べるためのものです。コマンドのパラメータの簡単な「ビュー」のためにこれを試してください:あなたは.NET型メンバーのパラメータについての詳細を探しているなら

Get-Command Get-Process | Select -Expand ParameterSets 

:パラメータの詳細については

Get-Command Get-Process -Syntax 

はこれを試しますこれを試してみてください:

C:\PS> Get-Process | Get-Member -Name WaitForExit 

    TypeName: System.Diagnostics.Process 

Name  MemberType Definition 
----  ---------- ---------- 
WaitForExit Method  bool WaitForExit(int milliseconds), void WaitForExit() 

COMオブジェクトに関しては、もう少しヒットまたはミスする可能性があります。 PowerShellは、常にCOMオブジェクトのタイプメタデータを取得するとは限りません。私はPowerShellは、このケースであなたを与えるすべての情報です怖い

C:\PS> $comObj = New-Object -ComObject COMAdmin.COMAdminCatalog 
C:\PS> $comObj | gm QueryApplicationFile 


    TypeName: System.__ComObject#{790c6e0b-9194-4cc9-9426-a48a63185696} 

Name     MemberType Definition 
----     ---------- ---------- 
QueryApplicationFile Method  void QueryApplicationFile (string, string, string, bool, bool, SAFEARRAY(Variant)) 

:ところで、私はあなたの質問に一覧表示COMオブジェクトのパラメータ情報(パラメータの型)を得ますか。

+0

私は少しの明快さを追加するために私の質問を更新しました...私は通常最初の投稿でそれを得ることはありません:)上記の例では、私は初期化されたCOMオブジェクトのメンバー定義を取得しようとしています。そこから行く必要があるところでは、各メソッドのパラメータ型を取得します。 –

+0

@JoshuaDale - 説明をありがとう。私は自分の答えを更新しました。 –

+0

はい、あなたはCOMオブジェクトの正しい定義を取得することについて完全に正しいと思います。上の例を試しても、型名とパラメータ名しか得られません...おそらくCOMインターフェイスの仕組みと関係があります。あなたのお手伝いと迅速な対応に感謝します! –

関連する問題