Cuando una máquina está unida a un dominio de Active Directory, esta queda registrada bajo una Unidad Organizativa (OU), que representa una estructura jerárquica lógica usada para organizar y administrar objetos como usuarios, equipos y grupos dentro del dominio.
Saber en qué OU se encuentra tu máquina puede ser útil para fines de administración, auditoría o aplicación de políticas de grupo (GPO). A continuación, te mostramos distintas formas de obtener esta información usando PowerShell y el Registro de Windows.
Usando WMI y el proveedor ADSI
Este método utiliza el proveedor ADSI (Active Directory Service Interfaces) para consultar directamente el objeto del equipo en el directorio:
# Obtener el nombre del equipo
$nombreEquipo = $env:COMPUTERNAME
# Buscar en el contenedor LDAP del dominio el objeto que corresponde al equipo
$computerDN = ([ADSI]"LDAP://$env:USERDNSDOMAIN").Children | Where-Object {
$_.Class -eq "computer" -and $_.Name -eq "CN=$nombreEquipo"
} | Select-Object -ExpandProperty DistinguishedName
# Extraer y mostrar la OU (eliminando el CN del equipo)
if ($computerDN) {
$ou = ($computerDN -split '(?<!\\),')[1..($computerDN.Count - 1)] -join ','
Write-Output "La máquina $nombreEquipo está en la OU: $ou"
} else {
Write-Output "No se pudo obtener la OU del equipo. ¿Está unido al dominio?"
}
¿Cómo funciona?
$env:COMPUTERNAME
obtiene el nombre local del equipo.- ADSI permite recorrer los objetos del dominio.
- Se filtra el objeto de clase
computer
con el nombre del equipo. - Se extrae el
DistinguishedName
completo (DN), y luego se eliminan las primeras comas (que incluyenCN=NombreEquipo
) para mostrar solo la OU.
Usando el módulo de Active Directory (Get-ADComputer)
Esta es la forma más directa y precisa, pero requiere que tengas instalado el módulo de Active Directory de PowerShell y que estés en un equipo con conectividad al controlador de dominio:
(Get-ADComputer $env:COMPUTERNAME).DistinguishedName
Este comando devuelve el DN completo, por ejemplo:
CN=PC-EJEMPLO,OU=Equipos,OU=Departamentos,DC=empresa,DC=com
Desde aquí puedes deducir la OU eliminando la parte CN=...
.
Requisitos
- PowerShell con el módulo RSAT:ActiveDirectory instalado.
- Ejecución con permisos para consultar el directorio.
Consultando el Registro de Windows
Cuando una máquina se une al dominio, se guarda información en el Registro. Este método permite consultar la OU sin depender de módulos ni conectividad de red:
# Ruta del registro
$regPath = "Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine"
# Verificar existencia y mostrar valor
if (Test-Path $regPath) {
$dn = (Get-ItemProperty -Path $regPath)."Distinguished-Name"
if ($dn) {
Write-Host "Distinguished Name: $dn"
} else {
Write-Host "No se encontró el valor 'Distinguished-Name' en el registro."
}
} else {
Write-Host "La clave del registro no existe."
}
También puedes usar una forma más directa:
Toda la clave del Registro:Get-ItemProperty -Path "Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine"
o
Get-ItemProperty -Path "Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine" |
Select-Object -ExpandProperty "Distinguished-Name"
o(Get-ItemProperty -Path "Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine")."Distinguished-Name"
Este método te devuelve el DN del equipo en el dominio, como en los casos anteriores.
Consideraciones
- Solo disponible si la máquina está unida al dominio y ha recibido políticas de grupo.
- No requiere módulos adicionales.
Comparativa de métodos
Método | Requiere módulo AD | Funciona offline | Fácil de interpretar |
---|---|---|---|
ADSI (WMI/LDAP) | No | No | Medio |
Get-ADComputer | Sí | No | Fácil |
Registro de Windows | No | Sí | Fácil |
Conclusión
Dependiendo del entorno en el que te encuentres (con o sin acceso al dominio, módulos disponibles, etc.), puedes elegir el método más adecuado. Para automatizaciones o scripts sin dependencias externas, el registro de Windows es una excelente opción. Si trabajas con herramientas administrativas, Get-ADComputer
será la opción más rápida y clara.