IntroductionWrite a ScriptProblemSolutionDiscussionSee AlsoWrite a FunctionProblemSolutionDiscussionSee AlsoFind a Verb Appropriate for a Command NameProblemSolutionDiscussionSee AlsoWrite a Script BlockProblemSolutionDiscussionSee AlsoReturn Data from a Script, Function, or Script BlockProblemSolutionDiscussionSee AlsoPackage Common Commands in a ModuleProblemSolutionDiscussionSee AlsoWrite Commands That Maintain StateProblemSolutionDiscussionSee AlsoSelectively Export Commands from a ModuleProblemSolutionDiscussionSee AlsoDiagnose and Interact with Internal Module StateProblemSolutionDiscussionSee AlsoHandle Cleanup Tasks When a Module Is RemovedProblemSolutionDiscussionSee AlsoAccess Arguments of a Script, Function, or Script BlockProblemSolutionDiscussionSupporting PowerShell’s common parametersUsing the $args arraySee AlsoAdd Validation to ParametersProblemSolutionDiscussionDefining parameter behaviorDefining parameter validationSee AlsoAccept Script Block Parameters with Local VariablesProblemSolutionDiscussionSee AlsoDynamically Compose Command ParametersProblemSolutionDiscussionSee AlsoProvide -WhatIf, -Confirm, and Other Cmdlet FeaturesProblemSolutionDiscussionSee AlsoAdd Help to Scripts or FunctionsProblemSolutionDiscussionSee AlsoAdd Custom Tags to a Function or Script BlockProblemSolutionDiscussionSee AlsoAccess Pipeline InputProblemSolutionDiscussionSee AlsoWrite Pipeline-Oriented Scripts with Cmdlet KeywordsProblemSolutionDiscussionSee AlsoWrite a Pipeline-Oriented FunctionProblemSolutionDiscussionSee AlsoOrganize Scripts for Improved ReadabilityProblemSolutionDiscussionSee AlsoInvoke Dynamically Named CommandsProblemSolutionDiscussionSee AlsoProgram: Enhance or Extend an Existing CmdletSee Also