Powershell - 如何扫描 Active Direcotry 以查找嵌套对象?

Powershell - 如何扫描 Active Direcotry 以查找嵌套对象?

我有一些用户带有“ExchangeActiveSync 设备“对象内。我也有一些电脑已发布对象打印机里面。

那么我该如何使用某种统一的方法(使用 PowerShell)查找此类对象?我的意思是没有针对 AS 设备等的特定 Exchange 命令。一定有一种方法可以使用某种 [ADSI] 魔法或类似的东西来查找内部有另一个对象的对象,对吧?

答案1

您可以使用父对象的 SearchBase 来查找子对象,例如:

Get-ADUser -Filter *|
ForEach-Object{
    $childObj = Get-ADObject -Filter * -SearchBase $_.DistinguishedName
    [PSCustomObject]@{
        ComputerName = $_.Name
        ChildCount =  $childObj.Count
        msExchActiveSyncDevice = $childObj | Where-Object {$_.ObjectClass -eq "msExchActiveSyncDevice"}
    }
}

答案2

可以尝试使用 Get-ADObject cmdlet 在 Active Directory 中搜索对象,并使用 -Filter 参数过滤结果。过滤器应采用 LDAP 查询格式,您可以使用 -Properties 参数指定要检索对象的哪些属性。可能像这样:

Get-ADObject -Filter {objectClass -eq "user" -and msExchActiveSyncDevices -ne $null} -Properties msExchActiveSyncDevices

相关内容