Checklist for PowerShell Commandlets/Functions

When I write PowerShell functions, I like to make them as complete as possible. That includes leaving comment based help and adding support for as many use cases as possible. Here is a checklist of items I have found it useful to add to functions in order to make them as native and intuitive as possible.

 Capability
Present
Comment Based Help

-Synopsis

-Description

-Parameter(Multiples)

-Example(Multiples)

-Link(Multiples)

-Notes(Authorship)

-Outputs

-Inputs

Parameters

-mandatory or not

-type (String,Boolean)

-can it handle multiple (String[])

-Can it be be piped to (ValueFromPipeline=$true)

-Value from Pipeline by property Name(ValueFromPipelineByPropertyName=$true)

-Alias (Alias("CN","Computer"))

Cmdlet bindings configured

-Write-Verbose

-Write-Debug

-Write-Error

Properly set up to handle -whatif's

-https://foxdeploy.com/2014/09/04/adding-whatif-support-to-your-scripts-the-right-way-and-how-you-shouldnt-do-it/

comments on every line explaining how it functions

Begin-Process-End sections

Authorship

-Name,

-Email

-Date

-PSVer



Some relevant links to marking up PowerShell scripts
WTFM: Writing the Fabulous Manual: https://technet.microsoft.com/en-us/library/ff458353.aspx?f=255&MSPPError=-2147217396
PowerShell Readability: https://devblackops.io/on-powershell-readability/
Defining Parameters: https://technet.microsoft.com/en-us/library/jj554301.aspx

Comments

Popular posts from this blog

SCCM PXE Boot Issues - No Advertisements Found

SCCM PXE Boot Issues - UEFI and Secure Boot

Application Doesn't Install During OSD Task Sequence in SCCM