Réponses:
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:
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}
-identity $ForestRoot
parties 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.
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
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
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
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
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.