# Sunday, January 17, 2010

Did you know that when you run Get-Help against a cmdlet to find out about its parameters, you might not be getting the whole truth? Certain cmdlets, especially those that operate on providers (FileSystem, Certificate, Registry etc) can adopt new parameters on the fly, depending on the path they are acting on. For example, when use you Get-Content on the file system (drive c: etc), it gets three new parameters in addition to the static ones listed by Get-Help (but more about this later): Delimiter, Encoding and Wait.

Determining Dynamic Parameters using Get-Help

Get-Help has a new parameter, –Path, which lets you give the help system some context for determining dynamic parameters:

-Path <string>
    Gets help that explains how the cmdlet works in the specified provider path. Enter a Windows PowerShell provider path.

    This parameter gets a customized version of a cmdlet help topic that explains how the cmdlet works in the specified Windows PowerShell provider path. This parameter is effective only for help about a provider cmdlet and only when the provider includes a custom version of the provider cmdlet help topic.

    To see the custom cmdlet help for a provider path, go to the provider path location and enter a Get-Help command or, from any path location, use the Path parameter of Get-Help to specify the provider path. For more information, see about_Providers.

Determining Dynamic Parameters using Get-Command

Get-Command has a new parameter, –ArgumentList, which acts similarly to unveil what dynamic parameters might be attached to a cmdlet for a given parameterset and path/literalpath if available on the chosen cmdlet. I’ve written a simple function that takes a cmdlet name as an argument and will display all of the dynamic parameters available for a cmdlet for each distinct provider:

# this function will pass a drive name in position 0 as an unnamed argument
# most path-oriented cmdlets accept this binding
function Get-DynamicParameter {
    param(        
        [string]$command
    ) 
  
    $parameters = @{}
    get-psdrive | sort -unique provider | % {
        $parameters[$_.provider.name] = gcm $command -args "$($_.name):" | % {
            $c = $_; @($_.parameters.keys) | sort | ? {
                $c.parameters[$_].isdynamic
            }
        }
    }
    $parameters    
}

Example use:

PS> Get-DynamicParameter get-content

Name                           Value
----                           -----
Alias
FileSystem                     {Delimiter, Encoding, Wait}
AssemblyCache
Registry
Environment
WSMan
Certificate
FeedStore
Function
Variable
PscxSettings

NOTE: when you don’t pass any context parameters to get-command via –argumentlist, it will take your current location as the context for dynamic parameters (if any are found.) So running get-command from c:\ instead hklm:\ will give you the additional parameters Delimiter, Encoding and Wait.

Have fun!

posted on Sunday, January 17, 2010 9:33:04 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0] Trackback
Related posts:
PowerShell Script Provider
PowerShell ISE Hacking: Change default save encoding to ASCII
PowerShell 2.0 – PSCX Labs: Invoke-Reflector
PowerShell 2.0 – Developer Essentials #1 – Initializing a Runspace with a Module
PowerShell 2.0 – Partial Application of Functions and Cmdlets
PowerShell – The Patchwork of Paths, PSPaths and ProviderPaths

Referred by:
http://twitter.com/ [Referral]
http://www.google.com/reader/view/ [Referral]
http://bit.ly/4ZQfBA [Referral]
http://untiny.me/ [Referral]
http://www.powershell-ag.de/ps/ [Referral]
http://twitter.com/MakcoH/favorites [Referral]
http://iconfactory.com/twitterrific [Referral]
powershell (tweetgrid.com) [Referral]
http://twitturls.com/ [Referral]
http://www.google.de/reader/view/?tab=my [Referral]
http://seesmic.com/web/index.html?locale=en [Referral]
powershell dynamic param (www.google.co.uk) [Referral]
PowerShell (blogsearch.google.co.jp) [Referral]
http://www.lmodules.com/opensocial/ifr?url=http%3A%2F%2Fwww%... [Referral]
http://pipes.yahoo.com/pipes/pipe.info?_id=uAmYy9xq3BGHcV361... [Referral]
http://powershell.com/cs/content/TwitterGrid.aspx [Referral]
http://www.powershellcommunity.org/Blogs/ExternalBlogs.aspx [Referral]
powershell -pattern (www.google.com) [Referral]
http://twitter.com/conduityoursite [Referral]
http://technorati.com/tag/PowerShell [Referral]
powershell @ (www.google.com) [Referral]
powershell arguments param (www.google.com) [Referral]
dynamic parameters powershell (www.google.com) [Referral]
powershell param path (www.google.com) [Referral]
http://www.google.nl/ig?hl=nl&t=1 [Referral]
http://feedjit.com/news/CN/qingqu/ [Referral]
http://twitter.com/halr9000/statuses/7970602443 [Referral]
powershell 2.0 certificate path (www.google.com) [Referral]
powershell 2.0 param (www.google.ca) [Referral]
-eq powershell (www.google.co.uk) [Referral]
powershell 2.0 parameters (www.google.com) [Referral]
powershell 2.0 param (www.google.com) [Referral]
http://delicious.com/halr9000/powerscripting+todo [Referral]
powershell 2.0 required parameters (www.google.se) [Referral]
http://powershell-cz.blogspot.com/2010/01/get-psnews-week-eq... [Referral]
powershell 2.0 cmdlet parameters (www.google.com) [Referral]
powershell provider (www.google.co.kr) [Referral]
powershell parameters (www.google.com.au) [Referral]
powershell 2.0 parameter (www.google.com) [Referral]
rss 2.0 parameter (www.google.es) [Referral]
powershell using -ne multiple values (www.google.com) [Referral]
cmdlet dynamic parameters (www.google.co.uk) [Referral]
is lmodules.com/referral (www.google.co.uk) [Referral]
http://genericwpthemes.com/ [Referral]
powershell param( [Parameter (www.google.es) [Referral]
powershell dynamic parameter (www.google.com) [Referral]
http://tweetmeme.com/story/455813033/nivot-ink-powershell-20... [Referral]
http://powershell.com/cs/forums/t/3404.aspx [Referral]
powershell 2.0 param (www.google.co.uk) [Referral]
dynamicparam + powershell (www.google.de) [Referral]
dynamic parameter on the fly (www.google.com) [Referral]
powershell 2.0 PARAM (www.google.ca) [Referral]
c dynamic parameters (www.google.com) [Referral]
powershell param (www.google.com) [Referral]
powershell (technorati.com) [Referral]
http://www.vigrx-plus.net/ [Referral]
powershell 2.0 parameters (www.google.co.uk) [Referral]
powershell dynamicparam (www.google.com) [Referral]
powershell param (www.google.ca) [Referral]
param powershell 2.0 (www.google.ca) [Referral]
http://www.netvibes.com/missoni [Referral]
powershell 2.0 param (www.google.ch) [Referral]
powershell DynamicParam (www.google.com) [Referral]
9f769a408dd811a059e8cb664251 (cache.baidu.com) [Referral]
parameters.keys gcm command isdynamic (www.google.com) [Referral]
powershell 2.0 parameters (www.google.com) [Referral]
powershell parameters (www.google.com) [Referral]
powershell dynamic function name (www.google.com) [Referral]
param powershell (www.google.com) [Referral]
http://pauerschell.blogspot.com/2010/02/2nd-improvement-to-a... [Referral]
dynamic cmdlet powershell (www.bing.com) [Referral]
dynamic parameters in powershell (www.bing.com) [Referral]
powershell 2.0 param string (www.google.com) [Referral]
powershell parameters pass dynamic values (www.bing.com) [Referral]
powershell 2.0 param (www.google.com) [Referral]
http://delicious.com/PowerShellJedi [Referral]
powershell param (www.google.de) [Referral]
powershell 2.0 script function with dynamic parameters (www.google.com) [Referral]
powershell param (www.google.com) [Referral]
powershell dynamic parameter (www.google.com) [Referral]
multiple arguments powershell (www.google.se) [Referral]
http://powershellcommunity.org/Blogs/ExternalBlogs.aspx [Referral]
powershell 2.0 [Parameter (www.google.de) [Referral]
powershell dynamic parameters (www.bing.com) [Referral]
powershell call dynamic function name (www.google.com.au) [Referral]
dynamic powershell parameters (www.bing.com) [Referral]
http://ff.im/-eywBk [Referral]
param powershell (www.google.dk) [Referral]
powershell path for my fovorites in XP (www.google.com) [Referral]
powershell param (www.google.com) [Referral]
dynamic get param (www.google.lv) [Referral]
powershell dinamic parameter help function (www.google.com) [Referral]
powershell dynamic parameter in help section of functions (www.google.com) [Referral]
powershell 2.0 functions param (www.google.com) [Referral]
powershell parameters (www.google.com) [Referral]
get http content powershell 2.0 (www.google.com) [Referral]
powershell parameters (www.google.es) [Referral]
powershell param (www.google.com) [Referral]
powershell 2.0 working with functions (www.google.ca) [Referral]
dynamicparam powershell (www.google.ca) [Referral]
powershell parameters (www.google.pl) [Referral]
dynamic context parameters visual studio (www.google.com) [Referral]
powershell referral (www.google.co.uk) [Referral]
http://www.netvibes.com/cheapautoinsurancequote [Referral]
PowerShell Dynamic Parameters (www.google.com.by) [Referral]
powershell parameters (www.google.co.uk) [Referral]
powershell 2.0 param (www.google.com.au) [Referral]
9862d015d9c443eb1bfbc7710a4c (cache.baidu.com) [Referral]
lmodules.com/opensocial/ifr (www.google.com) [Referral]
powershell 2.0 parameter variable (www.google.co.jp) [Referral]
powershell give parameters to a command (www.google.hu) [Referral]
sharepoint url dynamic parameters aspx (www.google.com) [Referral]
c dynamic parameters (www.google.se) [Referral]
powershell dynamicparameters (www.google.com.by) [Referral]
http://vmtoolkit.com/members/CialisRezeptfrei.aspx [Referral]
dynamicparam powershell (www.bing.com) [Referral]
powershell custom provider Get-Content (www.google.com) [Referral]
powershell 2.0 parameterset function chosen (www.google.ch) [Referral]
powershell param encoding (www.google.no) [Referral]
powershell pass string argument to command (www.bing.com) [Referral]
http://powershell.com/cs/forums/p/3404/4684.aspx#4684 [Referral]
powershell dynamicparam (www.google.de) [Referral]
http://www.kwick.de/CialisBestellen [Referral]
http://www.kwick.de/cialisbestellen [Referral]
dynamic parameter powershell (www.bing.com) [Referral]
$Params powershell (www.google.com.ua) [Referral]
powershell param( (www.google.be) [Referral]
powershell execute dynamic command (www.google.pt) [Referral]
powershell dynamic parameter (www.google.com) [Referral]
provider dynamic parameters (www.google.com) [Referral]
powershell dynamic paramter cmdlet binding (www.google.com) [Referral]
powershell 2.0 function multiple params (www.google.si) [Referral]
powershell 2.0 parameters (www.google.com) [Referral]
powershell param arguments (www.google.com) [Referral]
powershell dynamic parameters (www.google.co.uk) [Referral]
powershell 2.0 script arguments (www.google.ca) [Referral]
Where {$_. parameters (www.google.com) [Referral]
powershell 2.0 function parameters tutorial (www.google.si) [Referral]
dynamic path of file in power shell (www.google.co.in) [Referral]
powershell 2.0 parameter (www.google.se) [Referral]
powershell view dynamic content (www.google.be) [Referral]
PauerSchell (www.bing.com) [Referral]
powershell 2.0 params (www.google.nl) [Referral]
powershell 2.0 parameters (www.google.nl) [Referral]
c dynamic parameters (www.google.com) [Referral]
powershell 2.0 param (www.google.com) [Referral]
http://delicious.com/stejcz/powershell+tipy-triky?page=3 [Referral]
powershell param string (www.google.hu) [Referral]
get dynamic parameters from url in aspx (www.google.co.in) [Referral]
passing multiple parameters poweshell (www.google.com) [Referral]
powershell 2.0 argument (www.google.com) [Referral]
param powershell (www.google.com) [Referral]
Powershell 2.0 script PARAM (www.google.com) [Referral]
path parameter powershell (www.google.se) [Referral]
power shell dynamic command (www.google.ro) [Referral]
powershell param stream (www.google.com) [Referral]
powershell arguments 2.0 (www.google.com) [Referral]
path parameter powershell (www.google.nl) [Referral]
powershell give a param (www.google.nl) [Referral]
powershell 2.0 functions with multiple parms (www.google.com) [Referral]
dynamic powershell (www.google.com.au) [Referral]
powershell 2.0 functions param (www.google.com) [Referral]
http://www.netvibes.com/wellbutrin [Referral]
certificate powershell (www.google.co.kr) [Referral]
powershell param (www.google.com) [Referral]
powershell Param ( (www.google.co.uk) [Referral]
powershell Passing string dynamic parameter cmdlet (www.google.fr) [Referral]
passing unnamed parameters to powershell script (www.google.com) [Referral]
powershell 2.0 tutorial scripts functions (www.google.com) [Referral]
dynamic powershell parameter (www.bing.com) [Referral]
powershell dynamic parameters (www.google.com) [Referral]
http://github.com/lipitormedication [Referral]
path as parameter powershell (www.google.be) [Referral]
powershell "file system" dynamic parameters (www.google.com) [Referral]
powershell dynamic parameters (www.google.be) [Referral]
powershell params (www.google.com) [Referral]
dynamic <context-param> (www.google.com) [Referral]
SharePoint view dynamic parameter (www.google.pl) [Referral]
http://github.com/zelnorm [Referral]
powershell param (www.google.com) [Referral]
powershell 2.0 delimiter (www.google.se) [Referral]
makcoh.blogspot.com (www.google.ru) [Referral]
powershell dynamic (www.bing.com) [Referral]
http://github.com/zetia [Referral]
"Trackback" "Referred by" "[Referral]" "more" (www.google.com) [Referral]
powershell binding script parameter (www.google.com) [Referral]
powershell dynamic binding (www.google.com) [Referral]
powershell tutorial function parameter (www.google.ca) [Referral]
powershell execute dynamic path (www.google.co.nz) [Referral]
powershell passing parameter visual (www.google.ca) [Referral]
powershell dynamic parameters (www.google.com) [Referral]
powershell parameters (www.google.com) [Referral]
powershell HttpContent (www.bing.com) [Referral]
multiple function parameters powershell 2.0 (www.google.com) [Referral]
passing parameters from workflow to powershell script (www.bing.com) [Referral]
passing multiple params to powershell module (www.google.es) [Referral]
powershell parms (www.google.co.uk) [Referral]
powershell param (www.google.com) [Referral]
powershell param (www.google.com) [Referral]
visual studio dynamic context parameters (www.google.com) [Referral]
powershell 2.0 functions with parameters (www.google.com.br) [Referral]
powershell param (www.google.ca) [Referral]
powershell param tutorial (www.google.com.sg) [Referral]
DynamicParam powershell (www.google.com) [Referral]
powershell 2.0 function parameters (www.google.com) [Referral]
PowerShell param multiple functions (www.bing.com) [Referral]
powershell 2.0 tutorial (www.google.co.uk) [Referral]
powershell dynamic path (www.google.com) [Referral]
script cmdlet dynamic parameters (www.bing.com) [Referral]
powershell 2.0 send email passing param (www.google.co.uk) [Referral]
powershell dynamic path (www.google.fi) [Referral]
powershell 2.0 reference parameters (www.google.com) [Referral]
powershell 2.0 pass param to script (www.google.co.uk) [Referral]
powershell 2.0 tutorials (www.google.com) [Referral]
dynamicParameter.get (www.google.com.hk) [Referral]
powershell 2.0 tutorial (www.google.com) [Referral]
parameter powershell 2.0 (www.google.co.uk) [Referral]
lmodules.com / referral (www.google.co.uk) [Referral]
powershell getting additional param (www.google.com) [Referral]
power shell tutorial WCF (www.google.com) [Referral]
powershell 2.0 tutorial (www.google.co.in) [Referral]
powershell wait parameter get-content (www.google.co.uk) [Referral]
powershell DynamicParam (www.google.com) [Referral]
pass dynamic parameter sharepoint 2010 (www.google.com) [Referral]
http://yandex.ru/yandsearch?text=powershell+parametrs&from=o... [Referral]
powershell 2.0 param (www.google.ru) [Referral]
powershell dynamic parameter cmdlet (www.google.de) [Referral]
powershell 2.0 arguments (www.google.co.uk) [Referral]
powershell create arguments on the fly (www.google.com) [Referral]
tutorial powershell 2.0 (www.google.de) [Referral]
passing parameters to powershell ise (www.google.com) [Referral]
Dinamic parameters (www.google.ro) [Referral]
path as parameter in powershell (www.google.ca) [Referral]
powershell 2.0 tutorial (www.google.com) [Referral]
http://best.darkbrownred.ru/onlayn-igra-dom-3.html [Referral]
powershell 2.0 script get parameters (www.google.com) [Referral]
powershell 2.0 parameters (www.google.ca) [Referral]
powershell 2.0 pass parameters to another function (www.google.ca) [Referral]
POWERSHELL 2.0 PARAMETER BINDING (www.google.ca) [Referral]
bing dynamic parameters (www.google.com) [Referral]
powershell param (www.google.com) [Referral]
powershell parameter (www.google.com) [Referral]
powershell 2.0 param (www.google.com) [Referral]
powershell 2.0 function with multi parameters (www.google.com) [Referral]
pass "parameters" in WIndows PowerShell ISE (www.google.co.in) [Referral]
powershell scripting dynamic variables (www.google.com) [Referral]
powershell dynamic parameter (search.conduit.com) [Referral]
powershell parameters (www.google.co.uk) [Referral]
powershell execute dynamic path (www.google.co.nz) [Referral]
required parameter powershell 2.0 (www.google.nl) [Referral]
PowerShell dynamic parameter nivot (www.bing.com) [Referral]
tuto powershell 2.0 (www.google.fr) [Referral]
powershell dynamic parameters (www.bing.com) [Referral]
powershell param multiple value (www.google.be) [Referral]
windows powershell tutorial function parameters (www.google.com) [Referral]
powershell DynamicParam (www.google.com) [Referral]
powershell param (www.google.com) [Referral]
powershell 2.0 tutorial (www.google.ca) [Referral]
running dynamic powershell command (www.google.ca) [Referral]
executing dynamic powershell command (www.google.ca) [Referral]
powershell modules examples pass multiple function parameter (www.google.com) [Referral]
powershell 2.0 script arguments (www.google.com) [Referral]
http://www.google.fi/ [Referral]
powershell find dynamic params cmdlet (www.bing.com) [Referral]
fonction with multiple arguments +powershell (www.google.fr) [Referral]
dynamic function call powershell (www.bing.com) [Referral]
http://lawyersinmiami.org/ [Referral]
powershell: parameterset alias (www.bing.com) [Referral]
powershell dynamic parameters (www.google.co.uk) [Referral]
powershell argument delimiter (www.google.com) [Referral]
http://www.google.com/ [Referral]
"get-command" "argumentList" (www.google.ru) [Referral]
powershell dynamic parameters (www.google.com) [Referral]
nivot powershell DynamicParam (www.google.fr) [Referral]
http://blogs.technet.com/b/technetczsk/archive/2010/04/12/se... [Referral]
powershell dynamic command (www.bing.com) [Referral]
powershell 2,0 (es.search.yahoo.com) [Referral]
Powershell dynamic parameters (www.bing.com) [Referral]
powershell powershell script parameters (www.bing.com) [Referral]
bing pass dynamic parameter (www.bing.com) [Referral]
DynamicParam powershell (www.bing.com) [Referral]
dynamic powershell parameters (www.bing.com) [Referral]
powershell 2.0 required params (www.google.co.uk) [Referral]
powershell get parameters (www.bing.com) [Referral]
http://www.google.fr/ [Referral]
Powershell dynamic parametes (www.bing.com) [Referral]
powershell 2.0 mandatory parameters (www.google.com) [Referral]
"powershell 2" function arguments (www.google.se) [Referral]
powershell parameters 2.0 (www.google.com) [Referral]
powershell get-help dynamic parameters (www.google.com) [Referral]
dynamic powershell script name (www.google.com.au) [Referral]
google Dynamic parameters (www.google.com) [Referral]
cmdlet dynamic parameter (www.bing.com) [Referral]
http://www.pissinggirls.net/blond-fucking-and-face-pissing/ [Referral]
http://www.netvibes.com/zelnorm [Referral]
PowerShell 2.0 Get path (www.google.ru) [Referral]
param in powershell 2.0 (www.google.com) [Referral]
powershell" execute dynamic command" (www.google.de) [Referral]
powershell 2.0 tutorial (www.google.com) [Referral]
powershell 2 tutorial (www.google.se) [Referral]
dynamic powershell (www.google.co.jp) [Referral]
powershell call function parameter dynamic (www.google.de) [Referral]
powershell params display (www.google.com.au) [Referral]
powershell 2.0 arguments (www.google.com) [Referral]
powershell dynamic function (www.google.de) [Referral]
powershell pass parameters array (www.google.com) [Referral]
powershell dynamic function (www.google.com) [Referral]
powershell passing parameters in ISE (www.google.fr) [Referral]
Comments are closed.