MyITGuy
6/2/2014 - 6:44 PM

CmdletBinding Example

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"
)