Wie überprüfe ich die Funktionsebene der AD DS-Domäne / Gesamtstruktur von der Arbeitsstation mit Domänenbeitritt?


8

Ist es möglich, AD DS-Domänen- / Gesamtstrukturfunktionsebenen von einer domänenverbundenen Arbeitsstation aus zu definieren? Am besten über CLI / PS und wenn möglich ohne Domain-Administratorrechte ... Wie kann ich das erreichen?

Antworten:


10

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:


3

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}

1
+1. Erwähnenswert ist, dass Sie das Microsoft Powershell AD-Modul benötigen. Das ADSI-Beispiel nicht.
Jscott

Richtig, Sie bearbeiten es in ..
ErikE

Kleinere Verbesserung. Sie müssen die -identity $ForestRootTeile 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.
Ryan Bolger

2

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


1

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


0

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

  • Einstellung auf Domänenebene

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

  • Mixed / Native Mode Einstellung

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.


Meine Frage war für eine Situation, in der beispielsweise ein Mitglied der IT-Abteilung, das kein Domänenadministrator ist, schnell die Funktionsstufen von Domänen / Gesamtstrukturen überprüfen / überprüfen muss, ohne Domänenadministratoren zu stören, die wissen sollten und über alle geeigneten Konsolen und Tools verfügen, um dies zu überprüfen. .. Jede schnelle und einfache Methode würde für mich tun
Mikhail

1
Ich verstehe, dass diese Frage eine Übung in "Wie kann das gemacht werden?" Ist, aber ich kann mir trotzdem kein einziges Szenario vorstellen, in dem ein IT-Teammitglied, das nicht über die entsprechenden Rechte verfügt, dies im Laufe von tun müsste ihre Arbeit.
Joeqwerty

Ich habe in einer großen Firma gearbeitet, und diese Art von Informationen wäre in einer solchen Firma nützlich. Hier ein Beispiel: Ihr Standort verfügt über eine Domain mit alternden DCs, und Sie müssen eine Funktion eines neueren FL implementieren, um eine Ticketanforderung zu erfüllen. Sie sind möglicherweise nicht mit dem bereits überlasteten Domain-Administrator befreundet. Um die erforderlichen Upgrades zu rechtfertigen, müssen Sie den Prozess zusammenstellen, der rein recherchiert ist, damit Sie die Änderungsanforderung zusammenstellen können. Dies ist eine ITIL-Anforderung. Dies wäre in einer solchen Situation sehr nützlich.
user1467163
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.