Ответы:
Для следующего 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, когда вы запускаете их с компьютера, подключенного к лесу, к которому вы пытаетесь выполнить запрос. Командлет просто получит информацию о текущей машине.
Вы просто хотите это проверить или изменить? Изменение этого потребовало бы определенных административных прав на домен / лес.
Самым простым способом, который я могу придумать без dsquery или PS Get-ADDomain (который потребовал бы импорта модуля AD), является использование команды ADFIND от Joeware.
http://www.joeware.net/freetools/tools/adfind/
adfind -rootdse domaincontrollerfunctionality domainfunctionality forestfunctionality
Пример вывода из моего домена:
AdFind V01.47.00cpp Джо Ричардс (joe@joeware.net) октябрь 2012
Используя сервер: DOMAIN-DC1.hahaha.local: 389
Каталог: Windows Server 2008 R2
дп:
Функциональность домена: 4 [Режим домена Windows Server 2008 R2]
forestFunctionality: 4 [Лесной режим Windows Server 2008 R2]
domainControllerFunctionality: 4 [Режим Windows Server 2008 R2]
1 Объекты возвращены
Для подхода на основе графического интерфейса вы можете использовать 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 вы используете и какую версию сервера вы используете.
Вы могли бы также рассмотреть веб-службы AD для единовременных задач, которые вы хотите делегировать.
Из сообщения TechNet: Запустите ниже DSQUERY
Dsquery * CN = разделы, CN = конфигурация, DC = мидомен, DC = базовая область действия -attr msDS-Behavior-Version
Вывод: msDS-Behavior-Version 2
Атрибуты, которые указывают DFL и FFL: - Настройка уровня леса
Имя: msDS-Behavior-Version Путь: CN = Разделы, CN = Конфигурация, 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). Прокомментируйте, если нам нужно посмотреть на этот конец.