DHCP Powershell 排序

DHCP Powershell sort

好吧,我很确定这更像是一个基本的 Powershell 问题,但这是我正在尝试做的事情:

我正在编写一个快速脚本,用于读取给定范围内的所有 DHCP 租约,找到任何匹配的客户端名称(在本例中,名称中包含 '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

问题是 $trouble 的输出现在看起来像这样:

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

因为我不能删除基于主机名的租约(因为这不是全局唯一的,我假设),我需要传递 MAC,也就是客户端 ID。

我怎样才能让输出精简到只有 clientid 而没有所有其他数据?我用谷歌搜索了我的心,但没有帮助。提前致谢!

您不需要使用 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