답변:
다음 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 = 2016
수행하려는 작업이 확실하지 않기 때문에이 질문을 조금 다르게 질문해야합니다. 읽는 방법은 사용자로 실행하지 않고도 매우 관리적인 작업을 수행 할 수있는 powershell 스크립트 또는 배치 파일을 원한다는 것입니다. 이러한 작업을 수행 할 수 있습니다. 그것이 당신이 요구하는 것이라면, 의도적으로 불가능합니다.
그러나 워크 스테이션에서 AD를 관리하려는 경우 사용자가 수행 할 수없는 명령 (예 : 권한이없는 서비스 계정에서 AD를 쿼리하려는 경우)을 실행할 수있는 스크립트를 사용자에게 전달하여 알아야합니다. 사용중인 Powershell 버전 및 사용중인 서버 버전
위임하려는 한 번에 한 작업에 대해 AD 웹 서비스를 고려할 수도 있습니다.
TechNet 게시물에서 : 아래 DSQUERY를 실행하십시오.
Dsquery * CN = 파티션, CN = 구성, DC = 내 도메인, DC = com-범위 기본 -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에서 무료로 다운로드)를 사용하고 있습니다. 우리가 그 끝을 봐야한다면 의견을 말하십시오.