AD DSドメイン/フォレストの機能レベルをドメインに参加したワークステーションから定義できますか?できればCLI/PSを使用し、可能であればドメイン管理者権限なしで...どうすれば達成できますか?
次のPowershellは管理者またはドメイン管理者のアクセスを必要としません。Powershellv2/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}
あなたはそれを確認したいのですか、それとも実際に変更したいですか?これを変更するには、ドメイン/フォレストに対する特定の管理者権限が必要です。
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([email protected])2012年10月
使用サーバー:DOMAIN-DC1.hahaha.local:389
ディレクトリ:Windows Server 2008 R2
dn:
domainFunctionality:4 [Windows Server 2008 R2ドメインモード]
forestFunctionality:4 [Windows Server 2008 R2フォレストモード]
domainControllerFunctionality:4 [Windows Server 2008 R2モード]
1返されたオブジェクト
GUIベースのアプローチでは、 Active Directory Explorer を使用できます。ドメインの最上位ノードを右クリックし、[プロパティ]をクリックして、domainControllerFunctionality、domainFunctionality、またはforestFunctionalityの値を確認します。それらは整数値 対応する を持っています:
0 =勝利2000
1 =勝利2003混合/暫定
2 = 2003年に勝利
3 = 2008年勝利
4 = 2008 R2に勝利
5 = 2012年勝利
6 = 2012 R2を獲得
7 = 2016年に勝利
あなたが何をしようとしているのかわからないので、この質問を少し違った方法で行う必要があります。これを読むと、PowerShellスクリプトまたはバッチファイルが必要です。これらのタスクを実行できます。それがあなたが求めているものである場合、それは設計上、不可能です。
ただし、ワークステーションからADを管理することについて質問している場合は、ユーザーがコマンドを実行できるスクリプトをユーザーに渡すことで、それ以外の場合はユーザーが実行できない(つまり、特権のないサービスアカウントからADにクエリを実行する)ことができます。使用しているPowershellのバージョン、および使用しているサーバーのバージョン。
また、委任したい一度に1つのタスクに対してAD Webサービスを検討することもできます。
TechNetの投稿から:以下のDSQUERYを実行してください
Dsquery * CN = Partitions、CN = Configuration、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から無料でダウンロードできます)。その終わりを見る必要がある場合はコメントしてください。