2012-12-12 21 views
5

C'è un modo per ottenere i parametri per un metodo MemberType quando si utilizza Get-Member?Ottieni parametri per i metodi in PowerShell

Esempio:

Get-Process | Get-Member -MemberType Method 

Quello che mi serve da questo esempio è i parametri ei tipi di parametri di ogni membro della lista.

Lo scopo di questo è ottenere i membri, i parametri e i tipi di parametri di un oggetto COM + per cui devo creare la documentazione. Quindi un esempio non può essere specifico.

Raccoglierò le informazioni sui membri e sui parametri in un modello di rasoio per generare l'html appropriato.

Edit: Un esempio migliore sarebbe questo ...

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

In questo esempio ho bisogno di ottenere i nomi dei parametri (se ce ne sono) per ogni metodo restituito.

risposta

6

Get-Member si intende più per l'esplorazione di tipi .NET che per i comandi di PowerShell. Per un semplice "visione" dei parametri di un comando provare questo:

Get-Command Get-Process -Syntax 

Per i dettagli sui parametri di provare questo:

Get-Command Get-Process | Select -Expand ParameterSets 

Se siete alla ricerca di maggiori dettagli sui parametri di un membro di tipo .NET quindi prova questo:

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

    TypeName: System.Diagnostics.Process 

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

Per quanto riguarda gli oggetti COM, è probabile che sia un po 'più incostante. PowerShell non ottiene sempre i metadati di tipo per gli oggetti COM. BTW io capisco informazioni parametro (i tipi di parametri) per l'oggetto COM di elencare nella vostra domanda:

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

Ho paura che è tutte le informazioni PowerShell vi darà in questo caso.

+0

Ho aggiornato la mia domanda per aggiungere un po 'di chiarezza ... Di solito non riesco a capire nel post iniziale :) Nell'esempio sopra, sto cercando di ottenere le definizioni dei membri per l'oggetto COM inizializzato. Dove devo andare da lì è ottenere i tipi di parametri per ciascun metodo. –

+0

@JoshuaDale - Grazie per il chiarimento. Ho aggiornato la mia risposta. –

+0

Sì, penso che abbiate completamente ragione nell'ottenere la definizione corretta per gli oggetti COM. Anche quando provo il mio esempio sopra, ottengo solo i nomi dei tipi e nessun nome di parametro ... probabilmente ha qualcosa a che fare con il funzionamento delle interfacce COM. Grazie per il tuo aiuto e le risposte veloci! –

Problemi correlati