Active Directory-Scripting

Das Verschieben eines Domänencontrollers an einen anderen Standort

Ebenfalls nicht sonderlich aufwändig und vor allem für größere Netzwerke interessant ist das nachfolgende Skript, mit dem sich ein Domänencontroller an einen anderen Standort verschieben lässt:

strSourceSiteRDN = "cn=Standardname-des-ersten-Standorts"
strTargetSiteRDN = "cn=Stuttgart"
strDcRDN = "cn=server1"
Set objRootDSE = GetObject("LDAP://RootDSE")
strConfigurationNC = objRootDSE.Get("configurationNamingContext")
strDcPath = "LDAP://" & strDcRDN & ",cn=Servers," &
strSourceSiteRDN & ",cn=Sites," & strConfigurationNC
strTargetSitePath = "LDAP://cn=Servers," & strTarget-
SiteRDN & ",cn=Sites," & strConfigurationNC
Set objTargetSite = GetObject(strTargetSitePath)
objTargetSite.MoveHere strDcPath, strDcRDN

In diesem Fall wird es genutzt, um den standardmäßigen Standortnamen anzupassen. Das sollte auch bei Umgebungen gemacht werden, in denen nur mit einem Standort gearbeitet wird. Die Werte für den bisherigen und zukünftigen Standortnamen werden ebenso vorab definiert wie der Servername.

Anschließend wird auf den Konfigurationscontainer zugegriffen. In diesem werden die entsprechenden Festlegungen angepasst und neu konfiguriert.

Man könnte hier natürlich auch zunächst die Liste der Domänencontroller aus dem Standardordner Domain Controllers im Active Directory ermitteln und anschließend die Änderungen der Standortnamen in einer Schleife für die in einem Array gespeicherten Domänencontrollernamen durchführen.

In diesem Zusammenhang ist auch das nachfolgende Skript interessant:

strDcName = "server1"
strSiteName = "Stuttgart"
Set objADSysInfo = CreateObject("ADSystemInfo")
strDcSiteName = objADSysInfo.GetDCSiteName(strDcName)
If UCase(strSiteName) = UCase(strDcSiteName) Then
WScript.Echo "TRUE: " & strDcName & " is in site
" & strSiteName
Else
WScript.Echo "FALSE: " & strDcName & " is NOT in
site " & strSiteName
End If

Mit diesem Skript lässt sich prüfen, ob sich ein Domänencontroller an einem bestimmten Standort befindet. Das Skript könnte verwendet werden, um bei einem Skript zum Anpassen der Standortnamen zunächst zu prüfen, ob eine Anpassung überhaupt erforderlich ist. Damit der Vergleich korrekt arbeitet, ist zu beachten, dass die Namen in die Großschreibung umgesetzt werden müssen.

WMI statt ADSI

Neben ADSI kann übrigens auch WMI für etliche Aufgabenstellungen genutzt werden. So lassen sich Vertrauensstellungen verwalten und Informationen zu den Replikationspartnern im Active Directory ermitteln.

Serienfortsetzung

Der zweite Teil der Serie „Das Web-SSO-Szenario“ folgt in Ausgabe 6/2006 von Expert’s inside Windows NT/2000.