6

使用 Get-Member 时,有没有办法获取 Method MemberType 的参数?

例子:

Get-Process | Get-Member -MemberType Method

这个例子我需要的是列表中每个成员的参数和参数类型。

这样做的目的是获取我必须为其创建文档的 COM+ 对象的成员、参数和参数类型。所以一个例子不能是.net特定的。

我会将成员和参数信息通过管道传输到剃刀模板中以生成适当的 html。

编辑:一个更好的例子是这个......

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

在这个例子中,我需要为每个返回的方法获取参数名称(如果有的话)。

4

1 回答 1

8

Get-Member与 PowerShell 命令相比,它更多地用于探索 .NET 类型。对于命令参数的简单“视图”,请尝试以下操作:

Get-Command Get-Process -Syntax

有关参数的详细信息,请尝试以下操作:

Get-Command Get-Process | Select -Expand ParameterSets

如果您正在寻找有关 .NET 类型成员参数的更多详细信息,请尝试以下操作:

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 对象的类型元数据。顺便说一句,我确实获得了您在问题中列出的 COM 对象的参数信息(参数类型):

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))

恐怕这就是 PowerShell 在这种情况下会给你的所有信息。

于 2012-12-12T16:08:39.450 回答