Convert XML string of bytes to MAC address

Hi All

I have the following xml element:

class XmlElement
{
type = bytes
#text = ABVdZBRW

}

I’ve been trying to convert the #text value to a MAC address, without much success. The closest I got was:

$mac = "ABVdZBRW"
$bytes = [System.Text.Encoding]::UTF8.GetBytes[$mac]
[System.BitConverter]::ToString[$bytes]
41-42-56-64-5A-42-52-57

which is obviously wrong!

The value should convert to 00-15-5D-64-14-56… If it helps - the element is from a Legacy Network Adapter section in a Hyper-V virtual machine config file!

Thanks!

Mark

The problem is that you’re treating that string as though it is UTF8. It’s actually the MAC address in base64-encoded form:

$base64 = "ABVdZBRW"
$bytes = [System.Convert]::FromBase64String($base64)
[System.BitConverter]::ToString($bytes)

Well - that is my ignorance showing through, now immortalized for all time on this message board! :slight_smile:

Your version works perfectly - thanks a lot!!!

Mark

Showing ignorance isn’t a bad thing. :slight_smile: (See: Apprenticeship Patterns )