2010-07-17 7 views
0

Comment trouver ou répertorier la famille de paramètres de PowerShell?PowerShell: une famille de paramètres

Jusqu'ici j'ai trouvé -as Type e.g. -as [Int] J'ai aussi trouvé -asHashTable

Mes questions sont ce que d'autres paramètres sont disponibles?

Répondre

1

Cela pourrait probablement une solution plus élégante si on mettait tout effort en elle:

PS Home:\> gcm | where { $_.CommandType -eq 'Cmdlet' } | foreach { $_ | Add-Member -PassThru NoteProperty AsParameters ($_.Parameters.GetEnumerator() | ? {$_.Key -cmatch '^As([A-Z]|$)'} | % { $_.Key }) } | where { $_.AsParameters } | select Name,AsParameters 

Name     AsParameters 
----     ------------ 
ConvertTo-Html   As 
ConvertTo-SecureString AsPlainText 
ConvertTo-Xml   As 
Export-Alias   As 
Get-EventLog   {AsBaseObject, AsString} 
Get-Unique    AsString 
Get-WmiObject   AsJob 
Group-Object   {AsHashTable, AsString} 
Import-Module   AsCustomObject 
Invoke-Command   AsJob 
Invoke-WmiMethod  AsJob 
New-Module    AsCustomObject 
Read-Host    AsSecureString 
Remove-WmiObject  AsJob 
Restart-Computer  AsJob 
Set-WmiInstance  AsJob 
Stop-Computer   AsJob 
Test-Connection  AsJob 

code disséqué:

# find all commands 
Get-Command | 
    # that are cmdlets (exclude aliases or functions) 
    Where-Object { $_.CommandType -eq 'Cmdlet' } | 
    ForEach-Object { 
    # Add another property that contains all parameters 
    # that starts with 'As' – I use a regex here to exclude 
    # parameters like -Assembly 
    $_ | Add-Member -PassThru NoteProperty AsParameters (
     $_.Parameters.GetEnumerator() | 
     Where-Object { $_.Key -cmatch '^As([A-Z]|$)' } | 
     ForEach-Object { $_.Key } 
    ) 
    } | 
    # Exclude commands that don't have parameters that start with 'As' 
    Where-Object { $_.AsParameters } | 
    Select-Object Name,AsParameters 
+0

Un script merveilleux. Je peux voir maintenant que c'est Group-Object qui a le paramètre -AsHashTable. Get-Eventlog a aussi un paramètre intéressant appelé -AsBaseObject –

Questions connexes