mark-e
November 13, 2014, 2:43am
1
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
system
November 13, 2014, 2:55am
2
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)
mark-e
November 13, 2014, 3:02am
3
Well - that is my ignorance showing through, now immortalized for all time on this message board!
Your version works perfectly - thanks a lot!!!
Mark
system
November 13, 2014, 3:07am
4
Showing ignorance isn’t a bad thing. (See: Apprenticeship Patterns )