Im folgenden möchte ich die Schema Versionen der zur Zeit zur Verfügung stehenden Windows Versionen auflisten und mitteilen wie diese schnell aus einem vorhandenen Active Directory ermittelt werden kann.
Active Directory Domain Services (AD DS)
13 Windows 2000 Server
30 Windows Server 2003
31 Windows Server 2003 R2
44 Windows Server 2008
47 Windows Server 2008 R2
56 Windows Server 2012
69 Windows Server 2012 R2 Preview
Active Directory Lightweight Directory Services (AD LDS)
30 Active Directory Application Mode (ADAM)
30 Windows Server 2008
31 Windows Server 2008 R2
31 Windows Server 2012
Wie kann die Schema Version ermittelt werden?
Bei der aufgeführten Syntax der einzelnen Werkzeuge wird davon ausgegangen das der DNS Name der Domäne „Domain.local“ lautet. In meinen Anweisungen beschreibe ich Grundsätzlich die Elemente einer US-EN basierten Installation
ADSIEdit.msc
- Start ADSIEdit.msc
- In dem rechten Detailbereich rechtsklick auf ADSI Edit ausführen und dann Connect to auswählen
- Unter Connection Point, Schema als Well known naming context auswählen
- Unter Computer den Namen der Domäne angeben (z.B. „domain.local“)
- Mit einem Klick auf OK die Eingabe bestätigen
- Im linken Detailbereich auf Schema [domain.local] klicken
- Auf dem Schema Container cn=schema,cn=configuration… einen rechtsklick ausführen und auf Properties klicken
- Das Attribut objectVersion zeigt die Schema Version des Active Directory
DSQuery
Über DSQuery kann die Schema Version über eine Kommandozeile ausgegeben werden:
dsquery * cn=schema,cn=configuration,dc=Domain,dc=local -scope base -attr objectVersion
REPADMIN
Mit dem „repadmin“ Werkzeug kann der Status des Attributes über alle Domain Controller abgefragt werden. Somit ist es möglich zu sehen ob z.B. eine Schemaerweiterung bereits repliziert ist.
repadmin /showattr * cn=schema,cn=configuration,dc=domain,dc=local /atts:ObjectVersion
PowerShell
Über PowerShell gibt es selbstverständlich ebenfalls die Möglichkeit die Version des Schemas auszulesen. PowerShell kann sich dazu der „System.DirectoryServices.ActiveDirectory“ Klasse bedienen.
[Reflection.Assembly]::LoadWithPartialName(“System.DirectoryServices.ActiveDirectory”)
$Context = New-object System.DirectoryServices.ActiveDirectory.DirectoryContext(“Forest”,”domain.local”)
$Schema = [System.DirectoryServices.ActiveDirectory.ActiveDirectorySchema]::GetSchema($Context)
$DirEntry = $Schema.GetDirectoryEntry()
$DirEntry.objectVersion
Alternativ kann auch das Windows PowerShell module for Active Directory genutzt werden
Get-ADObject cn=schema,cn=configuration,dc=domain,dc=local -properties objectVersion
Registry (ab Windows Server Server 2012)
In Windows Server 2012 wurde zudem eine Registrierungsschlüssel Schema Version eingeführt der die Schema Version dokumentiert. Schema Version ist unter HKLM_LOCAL_MACHINESYSTEMCurrentControlSetServicesNTDSParameters zu finden.