Mit Select-Object sollte es eine DataRow / DataTable automatisch in ein PSCustomObject in Powershell konvertieren. Folgendes würde ich ausführen, um die Konvertierung in PSCustomObject durchzuführen und die Formatierung der MAC-Adresse in einer Zeile zu behandeln. Dies kann auf eine einzelne Zeile an einem bestimmten Index (wie im Beispielcode) oder auf die gesamte DataTable angewendet werden, um sie in ein Array von PSObjects zu konvertieren.
Die Formatierung der MAC-Adresse entfernt alle nicht alphanumerischen Zeichen im Original, wandelt sie in Kleinbuchstaben um und fügt dann die Bindestriche an den entsprechenden Indizes ein.
$devices.table[10] | Select-Object name,ip,@{N="MAC-Address";E={((((($_.mac -replace '[^a-zA-Z0-9]','').ToLower().insert(2,"-")).insert(5,"-")).insert(8,"-")).insert(11,"-")).insert(14,"-")}},vendor