Dnes jsem si hrál s modulem PSRemoteRegistry od Shaye Levyho. Testoval jsem různé parametry a napadlo mě, vypsat si tabulku, kde v řádkách budou vylistované funkce a ve sloupcích jednotlivé parametry. Vznikl mi následující výtvor:
Poté mě napadlo udělat malou statistiku pro standardní cmdlety. Nevím, jestli je to užitečné, ale já jsem se při tvorbě skriptu i výsledků dobře bavil :)
- Počet cmdletů v modulech Microsoft.*: 236
- Počet parametrů použitých v těchto cmdletech: 449
- Počet kombinací cmdlet/parametr: 3491
- Parametry, které jsou dostupné pro každý cmdlet: Zde určitě nikoho nepřekvapí (pokud ano, Get-Help about_CommonParameters je váš přítel pro následujících 10 minut :), že jsou to takzvané Common Parameters: Verbose, Debug, WarningAction, WarningVariable, ErrorAction, ErrorVariable, OutVariable, OutBuffer. Vyskytují se - ano, hádáte správně - 236x.
- Další v pořadí jsou: Confirm, WhatIf (85), Force (68), Name (67), InputObject, Credential (54), Path (52). Ostatní parametry se vyskytují méně než 50x.
- Parametrů, které se vyskytují pouze u jednoho cmdletu je 270.
- Cmdlet s největším počtem parametrů: New-ModuleManifest (38)
- Další v pořadí: Invoke-Command (28), New-PSSessionOption (28), Get-WSManInstance (28), Get-WmiObject (26), Set-WmiInstance, Invoke-WmiMethod (25).
- Nejméně parametrů: Get-Culture, Get-Transaction, Get-Host, Get-PSCallStack, Get-UICulture, Exit-PSSession, Stop-Transcript, Get-WSManCredSSP (8).
- function Get-CommandParameter {
- param (
- [Parameter(
- ValueFromPipeline=$true,
- ValueFromPipelineByPropertyName=$true
- )]
- [string[]]$Name=""
- )
- PROCESS {
- foreach ($c in $Name) {
- # receive all parameters
- $cParams = (Get-Command $c).Parameters.Keys
- # process every parameter and create object
- foreach ($p in $cParams) {
- $psObj = New-Object PSObject -Property @{
- Command=$c
- Parameter=$p
- } # psObj
- $psObj
- } # foreach $p
- } # foreach $c
- } # PROCESS
- } # function Get-CommandParameter
Použití je poté následující:
PS C:\> $a = Get-Command -CommandType cmdlet Get-CommandParameter
PS C:\> $a.Count
3491
PS C:\> $a.Count
3491
Žádné komentáře:
Okomentovat