2017-04-01 32 views
2

我可以輕鬆地獲得MAC地址在PowerShell中的:在PowerShell中檢索MAC地址,將其轉換爲十進制格式

$localMac=Get-WmiObject win32_networkadapterconfiguration | select macaddress 
echo $localMac[0] 

結果是:

macaddress                                     
----------                                     
E8:21:32:E5:F4:6A 

我怎樣才能改變結果爲十進制格式在PowerShell中?只是舉例7436378647

我試圖

$MacAddressConverted = $localMac[0] -replace '(:|-|\.)' 
echo $MacAddressConverted 

它返回

@{macaddress=E82132E5F46A} 

它很接近,我想才達到什麼,但它仍然有@ {macadress =,它不是轉換爲十進制

回答

4
$MAC = ((Get-WmiObject Win32_NetworkAdapterConfiguration | 
     Where-Object MACAddress | 
     Select-Object -ExpandProperty MACAddress -First 1 
    ) -replace ':' 
) 
[int64]$('0x' + $MAC) 

編輯:得到更多ve rbose版採用了[PSCustomObject]

Get-WmiObject win32_networkadapterconfiguration | 
    Where-Object MacAddress | ForEach { 
     [PSCustomObject]@{ 
     'MAC_hex' = $_.MacAddress 
     'MAC_dec' = [int64]("0x$($_.MacAddress.Replace(':',''))") 
     'ServiceName' = $_.ServiceName 
     'Description'=$_.Description} 
} 

輸出示例:

MAC_hex     MAC_dec ServiceName Description 
-------     ------- ----------- ----------- 
0A:00:27:xx:xx:xx 10995770599999 VBoxNetAdp VirtualBox Host-Only Ethernet Adapter #3 
00:23:54:xx:xx:xx 151749299999 rt640x64 Realtek PCIe GBE Family Controller 
3
Get-WmiObject Win32_NetworkAdapterConfiguration | 
    Where-Object { $_.MacAddress } | 
    ForEach-Object { [convert]::ToInt64($_.MacAddress.Replace(':', ''), 16) } 

它給我的筆記本電腦的下一個結果:

147163166963 
19938372466931 
相關問題