Powershell получает определенный MAC-адрес в формате строки - PullRequest
0 голосов
/ 09 апреля 2019

У меня проблема с моим кодом - я могу получить конкретный MAC-адрес и преобразовать его в строку.Проблема в том, что в моем методе используются недопустимые символы:

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

Итак, мой вопрос - есть ли другой способ извлечь MAC-адрес для адаптера с именем «Ethernet 2» в строку без специальных символов?

Ответы [ 4 ]

2 голосов
/ 09 апреля 2019

Вам не нужно Out-String - свойство MacAddress является уже строкой .

Если вы хотите заменить символы -, вы можете использовать либо String.Replace():

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

или оператор -replace:

$CurrMacAddr = $CurrMac.MacAddress -replace '-'
2 голосов
/ 09 апреля 2019

Чтобы дополнить существующие полезные ответы решением PowerShell-idiomatic PSv4 +, основанным на методе массива .Where(), который работает лучше, чем использование командлета Where-Object:

PS> (Get-NetAdapter).Where({ $_.Name -match 'Ethernet 2'}).MacAddress -replace '-'
00B0362FF73A  # e.g.
1 голос
/ 09 апреля 2019

Просто по-другому

  • Передать имя напрямую Get-NetAdapter
  • разделить MacAddress на '-'
  • присоединить полученный массив

(Get-NetAdapter 'Ethernet 2').MacAddress -split '-' -join ''
1 голос
/ 09 апреля 2019
$adapter = Get-NetAdapter | Where {$_.Name -Match "Ethernet 2"}
$result = $adapter.MacAddress.Replace("-", "")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...