Answers:
以下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
参考文献:
这只是对已接受答案的补充解决方案,因为我在这里或多或少地遇到了同样的需求。区别在于将一级名称解码:
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
从连接到要查询的目录林的计算机上运行它时,实际上不需要包括get-adforest命令的各个部分。该cmdlet只会获取当前计算机的信息。
您只是要检查它还是要实际更改它?对其进行更改将需要对域/林的某些管理权限。
在没有dsquery或PS Get-ADDomain(需要导入AD模块)的情况下,我想到的最简单的方法是使用Joeware的ADFIND命令。
http://www.joeware.net/freetools/tools/adfind/
adfind -rootdse domaincontrollerfunctionality domainfunctionality forestfunctionality
我的域的示例输出:
AdFind V01.47.00cpp Joe Richards(joe@joeware.net)2012年10月
使用服务器:DOMAIN-DC1.hahaha.local:389
目录:Windows Server 2008 R2
dn:
domainFunctionality:4 [Windows Server 2008 R2域模式]
forestFunctionality:4 [Windows Server 2008 R2森林模式]
domainController功能:4 [Windows Server 2008 R2模式]
1对象返回
对于基于GUI的方法,可以使用Active Directory Explorer。右键单击域顶部节点,单击“属性”,然后检查domainControllerFunctionality,domainFunctionality或forestFunctionality的值。它们具有对应于的整数值:
0 = Win 2000
1 = Win 2003混合/中期
2 = Win 2003
3 = Win 2008
4 = Win 2008 R2
5 = Win 2012
6 = Win 2012 R2
7 = Win 2016
您需要以不同的方式提出这个问题,因为我不确定您要尝试做的是什么。读取的方式是,您想要一个Powershell脚本或批处理文件,该脚本或批处理文件可以执行非常有管理性的任务,而无需以用户身份运行能够执行那些任务。如果这是您要的内容,那么按设计不可能。
但是,如果您要从工作站管理AD,请向用户提供一个脚本,该脚本可以运行用户否则将无法执行的命令(即,您要从非特权服务帐户查询AD),我们需要知道您正在使用哪个版本的Powershell,以及您正在使用哪个版本的Server。
您可能还考虑将AD Web服务用于一次要委派的任务。
从TechNet帖子中:运行以下DSQUERY
Dsquery * CN =分区,CN =配置,DC = Mydomain,DC = com -scope base -attr msDS-行为版本
输出:msDS-行为版本2
指示DFL和FFL的属性:-森林级别设置
名称:msDS-行为版本路径:CN =分区,CN =配置,DC =,DC = com
值:0或未设置=混合林
1 = Windows Server 2003临时林级别2 = Windows Server 2003林级别3 = Windows Server 2008林级别
名称:msDS-行为版本路径: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免费下载)。如果需要查看它的结尾,请发表评论。