function Fix-MAC
{
[CmdletBinding(DefaultParameterSetName=’Upper’)]
[OutputType([string])]
Param
(
# MAC Address
[Parameter(Mandatory=$true,
ValueFromPipeline=$true,
ValueFromPipelineByPropertyName=$true,
ValueFromRemainingArguments=$false,
Position=0)]
[Parameter(ParameterSetName='Upper')]
[Parameter(ParameterSetName='Lower')]
[Parameter(ParameterSetName='IOS')]
[string[]]$MACS,
[Parameter(Mandatory=$False,
ParameterSetName=’Lower’)]
[switch]$Lower,
[Parameter(Mandatory=$False,
ParameterSetName=’IOS’)]
[switch]$IOS
)
Process
{
foreach ($MAC in $MACS)
{
if ($MAC -match "^([a-f0-9]{2})[.-: ]?([a-f0-9]{2})[.-: ]?([a-f0-9]{2})[.-: ]?([a-f0-9]{2})[.-: ]?([a-f0-9]{2})[.-: ]?([a-f0-9]{2})$")
{
if ($IOS)
{
("{0}{1}.{2}{3}.{4}{5}" -f $matches[1..6]).ToLower()
}
elseif ($Lower)
{
("{0}:{1}:{2}:{3}:{4}:{5}" -f $matches[1..6]).ToLower()
}
else
{
("{0}:{1}:{2}:{3}:{4}:{5}" -f $matches[1..6]).ToUpper()
}
}
else
{
"Could not parse $MAC"
}
}
}
}
PowerShell Function: Fix-MAC
Published inTech
Be First to Comment