PowerShell Techguy.at

Mac Adresse mit PowerShell überprüfen und reparieren

PowerShell

Ich musste vor kurzem die Eingabe einer MAC Adresse überprüfen, ob diese korrekt ist.

Natürlich habe ich dazu PowerShell verwendet und möchte euch heute das Script dazu zeigen.

Ziel ist es, die Eingabe auf das korrekte Format zu überprüfen und gegeben falls den Fehler zu korrigieren, wobei wir hier natürlich etwas eingeschränkt sind.

sollte die Adresse unvollständig sein, kann das beste Script diese Problem nicht lösen, war wir aber machen können ist das Format der Mac Adresse zu bestimmen, und die Ausgabe zu formatieren.

Das Script

Wir arbeiten hier teilweise mit Regular Expression um die Mac Adresse zu überprüfen, aber jetzt zum Script.

#Mac to check
$Mac=”00-00-00-00-00-00″

Zu Beginn setzen wir die Variable $Mac mit dem Input der Mac Adresse, in unserem Beispiel sehr simpel.

Danach folgen 2 Funktionen welche die Mac Adresse mittel Regula Expression überprüfen und gegeben falls die Mac Adresse korrigieren

#Functions
function Check-Mac ($Mac) {
$Value=$Mac -match “^[0-9A-F]{2}:[0-9A-F]{2}:[0-9A-F]{2}:[0-9A-F]{2}:[0-9A-F]{2}:[0-9A-F]{2}$”
return $Value
}

function Repair-Mac ($Mac) {
$Value=$Mac.Replace(“/”,””).Replace(“.”,””).Replace(” “,””).Replace(“,”,””).Replace(“;”,””).Replace(“\”,””).Replace(“:”,””).Replace(“-“,””)
$Value=$Value.Insert(2,”:”).Insert(5,”:”).Insert(8,”:”).Insert(11,”:”).Insert(14,”:”)
return $Value
}

Zum Schluss kommt die eigentlich Intelligenz, oder wie ich es immer nenen, die Magie.

Zuerst kontrollieren wir ob die Eingabe der Mac Adresse schon dem richtigen Format entspricht, sollte es hier bereits Probleme geben, versuchen wir die eingabe zu formatieren und zu reparieren.

Danach folg ein weitere Check, sollte dieser noch immer negativ sein, ist somit auch die Eingabe falsch und die Mac Adresse ist ungültig.

Dies würde uns wie folgt angezeigt

image

Sollte jedoch die Mac Adresse korrekt sein, erscheint folgendes

image

#Magic and Result
if (!(Check-Mac $Mac)){
$Mac=Repair-Mac $Mac
if (!(Check-Mac $Mac)){
Write-Host “Mac is wrong” -ForegroundColor Red
}
else {
Write-Host “Mac is good” -ForegroundColor Green
}
}
else {
Write-Host “Mac is good” -ForegroundColor Green
}

[wpdm_file id=4]

Michael Seidl aka Techguy

Leave a Comment

Your email address will not be published. Required fields are marked *

*