Como verificar o nível funcional de domínio / floresta do AD DS na estação de trabalho ingressada no domínio?

8

É possível definir os níveis funcionais de domínio / floresta do AD DS a partir da estação de trabalho ingressada no domínio? De preferência através da CLI / PS e, se possível, sem direitos de administrador de domínio ... Como posso fazer isso?

Mikhail
fonte

Respostas:

10

O Powershell a seguir não exige acesso de administrador ou de administrador de domínio, testei como um usuário limitado em uma estação de trabalho ingressada no domínio com o Powershell v2 / v3. Não requer ferramentas de terceiros ou módulos do Powershell.

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

# Domain Controller Functional Level
$dse.domainControllerFunctionality

# Domain Functional Level
$dse.domainFunctionality

# Forest Functional Level
$dse.forestFunctionality

Os valores retornados representarão um nível funcional 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

Referências:

jscott
fonte
3

Apenas uma solução complementar à resposta aceita, pois acabei aqui mais ou menos com a mesma necessidade. A diferença é que se obtém o nome do nível decodificado:

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}
ErikE
fonte
1
+1. Vale ressaltar que o seu requer o Microsoft Powershell AD Module. O exemplo ADSI não.
jscott
Você está certo, editá-lo em ..
ErikE
Pequena melhoria. Na verdade, você não precisa incluir as -identity $ForestRootpartes dos comandos get-adforest ao executá-lo em uma máquina associada à floresta que está tentando consultar. O cmdlet apenas coletará as informações da máquina atual.
Ryan Bolger
2

Você só quer verificá-lo ou realmente mudar? Mudá-lo exigiria certos direitos administrativos no domínio / floresta.

A maneira mais fácil de pensar sem o dsquery ou o PS Get-ADDomain (que exigiria a importação do módulo AD) é usar o comando ADFIND do Joeware.

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

adfind -rootdse domaincontrollerfunctionality domainfunctionality forestfunctionality

Exemplo de saída do meu domínio:

AdFind V01.47.00cpp Joe Richards ([email protected]) outubro de 2012

Usando o servidor: DOMAIN-DC1.hahaha.local: 389

Diretório: Windows Server 2008 R2

dn:

domainFunctionality: 4 [Modo de domínio do Windows Server 2008 R2]

forestFunctionality: 4 [Modo de floresta do Windows Server 2008 R2]

domainControllerFunctionality: 4 [Modo Windows Server 2008 R2]

1 Objetos retornados

O limpador
fonte
1

Para uma abordagem baseada em GUI, você pode usar o Active Directory Explorer . Clique com o botão direito do mouse no nó superior do domínio, clique em Propriedades e verifique o valor de domainControllerFunctionality, domainFunctionality ou forestFunctionality. Eles têm valores inteiros correspondentes a:

0 = Vitória 2000
1 = Vitória 2003 mista / intermediária
2 = Vitória 2003
3 = Vitória 2008
4 = Vitória 2008 R2
5 = Vitória 2012
6 = Vitória 2012 R2
7 = Vitória 2016

Bogdan
fonte
0

Você precisa fazer essa pergunta de maneira um pouco diferente, porque não tenho certeza do que está tentando fazer. A maneira como se lê é que você deseja um script do PowerShell ou um arquivo em lotes que possa executar tarefas extremamente administrativas sem executar como usuário. capaz de executar essas tarefas. Se é isso que você está perguntando, não é possível, por design.

No entanto, se você estiver perguntando sobre a administração do AD a partir de uma estação de trabalho, entregando ao usuário um script que pode executar comandos que o usuário não conseguiria (por exemplo, você deseja consultar o AD a partir de uma conta de serviço sem privilégios), precisaríamos saber qual versão do Powershell você está usando e qual versão do servidor você está usando.

Você também pode considerar os serviços da Web do AD para tarefas únicas que deseja delegar.

Em uma publicação do TechNet: Execute o DSQUERY abaixo

Dsquery * CN = Partições, CN = Configuração, DC = Meu Domínio, DC = com -scope base -attr msDS-Behavior-Version

Saída: msDS-Behavior-Version 2

Os atributos que indicam DFL e FFL: - Configuração de nível de floresta

Nome: Caminho da versão do comportamento da msDS: CN = Partições, CN = Configuração, DC =, DC = com

Valor: 0 ou não definido = floresta de nível misto

1 = nível de floresta provisória do Windows Server 2003 2 = nível de floresta do Windows Server 2003 3 = nível de floresta do Windows Server 2008

  • Configuração no nível do domínio

Nome: Caminho da versão de comportamento-msDS: DC =, DC =, DC = com (raiz do domínio) Valor: 0 ou não definido = domínio de nível misto

1 = nível de domínio do Windows Server 2003 2 = nível de domínio do Windows Server 2003 3 = nível de domínio do Windows Server 2008

  • Configuração do modo misto / nativo

Nome: ntMixedDomain

Caminho: DC =, DC =, DC = com (raiz do domínio)

Valor: 0 = Domínio de nível nativo 1 = Domínio de nível misto

Não tenho certeza dos requisitos de função do usuário para executar isso, mas você não está alterando nada com isso e tudo está usando o DSQUERY (no RSAT, download gratuito da Microsoft). Comente se precisarmos olhar para esse fim.

user1467163
fonte
Minha pergunta era para uma situação em que, digamos, um membro do departamento de TI que não seja um administrador de domínio precisa verificar rapidamente / verificar novamente os níveis funcionais de domínio / floresta sem incomodar administradores de domínio que devem saber e ter todos os consoles e ferramentas adequados para verificar isso. .. Qualquer rápida e simples método faria por mim
Mikhail
1
Entendo que essa pergunta é um exercício de "como isso pode ser feito", mas, no entanto, não consigo pensar em um único cenário em que um membro da equipe de TI que não tenha os direitos apropriados precisaria fazer isso no decorrer de trabalho deles.
Joeqwerty
Eu trabalhei em uma grande empresa, e esse tipo de informação seria útil em uma empresa assim. Aqui está um exemplo: sua localização possui um domínio com DCs antigos e você precisa implementar um recurso de um FL mais recente para atender a uma solicitação de ticket. Você pode não ser amigo do administrador do domínio já sobrecarregado. Para defender as atualizações necessárias, é necessário montar o processo, que é puramente pesquisa, para que você possa reunir a solicitação de alteração - esse é um requisito da ITIL. Isso seria muito útil em tal situação.
User1467163