custom/New-ZNPortsList.ps1
<# .Synopsis Create a in-memory object for PortsList .Description Create a in-memory object for PortsList .Outputs ZeroNetworks.PowerShell.Cmdlets.Api.Models.PortsListItem .Link https://github.com/zeronetworks/zero-powershell/new-znportslist #> function New-ZNPortsList { [OutputType([ZeroNetworks.PowerShell.Cmdlets.Api.Models.PortsListItem])] [CmdletBinding(PositionalBinding=$false)] Param( [Parameter(HelpMessage="List of port numbers", ParameterSetName = 'Protocol')] [string] $Ports, [Parameter(Mandatory, HelpMessage="Protocol", ParameterSetName = 'Protocol')] [ValidateSet("Any","TCP","UDP","ICMP","1","6","17","256")] [string] $Protocol, [Parameter(Mandatory, HelpMessage="Empty port list", ParameterSetName = 'Empty')] [switch] $Empty ) process { $Object = [ZeroNetworks.PowerShell.Cmdlets.Api.Models.PortsListItem]::New() switch ($PSBoundParameters['Protocol']) { "Any" { $Object.ProtocolType = 256 $Object.Ports = "" } "256" { $Object.ProtocolType = 256 $Object.Ports = "" } "TCP" { $Object.ProtocolType = 6 $Object.Ports = $PSBoundParameters['Ports'] } "6" { $Object.ProtocolType = 6 $Object.Ports = $PSBoundParameters['Ports'] } "UDP" { $Object.ProtocolType = 17 $Object.Ports = $PSBoundParameters['Ports'] } "17" { $Object.ProtocolType = 17 $Object.Ports = $PSBoundParameters['Ports'] } "ICMP" { $Object.ProtocolType = 1 $Object.Ports = ""} "1" { $Object.ProtocolType = 1 $Object.Ports = "" } } return $Object } } |