Powershell以字符串格式获取特定的MAC地址

时间:2019-04-09 14:59:45

标签: powershell

我的代码有问题-我可以获取特定的MACadress并将其转换为字符串。问题是,在我的方法中,它需要使用一些非法字符:

$CurrMac = get-netadapter | Where {$_.name -Match "Ethernet 2"}
$CurrMacAddr = $CurrMac.MacAddress
out-string -inputobject $CurrMacAddr -outvariable CurrMac2
$CurrMac2 = $CurrMac2.Substring(0,$CurrMac2.Length-1)

所以,我的问题-还有其他方法可以提取字符串中没有特殊字符的名称为“ Ethernet 2”的适配器的mac地址吗?

4 个答案:

答案 0 :(得分:2)

您不需要Out-String-MacAddress属性已经是一个字符串。

如果要替换-字符,则可以使用String.Replace()

$CurrMacAddr = $CurrMac.MacAddress.Replace('-','')

-replace运算符:

$CurrMacAddr = $CurrMac.MacAddress -replace '-'

答案 1 :(得分:2)

使用基于.Where()数组方法的PowerShell惯用PSv4 +解决方案来补充现有的有用答案,该方法比使用Where-Object cmdlet更好:

PS> (Get-NetAdapter).Where({ $_.Name -match 'Ethernet 2'}).MacAddress -replace '-'
00B0362FF73A  # e.g.

答案 2 :(得分:1)

$adapter = Get-NetAdapter | Where {$_.Name -Match "Ethernet 2"}
$result = $adapter.MacAddress.Replace("-", "")

答案 3 :(得分:0)

另一种方式

  • 将名称直接传递到Get-NetAdapter
  • MacAddress拆分为'-'
  • 加入结果数组

(Get-NetAdapter 'Ethernet 2').MacAddress -split '-' -join ''