En utilisant Select-Object, il devrait convertir automatiquement un DataRow / DataTable en un PSCustomObject dans Powershell. Voici ce que j'exécuterais pour effectuer la conversion en PSCustomObject et gérer le formatage de l'adresse MAC sur une seule ligne. Cela peut être appliqué à une seule ligne à un index spécifique (comme l'exemple de code) ou à l'ensemble du DataTable pour le convertir en un tableau de PSObjects.
Le formatage de l'adresse MAC supprime tous les caractères non alphanumériques de l'original, les convertit en minuscules, puis insère les tirets aux index appropriés.
$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