¿Cómo verificar el dominio de AD DS / nivel funcional del bosque desde la estación de trabajo unida al dominio?

8

¿Es posible definir niveles funcionales de dominio / bosque de AD DS desde la estación de trabajo unida al dominio? Preferiblemente a través de CLI / PS y si es posible sin derechos de administrador de dominio ... ¿Cómo puedo lograrlo?

Mikhail
fuente

Respuestas:

10

El siguiente Powershell no requiere acceso de administrador o administrador de dominio, lo probé como usuario limitado en una estación de trabajo unida a dominio con Powershell v2 / v3. No requiere herramientas de terceros ni módulos de Powershell.

$dse = ([ADSI] "LDAP://RootDSE")

# Domain Controller Functional Level
$dse.domainControllerFunctionality

# Domain Functional Level
$dse.domainFunctionality

# Forest Functional Level
$dse.forestFunctionality

Los valores devueltos representarán un nivel funcional distinto:

Value  Forest        Domain             Domain Controller
0      2000          2000 Mixed/Native  2000
1      2003 Interim  2003 Interim       N/A
2      2003          2003               2003
3      2008          2008               2008
4      2008 R2       2008 R2            2008 R2
5      2012          2012               2012
6      2012 R2       2012 R2            2012 R2
7      2016          2016               2016

Referencias

jscott
fuente
3

Solo una solución complementaria a la respuesta aceptada, ya que terminé aquí más o menos con la misma necesidad. La diferencia es que se decodifica el nombre del nivel:

Import-Module ActiveDirectory
$ForestRoot = 'top.domain'

(get-adforest -identity $ForestRoot).ForestMode

(get-adforest -identity $ForestRoot).Domains |
ForEach-Object {Get-ADDomain -Identity $_ |
ft DNSRoot,DomainMode -AutoSize}
ErikE
fuente
1
+1. Vale la pena señalar que el tuyo requiere el módulo AD de Microsoft Powershell. El ejemplo ADSI no.
jscott
Correcto, lo está editando en ...
ErikE
Mejora menor. En realidad, no necesita incluir las -identity $ForestRootporciones de los comandos get-adforest cuando lo ejecuta desde una máquina unida al bosque que está intentando consultar. El cmdlet solo recogerá la información de la máquina actual.
Ryan Bolger
2

¿Solo quieres comprobarlo o cambiarlo? Cambiarlo requeriría ciertos derechos administrativos en el dominio / bosque.

La forma más fácil que se me ocurre sin dsquery o PS Get-ADDomain (que requeriría importar el módulo AD) es usar el comando ADFIND de Joeware.

http://www.joeware.net/freetools/tools/adfind/

adfind -rootdse domaincontrollerfunctionality domainfunctionality forestfunctionality

Ejemplo de salida de mi dominio:

AdFind V01.47.00cpp Joe Richards ([email protected]) Octubre de 2012

Usando el servidor: DOMAIN-DC1.hahaha.local: 389

Directorio: Windows Server 2008 R2

dn:

domainFunctionality: 4 [Modo de dominio de Windows Server 2008 R2]

forestFunctionality: 4 [Windows Forest 2008 R2 Forest Mode]

domainControllerFunctionality: 4 [Modo Windows Server 2008 R2]

1 Objetos devueltos

El limpiador
fuente
1

Para un enfoque basado en GUI puede usar Active Directory Explorer . Haga clic derecho en el nodo superior del dominio, haga clic en Propiedades y verifique el valor de domainControllerFunctionality, domainFunctionality o forestFunctionality. Tienen valores enteros correspondientes a:

0 = Gana 2000
1 = Gana 2003 mixto / intermedio
2 = Gana 2003
3 = Gana 2008
4 = Gana 2008 R2
5 = Gana 2012
6 = Gana 2012 R2
7 = Gana 2016

Bogdan
fuente
0

Debe hacer esta pregunta de manera un poco diferente, porque no estoy seguro de lo que está tratando de hacer. La forma en que esto se lee es que desea un script de PowerShell o un archivo por lotes que pueda realizar tareas extremadamente administrativas sin ejecutarse como un usuario capaz de realizar esas tareas. Si eso es lo que está preguntando, no es posible, por diseño.

Sin embargo, si está preguntando sobre la administración de AD desde una estación de trabajo, al entregarle a un usuario un script que puede ejecutar comandos que el usuario de otra manera no podría (es decir, si desea consultar AD desde una cuenta de servicio no privilegiada), necesitamos saber qué versión de Powershell está utilizando y qué versión de servidor está utilizando.

También puede considerar los servicios web de AD para las tareas individuales que desea delegar.

Desde una publicación de TechNet: Ejecute el DSQUERY a continuación

Dsquery * CN = Particiones, CN = Configuración, DC = Mydomain, DC = com -scope base -attr msDS-Behavior-Version

Salida: msDS-Behavior-Version 2

Los atributos que indican DFL y FFL: - Configuración de nivel de bosque

Nombre: msDS-Behavior-Version Ruta: CN = Particiones, CN = Configuración, DC =, DC = com

Valor: 0 o no establecido = bosque de nivel mixto

1 = nivel de bosque provisional de Windows Server 2003 2 = nivel de bosque de Windows Server 2003 3 = nivel de bosque de Windows Server 2008

  • Configuración de nivel de dominio

Nombre: msDS-Behavior-Version Ruta: DC =, DC =, DC = com (raíz del dominio) Valor: 0 o no establecido = dominio de nivel mixto

1 = nivel de dominio de Windows Server 2003 2 = nivel de dominio de Windows Server 2003 3 = nivel de dominio de Windows Server 2008

  • Configuración de modo mixto / nativo

Nombre: ntMixedDomain

Ruta: DC =, DC =, DC = com (raíz del dominio)

Valor: 0 = dominio de nivel nativo 1 = dominio de nivel mixto

No estoy seguro acerca de los requisitos de rol del usuario para ejecutar esto, pero no está cambiando nada y todo está usando DSQUERY (desde el RSAT, descarga gratuita desde Microsoft). Comenta si necesitamos ver ese extremo.

usuario1467163
fuente
Mi pregunta fue para una situación en la que, digamos, un miembro del departamento de TI que no es un administrador de dominio necesita verificar / verificar rápidamente el dominio / niveles funcionales del bosque sin molestar a los administradores de dominio que deberían saber y tener todas las consolas y herramientas apropiadas para verificarlo. .. Cualquier método rápido y simple sería suficiente para mí
Mikhail
1
Entiendo que esta pregunta es un ejercicio de "cómo se puede hacer esto", pero no puedo pensar en un solo escenario en el que un miembro del equipo de TI que no tenga los derechos apropiados deba hacerlo en el transcurso de su trabajo.
joeqwerty
Trabajé en una gran empresa, y este tipo de información sería útil en dicha empresa. Aquí hay un ejemplo: su ubicación tiene un dominio con DC antiguas y necesita implementar una función de un FL más nuevo para cumplir con una solicitud de boleto. Es posible que no seas amigable con el administrador de dominio ya sobrecargado. Para justificar las actualizaciones necesarias, debe armar el proceso, que es puramente de investigación para que pueda obtener la solicitud de cambio juntos; este es un requisito de ITIL. Esto sería muy útil en tal situación.
user1467163