Come controllare il livello funzionale dominio / foresta di Servizi di dominio Active Directory dalla workstation unita al dominio?


8

È possibile definire i livelli funzionali di dominio / foresta di Servizi di dominio Active Directory dalla workstation unita al dominio? Preferibilmente tramite CLI / PS e, se possibile, senza i diritti di amministratore di dominio ... Come posso realizzarlo?

Risposte:


10

Il seguente Powershell non richiede l'accesso dell'amministratore o dell'amministratore del dominio, l'ho testato come utente limitato su una workstation collegata al dominio con Powershell v2 / v3. Non richiede strumenti di terze parti o moduli Powershell.

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

# Domain Controller Functional Level
$dse.domainControllerFunctionality

# Domain Functional Level
$dse.domainFunctionality

# Forest Functional Level
$dse.forestFunctionality

I valori restituiti rappresenteranno un livello funzionale 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

Riferimenti:


3

Solo una soluzione complementare alla risposta accettata, dato che sono finito qui più o meno con lo stesso bisogno. La differenza è che si ottiene la decodifica del nome del livello:

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. Vale la pena notare che il tuo richiede il modulo Microsoft Powershell AD. L'esempio ADSI no.
jscott,

Bene, lo stai modificando in ...
ErikE

Piccolo miglioramento. In realtà non è necessario includere le -identity $ForestRootparti dei comandi get-adforest quando lo si esegue da una macchina unita alla foresta che si sta tentando di interrogare. Il cmdlet raccoglierà solo le informazioni della macchina corrente.
Ryan Bolger,

2

Vuoi solo controllarlo o effettivamente cambiarlo? La modifica richiederebbe determinati diritti amministrativi sul dominio / foresta.

Il modo più semplice a cui riesco a pensare senza dsquery o PS Get-ADDomain (che richiederebbe l'importazione del modulo AD) è usare il comando ADFIND di Joeware.

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

adfind -rootdse domaincontrollerfunctionality domainfunctionality forestfunctionality

Esempio di output dal mio dominio:

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

Utilizzando il server: DOMAIN-DC1.hahaha.local: 389

Directory: Windows Server 2008 R2

dn:

domainFunctionality: 4 [Modalità dominio Windows Server 2008 R2]

forestFunctionality: 4 [Modalità foresta di Windows Server 2008 R2]

domainControllerFunctionality: 4 [Modalità Windows Server 2008 R2]

1 oggetti restituiti


1

Per un approccio basato sulla GUI è possibile utilizzare Active Directory Explorer . Fare clic con il tasto destro del mouse sul nodo superiore del dominio, fare clic su Proprietà e verificare il valore di domainControllerFunctionality, domainFunctionality o forestFunctionality. Hanno valori interi corrispondenti a:

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


0

È necessario porre questa domanda in modo leggermente diverso, perché non sono sicuro di cosa si stia tentando di fare. Il modo in cui si legge è che si desidera uno script PowerShell o un file batch in grado di eseguire attività estremamente amministrative senza essere eseguito come utente che è in grado di svolgere tali compiti. Se è quello che stai chiedendo, non è possibile, in base alla progettazione.

Tuttavia, se stai chiedendo di amministrare AD da una stazione di lavoro, consegnando a un utente uno script in grado di eseguire comandi che altrimenti l'utente non sarebbe in grado di fare (ovvero che desideri interrogare AD da un account di servizio senza privilegi), avremmo bisogno di sapere quale versione di Powershell stai usando e quale versione di Server stai usando.

È inoltre possibile prendere in considerazione i servizi Web AD per le attività singole che si desidera delegare.

Da un post TechNet: eseguire il DSQUERY di seguito

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

Output: msDS-Behavior-Versione 2

Gli attributi che indicano DFL e FFL: - Impostazione del livello di foresta

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

Valore: 0 o non impostato = foresta a livello misto

1 = Livello foresta provvisorio di Windows Server 2003 2 = Livello foresta Windows Server 2003 3 = Livello foresta Windows Server 2008

  • Impostazione a livello di dominio

Nome: msDS-Behavior-Version Path: DC =, DC =, DC = com (root del dominio) Valore: 0 o non impostato = dominio di livello misto

1 = Livello di dominio di Windows Server 2003 2 = Livello di dominio di Windows Server 2003 3 = Livello di dominio di Windows Server 2008

  • Impostazione modalità mista / nativa

Nome: ntMixedDomain

Percorso: DC =, DC =, DC = com (root del dominio)

Valore: 0 = Dominio di livello nativo 1 = Dominio di livello misto

Non sono sicuro dei requisiti di ruolo dell'utente per eseguire questo, ma non stai cambiando nulla con esso ed è tutto usando DSQUERY (Da RSAT, download gratuito da Microsoft). Commenta se dobbiamo guardare a quel fine.


La mia domanda era per una situazione in cui diciamo che un membro del dipartimento IT che non ha bisogno di un amministratore di dominio abbia bisogno di verificare / ricontrollare rapidamente i livelli funzionali di dominio / foresta senza disturbare gli amministratori di dominio che dovrebbero sapere e avere tutte le console e gli strumenti appropriati per verificarlo. .. Qualsiasi metodo rapido e semplice farebbe per me
Mikhail,

1
Capisco che questa domanda sia un esercizio di "come può essere fatto", ma tuttavia non riesco a pensare a un singolo scenario in cui un membro del team IT che non ha i diritti appropriati debba farlo nel corso di il loro lavoro.
joeqwerty,

Ho lavorato in una grande azienda e questo tipo di informazioni sarebbe utile in una società del genere. Ecco un esempio: la tua posizione ha un dominio con DC obsoleti ed è necessario implementare una funzionalità di un FL più nuovo per soddisfare una richiesta di ticket. Potresti non essere confuso con l'amministratore del dominio già sovraccarico. Per rendere necessari gli aggiornamenti necessari, devi mettere insieme il processo, che è puramente di ricerca in modo da poter ottenere insieme la richiesta di modifica, questo è un requisito ITIL. Ciò sarebbe molto utile in una situazione del genere.
user1467163
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.