如何从加入域的工作站检查 AD DS 域/林功能级别?

如何从加入域的工作站检查 AD DS 域/林功能级别?

是否可以从加入域的工作站定义 AD DS 域/林功能级别?最好通过 CLI/PS,如果可能的话,无需域管理员权限...我该如何实现?

答案1

以下 Powershell 不需要管理员或域管理员访问权限,我已在加入域的工作站上使用 Powershell v2/v3 以受限用户身份进行了测试。它不需要任何第三方工具或 Powershell 模块。

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

# Domain Controller Functional Level
$dse.domainControllerFunctionality

# Domain Functional Level
$dse.domainFunctionality

# Forest Functional Level
$dse.forestFunctionality

返回的值将代表不同的功能级别:

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

参考:

答案2

这只是对已接受答案的补充解决方案,因为我或多或少有同样的需求。不同之处在于解码了级别名称:

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}

答案3

您只是想检查它还是实际更改它?更改它需要域/林的某些管理权限。

我能想到的最简单的方法是使用 Joeware 的 ADFIND 命令,而不需要 dsquery 或 PS Get-ADDomain(这需要导入 AD 模块)。

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

adfind -rootdse domaincontrollerfunctionality domainfunctionality forestfunctionality

来自我的域的示例输出:

AdFind V01.47.00cpp 乔·理查兹([电子邮件保护])2012年10月

使用服务器:DOMAIN-DC1.hahaha.local:389

目录:Windows Server 2008 R2

域名:

domainFunctionality:4 [Windows Server 2008 R2 域模式]

forestFunctionality:4 [Windows Server 2008 R2 森林模式]

domainControllerFunctionality:4 [Windows Server 2008 R2 模式]

1 返回的对象

答案4

您需要以稍微不同的方式提出这个问题,因为我不确定您想要做什么 - 这句话的意思就是您想要一个 powershell 脚本或批处理文件,它可以执行极其管理性的任务,而无需以能够执行这些任务的用户身份运行。如果您问的是这个,那么从设计上来说这是不可能的。

但是,如果您询问从工作站管理 AD,通过向用户提供可以运行用户原本无法运行的命令的脚本(即,您想从非特权服务帐户查询 AD),我们需要知道您使用的 Powershell 版本以及您使用的服务器版本。

您可能还会考虑使用 AD Web 服务来执行您希望委派的一次性任务。

来自 TechNet 帖子:运行以下 DSQUERY

Dsquery * CN=分区,CN=配置,DC=Mydomain,DC=com -scope base -attr msDS-Behavior-Version

输出:msDS-Behavior-Version 2

指示 DFL 和 FFL 的属性: - 森林级别设置

名称:msDS-Behavior-Version 路径:CN=Partitions, CN=Configuration, DC=, DC=com

值:0 或未设置=混合级森林

1=Windows Server 2003 临时林级别 2=Windows Server 2003 林级别 3=Windows Server 2008 林级别

  • 域级别设置

名称:msDS-Behavior-Version 路径:DC=、DC=、DC=com(域根) 值:0 或未设置=混合级别域

1=Windows Server 2003 域级别 2=Windows Server 2003 域级别 3=Windows Server 2008 域级别

  • 混合/本机模式设置

名称:ntMixedDomain

路径:DC=、DC=、DC=com(域根目录)

值:0=本机级别域 1=混合级别域

我不确定运行此程序的用户的角色要求,但您不会更改任何内容,并且全部使用 DSQUERY(来自 RSAT,可从 Microsoft 免费下载)。如果我们需要查看它的结尾,请发表评论。

相关内容