Table of Contents

KB: Contar equipos por OU en Active Directory

Problema

Necesitamos saber cuántos equipos hay en cada sub-OU dentro de un contenedor, por ejemplo:

Entorno

Solución

Ejecutar en PowerShell:

Import-Module ActiveDirectory
 
Get-ADComputer -SearchBase "OU=Equipos WSUS,DC=bio4,DC=local" -Filter * |
    Group-Object { ($_).DistinguishedName -split ',' | Where-Object { $_ -like 'OU=*' } | Select-Object -First 1 } |
    Select-Object @{Name='OU';Expression={ $_.Name -replace '^OU=' }}, Count

Ejemplo de salida

OU         Count
--         -----
Windows 10    15
Windows 11    23

Explicación

Variantes

Contar solo equipos habilitados:

Get-ADComputer -SearchBase "OU=Equipos WSUS,DC=bio4,DC=local" -Filter 'Enabled -eq $true' | ...

Listar además los nombres de los equipos por OU:

Get-ADComputer -SearchBase "OU=Equipos WSUS,DC=bio4,DC=local" -Filter * |
    Group-Object { ($_).DistinguishedName -split ',' | Where-Object { $_ -like 'OU=*' } | Select-Object -First 1 } |
    ForEach-Object {
        Write-Output "OU: $($_.Name)"
        $_.Group | Select-Object -ExpandProperty Name
        Write-Output ""
    }

Notas