CmdletBinding Example
[CmdletBinding(SupportsShouldProcess=$True,DefaultParameterSetName="DefaultPS")]
PARAM(
[Alias("Address","NetIP")]
[Parameter(Mandatory = $true, Position = 0, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, ParameterSetName="DefaultPS")]
[Net.IPAddress]
$IPAddress
,
[Parameter(Mandatory = $false, Position = 0, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, ParameterSetName="DefaultPS")]
[ValidateSet("Tom","Dick","Jane")]
[String]
$Name
,
[Parameter(Mandatory = $false, Position = 0, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, ParameterSetName="DefaultPS")]
[ValidateRange(21,65)]
[Int]
$Age
,
[Parameter(Mandatory = $false, Position = 0, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, ParameterSetName="DefaultPS")]
[ValidateScript({Test-Path $_ -PathType 'Container'})]
[string]
$Path = (Get-ChildItem -Path HKLM:"SOFTWARE\AppName\*\Install" | Select -First 1 | Get-ItemProperty | Select -ExpandProperty InstallPath)
,
[Parameter(Mandatory = $false, Position = 0, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, ParameterSetName="DefaultPS")]
[ValidateScript({Test-Path $_ -PathType 'Leaf'})]
[string]
$Path = (Get-ChildItem -Path HKLM:"SOFTWARE\AppName\*\Install" | Select -First 1 | Get-ItemProperty | Select -ExpandProperty InstallPath) + "\file.txt"
)