Dynamic parameters
Dynamic parameters allow a developer to define the behavior of parameters when a function or script is run, rather than hardcoding that behavior in advance in a param block.
Dynamic parameters can be used to overcome some of the limitations inherent in a param block. For example, it is possible to change the parameters presented by a command based on the value of another parameter. It is also possible to dynamically write validation, such as dynamically assigning a value for the ValidateSet attribute.
Dynamic parameters remain unpopular in the PowerShell community. They are hard to define and difficult to troubleshoot, as they tend to silently fail rather than raise an error, and help cannot be provided using comment-based help.
Dynamic parameters have a named block: dynamicparam. If you use dynamicparam in a script or function, the implicit default blocks for a script or function cannot be used; all code must be contained within an explicitly named...