Antworten:
Für die folgende Powershell ist kein Administrator- oder Domänenadministratorzugriff erforderlich. Ich habe sie als eingeschränkter Benutzer auf einer Workstation mit Domänenbeitritt mit Powershell v2 / v3 getestet. Es sind keine Tools oder Powershell-Module von Drittanbietern erforderlich.
$dse = ([ADSI] "LDAP://RootDSE")
# Domain Controller Functional Level
$dse.domainControllerFunctionality
# Domain Functional Level
$dse.domainFunctionality
# Forest Functional Level
$dse.forestFunctionality
Die zurückgegebenen Werte stellen eine bestimmte Funktionsebene dar:
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
Verweise:
Nur eine ergänzende Lösung zur akzeptierten Antwort, da ich hier mehr oder weniger mit dem gleichen Bedürfnis gelandet bin. Der Unterschied ist, dass man den Levelnamen dekodiert bekommt:
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
Teile der get-adforest-Befehle nicht einschließen, wenn Sie sie von einem Computer ausführen, der mit der Gesamtstruktur verbunden ist, die Sie abfragen möchten. Das Cmdlet nimmt nur die Informationen des aktuellen Computers auf.
Sie möchten es nur überprüfen oder tatsächlich ändern? Das Ändern würde bestimmte Administratorrechte für die Domäne / Gesamtstruktur erfordern.
Der einfachste Weg, den ich mir ohne dsquery oder PS Get-ADDomain vorstellen kann (was den Import des AD-Moduls erfordern würde), ist die Verwendung des ADFIND-Befehls von Joeware.
http://www.joeware.net/freetools/tools/adfind/
adfind -rootdse domaincontrollerfunctionality domainfunctionality forestfunctionality
Beispielausgabe von meiner Domain:
AdFind V01.47.00cpp Joe Richards (joe@joeware.net) Oktober 2012
Server verwenden: DOMAIN-DC1.hahaha.local: 389
Verzeichnis: Windows Server 2008 R2
dn:
domainFunctionality: 4 [Windows Server 2008 R2-Domänenmodus]
Gesamtstrukturfunktionalität: 4 [Gesamtstrukturmodus für Windows Server 2008 R2]
domainControllerFunktionalität: 4 [Windows Server 2008 R2-Modus]
1 Objekte zurückgegeben
Für einen GUI-basierten Ansatz können Sie Active Directory Explorer verwenden . Klicken Sie mit der rechten Maustaste auf den obersten Domänenknoten, klicken Sie auf Eigenschaften und überprüfen Sie den Wert von domainControllerFunctionality, domainFunctionality oder Gesamtstrukturfunktionalität. Sie haben ganzzahlige Werte, die entsprechen :
0 = Win 2000
1 = Win 2003 gemischt / vorübergehend
2 = Win 2003
3 = Win 2008
4 = Win 2008 R2
5 = Win 2012
6 = Win 2012 R2
7 = Win 2016
Sie müssen diese Frage etwas anders stellen, da ich nicht sicher bin, was Sie versuchen. Die Art und Weise, wie dies gelesen wird, ist, dass Sie ein Powershell-Skript oder eine Batch-Datei möchten, die extrem administrative Aufgaben ausführen kann, ohne als Benutzer ausgeführt zu werden in der Lage, diese Aufgaben auszuführen. Wenn Sie danach fragen, ist dies nicht beabsichtigt.
Wenn Sie jedoch nach der Verwaltung von AD von einer Workstation aus fragen, indem Sie einem Benutzer ein Skript übergeben, mit dem Befehle ausgeführt werden können, die der Benutzer sonst nicht ausführen kann (dh Sie möchten AD von einem nicht privilegierten Dienstkonto abfragen), müssen wir dies wissen Welche Version von Powershell verwenden Sie und welche Version von Server verwenden Sie?
Sie können AD-Webdienste auch für einzelne Aufgaben in Betracht ziehen, die Sie delegieren möchten.
Aus einem TechNet-Beitrag: Führen Sie die folgende DSQUERY aus
Dsquery * CN = Partitionen, CN = Konfiguration, DC = Mydomain, DC = com -scope base -attr msDS-Behaviour-Version
Ausgabe: msDS-Behaviour-Version 2
Die Attribute, die DFL und FFL anzeigen: - Einstellung der Gesamtstrukturstufe
Name: msDS-Behaviour-Version Pfad: CN = Partitionen, CN = Konfiguration, DC =, DC = com
Wert: 0 oder nicht gesetzt = gemischte Gesamtstruktur
1 = Zwischenstrukturstufe Windows Server 2003 2 = Gesamtstrukturstufe Windows Server 2003 3 = Gesamtstrukturstufe Windows Server 2008
Name: msDS-Behaviour-Version Pfad: DC =, DC =, DC = com (Domänenstamm) Wert: 0 oder nicht gesetzt = Domäne auf gemischter Ebene
1 = Windows Server 2003-Domänenebene 2 = Windows Server 2003-Domänenebene 3 = Windows Server 2008-Domänenebene
Name: ntMixedDomain
Pfad: DC =, DC =, DC = com (Domänenstamm)
Wert: 0 = Native Level Domain 1 = Mixed Level Domain
Ich bin mir nicht sicher, welche Rollenanforderungen der Benutzer hat, um dies auszuführen, aber Sie ändern nichts daran und alles verwendet DSQUERY (von RSAT, kostenloser Download von Microsoft). Kommentieren Sie, wenn wir uns das Ende ansehen müssen.