Comment vérifier le niveau fonctionnel du domaine / forêt AD DS à partir du poste de travail joint au domaine?


8

Est-il possible de définir des niveaux fonctionnels de domaine / forêt AD DS à partir d'un poste de travail joint à un domaine? De préférence via CLI / PS et si possible sans droits d'administrateur de domaine ... Comment puis-je y parvenir?

Réponses:


10

Le Powershell suivant ne nécessite pas d'administrateur ou d'accès administrateur de domaine, j'ai testé en tant qu'utilisateur limité sur un poste de travail joint à un domaine avec Powershell v2 / v3. Il ne nécessite aucun outil tiers ni module Powershell.

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

# Domain Controller Functional Level
$dse.domainControllerFunctionality

# Domain Functional Level
$dse.domainFunctionality

# Forest Functional Level
$dse.forestFunctionality

Les valeurs renvoyées représenteront un niveau fonctionnel distinct:

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

Références:


3

Juste une solution complémentaire à la réponse acceptée, car je me suis retrouvé ici plus ou moins avec le même besoin. La différence est que l'on obtient le nom du niveau décodé:

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}

1
+1. Il convient de noter que le vôtre nécessite le module Microsoft Powershell AD. L'exemple ADSI ne fonctionne pas.
jscott

Vous avez raison, le modifier dans ..
ErikE

Amélioration mineure. Vous n'avez pas réellement besoin d'inclure les -identity $ForestRootparties des commandes get-adforest lorsque vous l'exécutez à partir d'une machine jointe à la forêt que vous essayez d'interroger. L'applet de commande récupérera simplement les informations de la machine actuelle.
Ryan Bolger

2

Vous voulez juste le vérifier ou le changer? Le modifier nécessiterait certains droits administratifs sur le domaine / forêt.

La manière la plus simple à laquelle je peux penser sans dsquery ou PS Get-ADDomain (qui nécessiterait d'importer le module AD) est d'utiliser la commande ADFIND de Joeware.

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

adfind -rootdse domaincontrollerfunctionality domainfunctionality forestfunctionality

Exemple de sortie de mon domaine:

AdFind V01.47.00cpp Joe Richards (joe@joeware.net) octobre 2012

À l'aide du serveur: DOMAIN-DC1.hahaha.local: 389

Annuaire: Windows Server 2008 R2

dn:

domainFunctionality: 4 [Mode domaine Windows Server 2008 R2]

forestFunctionality: 4 [Mode forêt Windows Server 2008 R2]

domainControllerFunctionality: 4 [Mode Windows Server 2008 R2]

1 Objets retournés


1

Pour une approche basée sur l'interface graphique, vous pouvez utiliser l' Explorateur Active Directory . Cliquez avec le bouton droit sur le nœud supérieur du domaine, cliquez sur Propriétés et vérifiez la valeur de domainControllerFunctionality, domainFunctionality ou forestFunctionality. Ils ont des valeurs entières correspondant à:

0 = Win 2000
1 = Win 2003 mixte / intérimaire
2 = Win 2003
3 = Win 2008
4 = Win 2008 R2
5 = Win 2012
6 = Win 2012 R2
7 = Win 2016


0

Vous devez poser cette question un peu différemment, car je ne suis pas sûr de ce que vous essayez de faire - La façon dont cela se lit est que vous voulez un script PowerShell ou un fichier de commandes qui peut effectuer des tâches extrêmement administratives sans s'exécuter en tant qu'utilisateur qui est capable d'exécuter ces tâches. Si c'est ce que vous demandez, ce n'est pas possible, par conception.

Cependant, si vous posez des questions sur l'administration d'AD à partir d'un poste de travail, en remettant à un utilisateur un script qui peut exécuter des commandes que l'utilisateur ne pourrait pas autrement (c'est-à-dire que vous souhaitez interroger AD à partir d'un compte de service non privilégié), nous aurions besoin de savoir quelle version de Powershell vous utilisez et quelle version du serveur que vous utilisez.

Vous pouvez également envisager des services Web AD pour les tâches individuelles que vous souhaitez déléguer.

À partir d'un article TechNet: exécutez la DSQUERY ci-dessous

Dsquery * CN = Partitions, CN = Configuration, DC = Mydomain, DC = com -scope base -attr msDS-Behavior-Version

Sortie: msDS-Behavior-Version 2

Les attributs qui indiquent DFL et FFL: - Réglage du niveau de la forêt

Nom: msDS-Behavior-Version Path: CN = Partitions, CN = Configuration, DC =, DC = com

Valeur: 0 ou non définie = forêt de niveau mixte

1 = niveau de forêt intermédiaire Windows Server 2003 2 = niveau de forêt Windows Server 2003 3 = niveau de forêt Windows Server 2008

  • Réglage au niveau du domaine

Nom: msDS-Behavior-Version Chemin: DC =, DC =, DC = com (racine du domaine) Valeur: 0 ou non défini = domaine de niveau mixte

1 = niveau de domaine Windows Server 2003 2 = niveau de domaine Windows Server 2003 3 = niveau de domaine Windows Server 2008

  • Réglage du mode mixte / natif

Nom: ntMixedDomain

Chemin: DC =, DC =, DC = com (racine du domaine)

Valeur: 0 = domaine de niveau natif 1 = domaine de niveau mixte

Je ne suis pas sûr des exigences de rôle de l'utilisateur pour exécuter cela, mais vous ne changez rien avec cela et tout cela utilise DSQUERY (à partir du RSAT, téléchargement gratuit auprès de Microsoft). Commentez si nous devons examiner cette fin.


Ma question concernait une situation où, disons, un membre du service informatique qui n'est pas administrateur de domaine doit rapidement vérifier / revérifier les niveaux fonctionnels de domaine / forêt sans déranger les administrateurs de domaine qui devraient savoir que & avoir toutes les consoles et les outils appropriés pour le vérifier. .. Toute méthode rapide et simple me conviendrait
Mikhail

1
Je comprends que cette question est un exercice sur "comment cela peut-il être fait", mais néanmoins je ne peux pas penser à un seul scénario où un membre de l'équipe informatique qui ne dispose pas des droits appropriés devrait le faire au cours de leur travail.
joeqwerty

J'ai travaillé dans une grande entreprise et ce type d'informations serait utile dans une telle entreprise. Voici un exemple: votre emplacement a un domaine avec des DC vieillissants et vous devez implémenter une fonctionnalité d'un FL plus récent pour répondre à une demande de ticket. Vous ne pouvez pas être copain avec l'administrateur de domaine déjà surchargé. Pour justifier les mises à niveau nécessaires, vous devez mettre en place le processus, qui est purement de la recherche afin que vous puissiez obtenir la demande de changement - c'est une exigence ITIL. Cela serait très utile dans une telle situation.
user1467163
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.