2012-12-12 12 views
5

में विधियों के लिए पैरामीटर्स प्राप्त करें क्या गेट-सदस्य का उपयोग करते समय विधि सदस्य प्रकार के पैरामीटर प्राप्त करने का कोई तरीका है?PowerShell

उदाहरण:

Get-Process | Get-Member -MemberType Method 

क्या मैं इस उदाहरण से जरूरत मापदंडों और सूची में प्रत्येक सदस्य के पैरामीटर प्रकार है।

इसका उद्देश्य COM + ऑब्जेक्ट के सदस्यों, पैरामीटर और पैरामीटर प्रकारों को प्राप्त करना है, जिसके लिए मुझे दस्तावेज़ बनाना है। तो एक उदाहरण .net विशिष्ट नहीं हो सकता है।

मैं उचित HTML उत्पन्न करने के लिए सदस्य और पैरामीटर जानकारी को रेज़र टेम्पलेट में पाइप कर दूंगा।

संपादित करें: एक बेहतर उदाहरण इस होगा ...

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

इस उदाहरण मैं (यदि कोई हो तो) प्रत्येक विधि के लिए पैरामीटर नाम प्राप्त करने की आवश्यकता में लौट आए।

उत्तर

6

Get-Member पावरशेल कमांड की तुलना में .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 ऑब्जेक्ट्स के लिए मेटाडेटा टाइप नहीं करता है।

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 इस मामले में आप दे देंगे कर रहा हूँ: BTW मैं COM वस्तु आप अपने प्रश्न में सूची के लिए पैरामीटर की जानकारी (पैरामीटर प्रकार) मिलता है।

+0

मैंने थोड़ा सा स्पष्टता जोड़ने के लिए अपना प्रश्न अपडेट किया ... मुझे आमतौर पर प्रारंभिक पोस्ट में यह सही नहीं मिलता :) ऊपर दिए गए उदाहरण में, मैं प्रारंभिक COM ऑब्जेक्ट के लिए सदस्य परिभाषाएं प्राप्त करने का प्रयास कर रहा हूं। जहां से मुझे वहां जाने की ज़रूरत है, प्रत्येक विधि के लिए पैरामीटर प्रकार प्राप्त करें। –

+0

@ जोशुआडाले - स्पष्टीकरण के लिए धन्यवाद। मैंने अपना जवाब अपडेट किया। –

+0

हां, मुझे लगता है कि आप COM ऑब्जेक्ट्स के लिए सही परिभाषा प्राप्त करने के बारे में पूरी तरह से सही हैं। ऊपर दिए गए मेरे उदाहरण की कोशिश करते समय भी, मुझे केवल प्रकार के नाम और कोई पैरामीटर नाम नहीं मिलते हैं ... शायद COM इंटरफेस कैसे काम करता है इसके साथ कुछ करने के लिए कुछ है। आपकी मदद और त्वरित प्रतिक्रिया के लिए धन्यवाद! –