2012-12-12 41 views
5

Có cách nào để lấy các tham số cho một MemberTypeType khi sử dụng Get-Member không?Lấy các tham số cho các phương thức trong PowerShell

Ví dụ:

Get-Process | Get-Member -MemberType Method 

Những gì tôi cần từ ví dụ này là các thông số và các loại tham số của mỗi thành viên trong danh sách.

Mục đích của việc này là để có được các thành viên, tham số và kiểu tham số của đối tượng COM + mà tôi phải tạo tài liệu cho. Vì vậy, một ví dụ không thể được .net cụ thể.

Tôi sẽ gửi thông tin thành viên và thông số tham số vào mẫu dao cạo để tạo html thích hợp.

Edit: Một ví dụ tốt hơn sẽ là này ...

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

Trong ví dụ này, tôi cần phải nhận được tên tham số (nếu có) cho mỗi phương thức trả lại.

Trả lời

6

Get-Member có nghĩa là nhiều hơn để khám phá các loại .NET hơn Lệnh PowerShell. Đối với một "cái nhìn" đơn giản của các tham số của lệnh thử điều này:

Get-Command Get-Process -Syntax 

Để biết chi tiết về các thông số thử điều này:

Get-Command Get-Process | Select -Expand ParameterSets 

Nếu bạn đang tìm kiếm chi tiết hơn về các thông số một NET loại thành viên của sau đó, hãy thử điều này:

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

    TypeName: System.Diagnostics.Process 

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

Đối với đối tượng COM, có khả năng bị nhấn hoặc bỏ sót nhiều hơn một chút. PowerShell không phải lúc nào cũng nhận được siêu dữ liệu loại cho các đối tượng COM. BTW tôi làm nhận được thông tin tham số (các loại tham số) cho đối tượng COM bạn liệt kê trong câu hỏi của bạn:

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

tôi sợ đó là tất cả các thông tin PowerShell sẽ cung cấp cho bạn trong trường hợp này.

+0

Tôi đã cập nhật câu hỏi của mình để thêm một chút rõ ràng ... Tôi thường không hiểu đúng trong bài đăng đầu tiên :) Trong ví dụ trên, tôi đang cố gắng lấy các định nghĩa thành viên cho đối tượng COM được khởi tạo. Nơi tôi cần phải đi từ đó là có được các loại tham số cho mỗi phương pháp. –

+0

@JoshuaDale - Cảm ơn bạn đã làm rõ. Tôi đã cập nhật câu trả lời của mình. –

+0

Có, tôi nghĩ bạn hoàn toàn đúng về việc định nghĩa đúng đối tượng COM. Ngay cả khi cố gắng ví dụ của tôi ở trên, tôi chỉ nhận được tên loại và không có tên tham số ... có thể có một cái gì đó để làm với cách COM giao diện làm việc. Cảm ơn sự giúp đỡ của bạn và phản hồi nhanh chóng! –

Các vấn đề liên quan