Some cmdlets expose dynamic parameters. They are valid only in certain contexts. Get-ChildItem, for example, exposes -File and -Directory only when the current location is a file system path (and you are at least running PowerShell 3.0).
To find all cmdlets that have dynamic parameters, try this:
#requires -Version 2 $cmdlets = Get-Command -CommandType Cmdlet $cmdlets.Count $loaded = $cmdlets | Where-Object { $_.ImplementingType } $loaded.Count $dynamic = $loaded | Where-Object { $cmdlet = New-Object -TypeName $_.ImplementingType.FullName $cmdlet -is [System.Management.Automation.IDynamicParameters] } $dynamic.Count $dynamic | Out-GridView
You will get back only loaded cmdlets, and only those that have dynamic parameters.