Powershell get-adcomputer + get-wmi-object

时间:2021-06-18 13:36:29

标签: powershell active-directory

我正在设置 RADIUS 服务器,除了带有特定无线 NIC 的笔记本电脑外,一切正常。

我设法解决了这个问题,但我希望有一个列表,列出我所有加入 AD 域且网卡有问题/过时的计算机(我们所有的笔记本电脑都在几个不同的 OU 中)。

我正在考虑将 GET-ADcomputer -filter *(列出所有计算机对象)与 get-wmiobject win32_networkadapter | select netconnectionid, name | where name -eq "Intel(R) Dual Band Wireless-AC 8265" 结合起来

PS cmdlet 单独工作,但我想为由 get-wmiobject 触发的每个匹配匹配 get-adcomputerCan 你帮我吗? :)

1 个答案:

答案 0 :(得分:1)

这是您处理脚本的方式。我确实同意 Abraham's 评论,如果可以,请使用 Get-CimInstance

Get-CimInstance win32_networkadapter | Where-Object Name -EQ $match
$computers = Get-ADComputer -Filter *
$match = 'Intel(R) Dual Band Wireless-AC 8265'

$result = foreach($computer in $computers)
{
    $wmi = Get-WmiObject win32_networkadapter | Where-Object Name -EQ $match

    if(-not $wmi){ continue }
    
    [pscustomobject]@{
        ComputerName = $computer.Name
        NetconnectionID = $wmi.NetConnectionID
        Name = $wmi.Name
    }
    
}

$result | Export-Csv 'path/to/csv.csv' -NoTypeInformation

编辑

我还没有测试过这个,我现在也没有测试它的方法,但如果这应该快得多,使用查询语言:

$computers = (Get-ADComputer -Filter *).sAMAccountName
$match = 'Intel(R) Dual Band Wireless-AC 8265'
$filter = @{
    ComputerName = $computers
    Query = "SELECT NetConnectionID, Name FROM win32_networkadapter WHERE Name = '$match'"
}
Get-WmiObject @filter
相关问题