2015-09-17 5 views
0

Ok, так что это скорее основной Powershell вопрос, я уверен, но вот что я пытаюсь сделать:DHCP Powershell сортировать

Я пишу краткий сценарий, который считывает все DHCP аренды на данный scope, находит любые совпадения для имен клиентов (в данном случае с «iphone» в имени), а затем удаляет эти лизинг с DHCP. Вот то, что я до сих пор:

$leases = Get-DhcpServerv4Lease -ScopeId 192.168.1.0 | select hostname, clientid 
#Find all hostnames w/ 'android' or 'iphone' in name, delete lease 
$trouble = $leases | select-string -Pattern "android","iphone","ipad" 
Remove-DhcpServerv4Lease -ScopeId 192.168.1.0 -ClientId $trouble 

Вопрос заключается в том, что выход из $ неприятности теперь выглядит следующим образом:

@{hostname=Someones-iPhone.domain.com; clientid=00-00-00-00-c7-cc} 

Поскольку я не могу удалить аренду на основе имени хоста (так что не является глобально уникальным, я полагаю), мне нужно передать MAC, иначе ID клиента.

Как я могу получить вывод, чтобы уменьшить его, чтобы просто иметь clientid, без всех других данных? У меня вышло мое сердце, и это не помогает. Заранее спасибо!

ответ

0

Вам не нужно использовать Select-String для фильтрации по имени свойства - использовать Where-Object:

$Troubles = Get-DhcpServerv4Lease -ScopeId 192.168.1.0 | Where-Object { 
    $_.Hostname -match "android" -or 
    $_.Hostname -match "iphone" -or 
    $_.Hostname -match "ipad" 
} | Select-Object ClientId 

Если вы просто хотите, значение ClientId, используйте Select-Object -ExpandProperty ClientId

 Смежные вопросы

  • Нет связанных вопросов^_^